営業日に関する関数をまとめます。
今日のテーマは下記のとおり。
1.単に営業日を数えて、5営業日後、10営業日後を導き出す
2-1.書式を統一して翌月末、翌々月10日などを導き出す
2-2.さらに「休日のときは前の営業日」を自動計算する
このようなテーマはGW前に知っておきたかったとこかもしれませんが、
まぁ来年のために知っておくのも良いですよね。
1.単に営業日を数えて、5営業日後、10営業日後を導き出す
最初のテーマですが、これはWorkday関数を使えば簡単にできます。
=workday(開始日,日数,[祭日])

こんな感じです。この場合は、3月1日を基準にして10営業日後を計算して3月13日という答えを得ています。
ちなみに「祝日」というのは「I5:I23」に置き換えてられますが、
せっかくなので下記のように「名前の定義」をして簡略化しています(結構便利)

ここまでは関数をそのまま使うので大丈夫ですかね。
2-1.書式を統一して翌月末、翌々月10日などを導き出す
次は、「A社の支払いは翌月末だからいいけど、B社は翌々月5日払いだし、C社は翌々月20日払いでややこしいんだよねー」といったときの計算です。
まず2-1で、「翌々月末払い」までを表現できる計算式をお伝えします。
ここでは休日は無視されます。
=IF(日数=30,EOMONTH(基準日,1),IF(日数<30,EOMONTH(基準日,0)+日数,IF(日数=60,EOMONTH(基準日,2),EOMONTH(基準日,1)+日数-30)))

B列の「日数」を入力する際に4つのルールがあります。
・翌月n日→nを入力 例)翌月25日→25
・翌月末日→30を入力
・翌々月n日→30+nを入力 例)翌々月10日→40
・翌々月末日→60を入力
これで、やっかいな翌々何日といった営業日を一発で導き出します。
あとはこの日が休日だったときの対応です。
2-2.さらに「休日のときは前の営業日」を自動計算する
まずは画像をご覧ください。

さきほどの隣の列に追加しました。計算式は下記のとおり。
=IF(前後判断="前",WORKDAY(2-1の日付+1,-1,祝日),WORKDAY(2-1の日付-1,1,祝日))
画像で解説すると次のとおり。
・「前後判断」は、C列。指定の日が休みの場合に前営業日とする場合は「前」、そうでなければ「後」です。
・「2-1の日付」は、E列。さきほどの計算式が入ってるところです。
このB列からF列は、画像のように下にずらーっとコピーできるのでいくつでも可能です。
1も2も共通して「祝日」を作っておかなければならないのと、来年になったらまた「祝日」を更新しなければならないのが難点ではありますが、年に1度の5分で終わる作業なのでさほど苦労はないでしょう。
万人に役に立つかわかりませんが、もしお困りの事務担当の方がこれで便利になれば何よりです。
検索にひっかかるとしたら:Excel 関数 営業日 翌営業日 前営業日 祝日 支払日計算


