ADVERTISEMENT

【Googleスプレッドシート】WORKDAY関数で指定日数後の営業日を計算!納期管理に活用

【Googleスプレッドシート】WORKDAY関数で指定日数後の営業日を計算!納期管理に活用
🛡️ 超解決

納期管理を行う際、土日や祝日を除いた営業日を正確に計算したい場面は多いです。単純に日付に日数を足すだけでは、土日が含まれてしまうため、実際の納期とずれてしまいます。この記事では、GoogleスプレッドシートのWORKDAY関数を使い、指定した日数後の営業日を簡単に求める方法を解説します。休日リストをカスタマイズするテクニックや、他の関数との組み合わせ例もご紹介しますので、ぜひ業務にお役立てください。

【要点】WORKDAY関数で営業日計算を効率化

  • =WORKDAY(開始日, 日数, [休日]): 開始日から指定日数後の営業日(土日除く)を返す基本構文です。日数は正の数で未来、負の数で過去の営業日を計算できます。
  • 第3引数に休日リストを指定: 別セル範囲に祝日や会社の休業日をリストアップしておき、その範囲を参照することで、土日以外の休日も除外した正確な日付を求められます。
  • ARRAYFORMULAとの組み合わせ: 複数の案件に対して一括で営業日を計算したい場合は、ARRAYFORMULAでWORKDAYをラップすると、スピル機能を使って効率的に結果を得ることができます。

ADVERTISEMENT

WORKDAY関数の仕組みとできること

WORKDAY関数は、開始日と営業日数を指定することで、その日数後の営業日(土曜日と日曜日を除く平日)を自動的に計算してくれる関数です。Googleスプレッドシートでは、日付は内部的にシリアル値(1900年1月1日を1とする連続数値)として扱われるため、WORKDAY関数もこのシリアル値に基づいて計算を行います。

この関数の最大の特徴は、第3引数に休日リストを指定できる点です。任意の日付範囲を休日として登録しておけば、国民の祝日や会社の創立記念日など、土日以外の非営業日を正確に除いた日付を返せます。これにより、製造業の生産計画やプロジェクトのマイルストーン設定など、実務に即した日付管理が可能になります。

なお、週末を土日以外に設定したい場合(例:金土が週末の国)には、WORKDAY.INTL関数が用意されています。WORKDAY.INTLについては後ほど比較表で詳しく解説します。

WORKDAY関数の基本的な使い方

ここでは、WORKDAY関数の最もシンプルな使い方を実際の操作手順で確認します。開始日として「2024/1/1(月)」、日数として「5」を指定し、5営業日後の日付を求めてみましょう。

  1. 開始日をセルに入力する
    任意のセル(例:A1)に開始日を入力します。ここでは「2024/1/1」と入力し、セルの書式を日付に設定しておきます。
  2. 日数を別のセルに入力する
    別のセル(例:B1)に日数を入力します。今回は「5」と入力します。日数は正の整数であれば何日でも指定可能です。
  3. WORKDAY関数を入力する
    結果を表示したいセル(例:C1)に次の数式を入力します。
    =WORKDAY(A1, B1)
    これで、2024/1/1から5営業日後の日付が表示されます。2024/1/1(月)から土日を除くと、1/2(火)、1/3(水)、1/4(木)、1/5(金)、1/8(月)となり、結果は「2024/1/8」と表示されるはずです。
  4. 数式をコピーして他の案件にも適用する
    開始日や日数を別の行に用意しておけば、数式をドラッグして複数の案件の営業日を一括計算できます。このとき、日数や開始日の参照が相対参照になっていることを確認してください。

休日リストを指定して正確な営業日を求める

