らくらくIT活用術

PC活用講座 - Excel

「Excelの便利機能活用術」
WORKDAY関数とNETWORKDAYS関数で営業日を簡単に計算する

ITライター 立山秀利

例えば「今日から10営業日後の日付を知りたい」など、Excelで営業日に関する計算を行いたい機会はしばしば訪れる。営業日関係の計算に便利な関数がWORKDAY関数とNETWORKDAYS関数だ。今回は両関数の具体的な使い方を紹介する。

WORKDAY関数で「~営業日後」の日付を求める

土日と祭日を除いた営業日に関する計算は、数式のみで行おうとすると非常に複雑になり、手間もミスの恐れも大きくなる。しかし、WORKDAY関数とNETWORKDAYS関数を使えば簡単に計算できる。

なお、Excelでは「祭日」という表現が標準で用いられ、関数の引数のヘルプなどに表示されるが、本来は「祝日」が正しい表現。しかし、今回はExcelの標準にあわせて、「祭日」という表現を用いる。

「~営業日後」の日付を求めるのに便利なのがWORKDAY関数だ。指定した開始日から指定した日数だけ経過した日付を、土日・祭日を除いて求める関数である。
----------------------------------------
=WORKDAY(開始日, 日数, 祭日)

開始日 開始日の日付
日数  営業日の日数
祭日 祭日データのセル範囲
----------------------------------------

例えば、発送日が受注日の5営業日後と仮定する。図1のように、A2セルに受注日の日付として「2015/11/18」、B2セルに5営業日後の「5」を入力したとする。そして、2015年の祭日の一覧がF2~F16セルに入力してあるとする(※)。

その場合、C2セルに発送日を出力するには、WORKDAY関数を用いた次の式を入力すればよい。
----------------------------------------
=WORKDAY(A2,B2,F2:F16)
----------------------------------------

すると、C2セルに発送日が求められ、「2015/11/26」と表示される。2015年11月は21日が土曜日、22日が日曜日、23日が祭日(勤労感謝の日)である。すると、11月18日から5営業日後は、1営業日後が11月19日であり、以降は20日→24日→25日→26日となるため、「2015/11/26」と出力される。

図

(画像をクリックすると拡大表示します)

(※)祭日のデータは内閣府のWebページから取得すると確実だ。
https://www8.cao.go.jp/chosei/shukujitsu/gaiyou.html

NETWORKDAYS関数で営業日の日数を求める

指定した期間の営業日の日数を求めるならNETWORKDAYS関数の出番だ。指定した開始日から終了日までの日数を、土日・祭日を除いて求める関数である。

----------------------------------------
=NETWORKDAYS(開始日, 終了日, 祭日)

開始日 開始日の日付
終了日 終了日の日付
祭日 祭日データのセル範囲
----------------------------------------

例えば、受注日と納品日があり、その期間の営業日の日数を求めたいとする。図2のように、A2セルに受注日の日付として「2015/11/18」、B2セルに納品日の日付として「2015/11/26」を入力したとする。2015年の祭日の一覧がF2~F16セルに入力してあるとする。

受注日から納品日までの営業日の日数をC2セルに求めるには、NETWORKDAYS関数を用いた次の式を入力すればよい。
----------------------------------------
=NETWORKDAYS(A2,B2,F2:F16)
----------------------------------------

すると、C2セルに営業日の日数が求められ、「6」と表示される。11月18日から11月26日までの営業日は18日→19日→20日→24日→25日→26日なので、6日間と求められる。

図

(画像をクリックすると拡大表示します)

両関数を使う上で注意してほしいのは開始日の扱いだ。WORKDAY関数は指定した営業日後と、“後”の日付を求めるため開始日は含まない。一方、NETWORKDAYS関数は期間の日数を求めるため、開始日は含まれる。これらの違いを認識した上で両関数を使おう。

さらには、より高機能なNETWORKDAYS.INTL関数とWORKDAY.INTL関数も用意されている。WORKDAY関数とNETWORKDAYS関数は定休日が土日の場合しか対応できないが、NETWORKDAYS.INTL関数とWORKDAY.INTL関数は土日以外にも対応できる。

このようにWORKDAY関数とNETWORKDAYS関数を用いれば、営業日関係の計算がより素早く確実にできるようになる。

その他の【Excel】を見る

PC活用講座 一覧へ

立山秀利(たてやま・ひでとし)

カーナビのソフトウェア開発、Webプロデュース業務を経て、現在は、システムやネットワーク、Microsoft Officeを中心に執筆中。 主な著書に『Excel VBAのプログラミングのツボとコツがゼッタイにわかる本』などがある。

(監修:日経BPコンサルティング)