- ベストアンサー
土日祝日以外の万年カレンダーを作成したいのですが
Excelで土日祝日以外の万年カレンダーを作成したいと思っているのですが良い方法がありましたら教えてください。 ちなみに日付の表示は昇順に縦一列です。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
基本はworkday関数です。workday(基準日,日数,祝日一覧)で、基準 日から土日祝日を除いた日数後を返します。2004以前では分析ツー ルをインストールする必要があります。 とりあえず、祝日一覧は自分で用意して下さい。holidaysと名前を つけたことにします。年と月を指定するセルはmt2008さんと同じく A1およびB1とします。 ・月の初日 基準日は当月1日にしたくなりますが、前月末日にしてそのよく営業 日ってしないと1日が土日祝日に該当したときにダメになります。末 日を出すのはeomonth関数です。 =workday(eomonth(date($A$1,$B$1-1,1),0),1,holidays) ・翌日以降 簡単に上の行の翌営業日ですから、たとえばA18あたりには =WORKDAY(A17,1,holidays) とかいてあるわけです。 ・月末近辺 最短で19日目あたりから月末のチェックが入ります。上の行の翌営 業日の月を調べてB1と一致しなければもう翌月なので、空白を返し ます。上の行が空白なら問答無用で空白です。するとA23には、 =IF(A22="","",IF(MONTH(WORKDAY(A22,1,holidays))<>$B$1,"",WORKDAY(A22,1,holidays))) みたいな感じになります。これが23日目あたりまで続きます。 おしまい。
その他の回答 (2)
- mt2008
- ベストアンサー率52% (885/1701)
Sheet1のA1に対象年、B1に対象月があるとします(例:2008 10)。 振り替え休日まで考えると祝日が難しいですが、リンク先を参考にSheet2のA列に対象年の祝日の一覧を作ってください(これが一番難しいかもしれません)。 [Sheet2] 2008/1/1 2008/2/11 2008/4/29 : Sheet1のD1に「日付」とでも項目名を入れ、D2:D29に =DATE($A$1,$B$1,ROW()-1) D30:D32に月末調整のために以下の式を入れます。 =IF(MONTH(DATE($A$1,$B$1,ROW()-1))>MONTH($D$29),DATE($A$1,1,1),DATE($A$1,$B$1,ROW()-1)) #不要な部分を1/1にしていますが、元旦は必ず祝日ですので後で表示しなくなります。 今度はC1に「平日」とでも項目名を入れ、C2:C32に以下の式を入れます。 =IF(AND(WEEKDAY(D2,3)<5,ISNA(MATCH(D2,Sheet2!A:A,0))),1,0) すると、平日には1が表示されます。 最後にC:D列をオートフィルタで「平日」が1の物だけ表示すれば平日のみのカレンダーになります。
お礼
さっそくありがとうございます。 難しそうですがやってみます。
- marbin
- ベストアンサー率27% (636/2290)
たとえば、いつからいつまでのを作りたいのでしょう? 今年? 今月? 今週?
補足
月ごとのカレンダーを作りたいです。書類受付の管理簿がA41枚あたり一月分に納まるような表です。
お礼
この方法でうまく行きそうです。 ありがとうございました。