実際の業務では、土日だけでなく祝日や会社の特別休暇も休みになることが多いです。WORKDAY関数の第3引数に休日リストを指定することで、それらの休日を除いた営業日を計算できます。

  1. 休日リストを作成する
    別のシートまたは同じシートの別領域に、休日となる日付を縦一列に列挙します。例として、E1〜E5に「2024/1/1(元日)」「2024/1/8(成人の日)」「2024/2/11(建国記念の日)」などを入力してください。日付は必ずシリアル値として認識されるように日付形式で入力します。
  2. 数式に休日リストを追加する
    先ほどの数式に第3引数として休日リストの範囲を指定します。絶対参照($)を使うと、数式をコピーしても範囲がずれません。
    =WORKDAY(A1, B1, $E$1:$E$5)
    これで、開始日から日数後の日付を計算する際に、指定した休日リスト内の日付も除外されます。
  3. 休日リストを更新する
    休日リストはシート上で自由に追加・削除できます。新しい祝日が決まったら、リストに日付を追加するだけで自動的に計算に反映されるため、管理が非常に楽です。

ADVERTISEMENT

ARRAYFORMULAで複数の案件を一括処理する

案件ごとに開始日と日数が異なる場合、WORKDAY関数を1行ずつ書くのは手間がかかります。ARRAYFORMULA関数を使えば、複数のWORKDAY計算を一度に実行できます。

  1. 開始日と日数を列で準備する
    例えば、A2〜A10に開始日、B2〜B10に日数を入力します。
  2. ARRAYFORMULAでWORKDAYをラップする
    結果を表示する列の先頭セル(例:C2)に次の数式を入力します。
    =ARRAYFORMULA(WORKDAY(A2:A10, B2:B10, $E$1:$E$5))
    これにより、C2〜C10に各案件の営業日が自動的に計算されて表示されます。
  3. 注意点
    ARRAYFORMULA内では、範囲のサイズを一致させる必要があります。A2:A10とB2:B10は同じ行数でなければエラーになります。また、休日リストは絶対参照で固定しておくことをおすすめします。

WORKDAY関数を使うときの注意点とよくあるトラブル

日数に負の値を指定すると過去の営業日が返る

WORKDAY関数の日数に負の数を指定すると、開始日からさかのぼった営業日を計算できます。例えば、「-3」と指定すれば、3営業日前の日付を取得できます。ただし、休日リストもそのまま適用されるため、祝日をさかのぼる場合は注意が必要です。

休日リストに重複や無効な日付があると予期しない結果になる

休日リストに同じ日付が複数含まれている場合でも、WORKDAY関数はそれを1つとして扱います。ただし、日付として認識されない文字列や空白が混在するとエラーになる可能性があります。必ず日付データのみをリストに含めてください。

WORKDAY関数は週末を土日とみなす

デフォルトでは週末は土曜日と日曜日です。もし勤務曜日が異なる場合(例:日曜日と月曜日が週末)、WORKDAY.INTL関数を使用する必要があります。WORKDAY.INTLでは週末の曜日を数値で指定できます。

日付のシリアル値が正しくない場合がある

セルに文字列として日付が入力されていると、WORKDAY関数が正しく認識しないことがあります。入力した日付が日付形式(例:2024/1/1)であることを確認し、必要に応じてDATE関数で生成してください。

WORKDAYとWORKDAY.INTLの違いを比較

比較項目 WORKDAY関数 WORKDAY.INTL関数
週末の指定 常に土曜日と日曜日を週末とする 第4引数で週末の曜日をカスタマイズできる
休日リスト 第3引数で任意の休日リストを指定可能 第5引数で休日リストを指定可能
引数構成 WORKDAY(開始日, 日数, [休日]) WORKDAY.INTL(開始日, 日数, [週末], [休日])
週末の指定方法 固定のため指定不要 数値 1〜17 または文字列で指定
使用シーン 一般的な週休2日(土日)の営業日計算 週末が土日以外の場合や、週末が1日だけの場合

まとめ

WORKDAY関数を使えば、土日や祝日を自動的に除いた営業日を簡単に計算できます。休日リストを用意しておけば、メンテナンスも容易で、長期的な納期管理に非常に役立ちます。さらに、ARRAYFORMULAと組み合わせれば、多数の案件を一気に処理できるため、業務効率が大幅に向上します。週末の定義が異なる場合はWORKDAY.INTL関数も検討してみてください。ぜひ実際のシートで試しながら、ご自身の業務に最適な営業日計算を実現してください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。