【関数】開始日と日数をもとに、土日祝を除いた「終了日」を計算できる「WORKDAY」の使い方
AさんAさん

Excelで特定の「日付」の列を基準に、指定の日数を加算して「終了日」となる日付を計算したいです。
土日祝が休みなので、そうした休日は計算の対象外にしたいですが、カレンダーを見て自分で計算するしかないですかね?

森田森田

その場合は、関数のWORKDAYを活用すると良いですよ!
では、WORKDAYの使い方について解説していきますね。

はじめに

参考記事

関数の概要については以下の記事をご参照ください。

開始日+日数で「終了日」を算出したい、かつ土日祝休みの場合は「WORKDAY」が有効

実務では、タスクの期日等の「終了日」を計算しておくことは非常に重要です。

特に、プロジェクト形式で仕事を行う、上司から依頼されたタスクを対応する際など、関係者へ期日を伝える必要がありますね。

ただし、カレンダーが目の前にないと、土日祝といった休日を除いて「終了日」を計算するのはなかなかハードルが高いです。

こんな場合、関数のWORKDAYを使うと良いです。
WORKDAYは「ワークデイ」と読む。

WORKDAYを使うことで、土日祝を除き、特定の日付に所要日数を加算した「終了日」の日付(シリアル値)を計算できます。
祝日についてはユーザー自身で自由に設定可能。

ちなみに、シリアル値は、190011日を起点に何日目かをカウントした数値です(「44082」なら、190011日から44082日目)。

参考記事

土日が定休日ではない場合、定休日のパターンを自由に指定できる「WORKDAY.INTL」を使用してください(詳細は以下の記事を参照)。

WORKDAYの構文

WORKDAYの構文は以下の通りです。

=WORKDAY(開始日,日数,[祭日])
開始日から起算して日数で指定した日数だけ前あるいは後の日付に対応するシリアル値を計算します。

引数名 必須 データ型 説明
開始日 すべて 起算日を示す単一セル(値が日付)を指定します。
日数 すべて 「開始日」に土日や「祭日」の日付を除いて加算したい日数を指定します。
※負の数を指定の場合、「開始日」より前の日付となる
祭日 すべて 祝日等、「日数」から除外したい日付を示すテーブルまたはセル範囲を指定します。

各引数に無効な値(文字列等)を指定した場合、エラー値「#VALUE!」が表示。
引数「開始日」に「1900/1/1」~「9999/12/31」以外の日付(シリアル値)を入力した場合、エラー値「#NUM!」が表示。
引数「開始日」・「日数」の和が無効な日付となる場合、エラー値「#NUM!」が表示。
引数「日数」を小数点以下まで指定した場合、整数以外は切り捨てされる。
引数「祭日」を省略した場合、引数「開始日」・「日数」の和から除外されるのは土日のみ。

【参考】WORKDAYは「日付/時刻関数」

あくまで参考情報となりますが、WORKDAYはリボン「数式」タブの関数ライブラリの「日付/時刻」に分類されています。

実際にWORKDAYを活用する際は、以下で解説しているように直接入力で挿入していきましょう。

WORKDAYの使用結果イメージ

WORKDAYを使い、開始日と日数から「終了日」を計算するイメージは以下の通りです。
今回は「開始日」・「所要日数」列のデータと「祝日」テーブルから「終了日」を計算しました。

上記のように計算列としてWORKDAYを使う場合、1レコードにつき1つの関数を使います。
「計算列」とは、数値/日付/時刻の列の値を計算した新たな列のこと。

ベースの数式をセットしたら、他のセルへペーストしましょう。

なお、引数「祭日」に指定するテーブル/セル範囲は、事前に自身で準備する必要があります。
2023年 祝日」のようにネット検索し、間違いないように準備すること(国民の祝日以外に会社や学校独自の休日があれば適宜追加)。

【参考】WORKDAYの戻り値は「開始日」を含まない

WORKDAYに限りませんが、Excelの日付計算では基本的に開始日は含まれません(終了日は含む)。

どういうことか、開始日「2023/5/1」、日数「2」の場合でカレンダーを使って確認していきましょう。

このように、開始日はあくまでも起算なので、日数の数値に含まれないことが分かります。

もし、開始日を含みたい場合は引数「日数」の後に「-1」を入れれば良いです。
数式の例:=WORKDAY(C2,D2-1,祝日[祝日])

WORKDAYの数式の挿入手順

上記の結果を得るための手順は以下の通りです。

  1. 関数を挿入するセルを選択
    ※今回はE2セル
  2. =wo」等と入力
  3. サジェストから「WORKDAY」を選択し、「Tab」キーで確定
  4. 開始日を示すセルを選択
    ※今回はC2セル
  5. コンマ(,)を入力
  6. 日数を示すセルを選択 or 整数を入力
    ※今回はD2セル
  7. コンマ(,)を入力
  8. 祭日を示すテーブル/セル範囲を選択
    ※今回は「祝日」テーブル
  9. Enter」キーで確定
  10. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はE3~E11セルへペースト

手順②の際にIMEを半角英数モードにすること。
手順④⑥をすべてセル参照する場合、「Ctrl」キーを押しながらセル選択することで手順⑤⑦の入力を省略可能(コンマ(,)が自動入力)。
テーブルの場合、手順⑩は不要(全レコードへ数式が自動的にコピーされる)。

サンプルファイルで練習しよう!

可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。

サンプルファイル_ワークシート関数_WORKDAY.xlsx

※サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります。
(上記リンクから登録フォームへ遷移します)

ブックを開いたら、次の手順を実施してください。(今までの解説のまとめです)

  1. 関数を挿入するセルを選択
    ※今回はE2セル
  2. =wo」等と入力
  3. サジェストから「WORKDAY」を選択し、「Tab」キーで確定
  4. 開始日を示すセルを選択
    ※今回はC2セル
  5. コンマ(,)を入力
  6. 日数を示すセルを選択 or 整数を入力
    ※今回はD2セル
  7. コンマ(,)を入力
  8. 祭日を示すテーブル/セル範囲を選択
    ※今回は「祝日」テーブル
  9. Enter」キーで確定
  10. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はE3~E11セルへペースト

本記事の解説と同じ結果になればOKです!

さいごに

いかがでしたでしょうか?

WORKDAYは日付データを元にした計算列の追加に役立つ関数の一つです。

定期的に「終了日」を計算する計算列を作成する機会があるなら、ぜひ覚えておいた方が良いですね。

なお、WORKDAY以外にもExcelでのデータ整形の各種テクニックを拙著で解説していますので、こちらも参考にしてみてください。


ご参考になれば幸いですm(_ _)m

森田森田

WORKDAYとセットで覚えておいた方が良い関数は、定休日のパターンを自由に指定できる「WORKDAY.INTL」です。
あと、逆パターンとして、開始日と終了日から土日祝といった休日を除いた日数を算出できる「NETWORKDAYS」や「NETWORKDAYS.INTL」も使い勝手は同じなので、セットで覚えておくと良いでしょう。