- ベストアンサー
○営業日
Sheet1のAは製品名をプルダウンから選択するようにし、 そのリストはSheet2のAから成り立つようにします。 Sheet2のBには○営業日と入力されており、 Sheet1で製品名をリストから選択すると、 Bの可能日に土日祝日を除いた○営業日の日付が 自動的に表示されるものを作成したいと考えています。 このような場合は、どのように作成すればいいのか、 もしくはExcelで作成することが可能なのかどうか、 Excelを始めたばかりでよく分かりません。 大変お手数かとは存じますが、どなたかお分かりになる方が いらっしゃいましたら、アドバイス等いただければ幸いです。 「Sheet2」 A B CD 1営業日 DVD 2営業日 USB 4営業日 「Sheet1」 A B 製品名 可能日 CD ▼ 2007/4/2(月) 使用OS: WindowsXP 使用Excel: Excel 2003
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
数式がすっきりしていませんが、とりあえず土日を除いて○営業日の日付を表示するように試してみました。 No.1の最後の式(Sheet1のB2に、VLOOKUP(A2,name2,2)、あっこの式は最初に=が無い・・・)を以下に変更します。 =IF(A2="","",IF(WEEKDAY(TODAY(),2)=6,TODAY()+VLOOKUP(A2,list,2)+2,IF(WEEKDAY(TODAY(),2)=7,TODAY()+VLOOKUP(A2,list,2)+1,TODAY()+VLOOKUP(A2,list,2)))) 最初の""と比較して、A列が空白の場合はエラー表示を防いでいます。 IF(WEEKDAY(TODAY(),2)=6,TODAY()+VLOOKUP(A2,list,2)+2の部分は、今日が土曜日なら今日+○営業日+2日を計算します。 IF(WEEKDAY(TODAY(),2)=7の部分は、今日が日曜日なら・・・ですね。 そして、土日以外であれば、今日+○営業日だけを計算します。 なお、この結果が表示されるセルには、セルの書式設定で表示形式にユーザー定義して、yyyy/m/d(aaa)の指定をします。 また、Sheet2の○営業日の部分も値としては数値のみを入れて、セルの書式設定で表示形式にユーザー定義して、#営業日の指定が必要です。 もっとすっきりした数式を教えてくれる人もいると思います。 祝日や休日については、祝日・休日のリストを作れば処理できるかも知れませんが、数式はもっと複雑になると思います。 とりあえず、分かる範囲での回答です。参考まで。。。
その他の回答 (4)
- telescope
- ベストアンサー率54% (1069/1958)
絶対参照にするのを忘れていました。すみません。 =IF(A2="","",WORKDAY(TODAY(),VLOOKUP(A2,Sheet2!$A$1:$B$3,2),Sheet2!$F$1:$F$13))
お礼
ご返信が大変に遅くなってしまいまして、 申し訳ございませんでした。 Excelに不慣れなためか、全てのレスを参照させていただきながら 作業を行ったのですが、うまく作動いたしませんでした。 もう少し勉強を行い、あらためて挑戦してみたいと思います。 ありがとうございました!!
- handomari
- ベストアンサー率47% (83/174)
No.1&2のhandomariです。 No.3に補足があります。 WORKDAY関数は、分析ツールに含まれる関数ですから、分析ツールが組み込まれていない場合は、メニュー[ツール]-[アドイン]をクリックして表示される[アドイン]ダイアログで[分析ツール]チェックをOnにして組み込んでください。
お礼
ご返信が大変に遅くなってしまいまして、 申し訳ございませんでした。 ご指示の通り、組み込ませて作業を行わせていただきました。 ありがとうございました。
- telescope
- ベストアンサー率54% (1069/1958)
「Sheet2」のB列には「○営業日」と入れずに、営業日を消して、数字だけを入れます。 A B CD 1 DVD 2 USB 4 祝日の一覧を作ります。店独自の休みもこの一覧に入れておきます。 たとえばF1からF13に 1月1日 1月8日 2月12日 ・・ のように記入します。振り替え休日は年毎に変わりますから、この表は毎年修正します。 隣の列に何の日か入れておいたほうが分かりやすいかもしれません。 Sheet1のB2に =IF(A2="","",WORKDAY(TODAY(),VLOOKUP(A2,Sheet2!A1:B3,2),Sheet2!F1:F13)) と入力して、下方向にフィルします。 B列を選択して、「書式」-「セル」の表示形式タブで「日付」の中から、 yyyy/m/d を選びます。 曜日も付け加えるなら、「ユーザー定義」で yyyy/m/d の後に(aaa)を付け加えて yyyy/m/d(aaa) とします。省略して y/m/d(aaa) でも良いと思います。
お礼
祝日対応のアドバイスをありがとうございました。 しかしながら、なぜか祝日リストを作成しましたが Sheet2のB列を5や6にすると上手く動作いたしませんでした。 祝日対応の計算式でしたので非常に有り難く ぜひ使用させていただきたかったのですが、 上記の通り上手く動作しませんでした(涙)
- handomari
- ベストアンサー率47% (83/174)
まず、Sheet2のA列にある商品名部分(例ではA1:A3)を範囲選択して、名前ボックス(数式バーの左側で、通常はアクティブセルの位置がA1のように表示されているところ)に適当な名前(とりあえず、この説明上はname1として)を付けてEnterとすると、商品名部分が名前(name1)で利用できるようになります。 その後、Sheet1のA列は、範囲選択後、データ-入力規則とメニュー操作して、設定で入力値の種類をリストに変更、さらに元の値に=name1と入力してOKします。 これで、Sheet1のリストは完成です。 なお、B列については、VLOOKUP関数で参照して計算するのが一般的ですが、土日だけなら計算できるでしょうが、祝日や休日が入った場合は、おそらく手間がかかると思います。 参考までに、Sheet2のB列をそのまま参照する例を下に書いておきます。 最初の操作と同様にして、Sheet2のA列とB列にある商品名と営業日部分(例ではA1:B3)にname2と名前を付けます。 その後、Sheet1のB2に、VLOOKUP(A2,name2,2)を入力して、下に式をコピーします。
お礼
ご連絡が遅くなりましたが、早速のアドバイスをありがとうございました。 早速、動作確認をしたところほぼ希望に近い動作になりました!! ありがとうございました。