• ベストアンサー

Excelで休日を除いた予定表の作成

Excelで休日を除いた予定表を作りたいと思っています。 休日も単休日は休日リストでMATCH関数等を利用して除くことができますが、夏休み等の長い連休を開始日と終了日を入力しておけば除くようにできる方法(関数)はないでしょうか? VBAは利用しないで作りたいと思っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

>今1年間の休日を除いた稼働日の予定表を作ろうと思っています。 この時に単休日は休日表をつくっておいて、MATCH関数等で日付が一致すれば削除するようにしていますが、長い休みは休みの開始と終わりの日を入力しておけばその間の休みを削除するようにしたいと思っています。 私の回答は、わざわざ休日の開始日や終了日を入力するような手間がかかる方法ではなく、休日リスト(連続休暇もすべてリストにしておく)を別範囲に設定しておけば、C1セルに開始日を入力すれば、C2セルの数式をオートフィルドラッグすれば自動的に土日と休日を除いた日付が入力できるようにしたものです。 もし、土日を削除したくないなら数式を以下のように変更してください(配列数式)。 =SMALL(IF(COUNTIF(休日,$C$1+ROW($A$1:$A$59)),"",$C$1+ROW($A$1:$A$59)),ROW(C1)) >MATCH関数等で日付が一致すれば削除するようにしていますが どのような方法で日付を削除しているのでしょうか? もし、ご希望の操作が上記の回答と違うなら、具体的に作成したいリストのレイアウトを例示してください。

ganchan59
質問者

補足

回答ありがとうございます。 参考にしてやってみます。

その他の回答 (1)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

ご希望の操作は、あるセルに開始日を入力したら、土日や休日を除いた日付を自動的に作成したいということでしょうか? その場合は、休日リストだけあれば自動的に稼働日を表示することが可能です。 休日リストの範囲に「休日」と名前が付けてあり(もちろん絶対参照でもOK)、C1セルに「12/1」のように開始日を入力した場合、C2セルに以下の式を入力してCtrl+Shift+Enterで確定し下方向にオートフィルします。 =SMALL(IF(COUNTIF(休日,$C$1+ROW($A$1:$A$59))+(WEEKDAY($C$1+ROW($A$1:$A$59),2)>5),"",$C$1+ROW($A$1:$A$59)),ROW(C1))

ganchan59
質問者

補足

回答ありがとうございます。 説明が不十分だったように思います。 今1年間の休日を除いた稼働日の予定表を作ろうと思っています。 この時に単休日は休日表をつくっておいて、MATCH関数等で日付が一致すれば削除するようにしていますが、長い休みは休みの開始と終わりの日を入力しておけばその間の休みを削除するようにしたいと思っています。 IFを使って力づくではできると思いますが、なにか上手い関数の使い方があれば教えて下さい。

関連するQ&A