いまさら聞けないExcelの使い方講座

【Excel】ゴールデンウィークで営業日の計算ができない!エクセルで祝日を考慮してカウントするテク

土日が休日でない場合、「3営業日後の日付」はどう求める?

 Excelの表を使って納品管理をすることはよくあると思います。納品管理表に納品日や発送日などを記載する際、「注文のあった日から3営業日後の日付を指定したい」というように、休日を除いてカウントした日付を入力したいことってありませんか。

 「〇営業日後の日付を求めたい」と聞いて「WORKDAY関数」を思いつく読者は多いでしょう。WORKDAY関数は、指定した営業日数後の日付を求める関数で、今回のようなケースにぴったりの関数のように思えますよね。

 でもこのWORKDAY関数は、土日が休日であるという前提で営業日数をカウントする関数なので、土日以外が休日となっている業務では営業日を正しくカウントすることができません。

 そこで今回解説するのは、「WORKDAY.INTL関数」という関数です。この関数を使えば、土日以外の曜日を休日に設定して、営業日をカウントすることができます。さっそくこの便利な関数の使い方を見ていきましょう。

WORKDAY.INTL関数の使い方

 WORKDAY.INTL(ワークデイ・インターナショナル)関数も、WORKDAY関数と同じように指定した営業日数後の日付を求める関数ですが、営業日としてカウントしない休日に土日以外の曜日を指定できることがWORKDAY関数とは異なります。

 WORKDAY.INTL関数の書式は、次のとおりです。「開始日」には基準となる日付を指定し、「日数」には「開始日」から何日後の日付を求めたいのかを指定します。「週末」には休日として設定する曜日を、以下の表で示す方法に則って指定します。例えば、毎週水曜日を休日として指定したい場合は、3つ目の引数に「14」を指定します。「祭日」には休日として設定したい日付(祝日や会社の創立記念日など)のリスト(実際はセル範囲)を指定します。

 ちなみに、冒頭で触れたWORKDAY関数の書式は次のとおりです。WORKDAY.INTL関数の3つ目の引数がないだけで、あとは同じです。

 関数の説明はこのくらいにして、実際に数式を入力していきましょう。

水曜日が休日の業務で3営業日後の日付を求める

 次の「納品管理表」(①)を使用している業務の例を考えてみましょう。この業務では、毎週水曜日を休日とし、注文から3営業日後に商品を発送するものとします。A列に入力された「注文日」(②)から3営業日後の日付をG列の「発送予定日」(③)に算出してみましょう。

 事前に、WORKDAY.INTL関数の引数として指定する祭日(祝日)のリスト(④)を作っておきます。ここでは同じシートの右側の部分にこれを作成しました。画面の都合上、すべては見えていませんが、1年分の祝日が入力されています。リストには、年末年始の休み、お盆休み、創立記念日などの休みも入力しておくことができますよ。

 では発送日を求めていきましょう。まず、セルG4をクリックして「=WORKDAY.INTL(」(⑤)と入力します。

 1つ目の引数である「開始日」にはセルA4を指定したいので、セルA4(⑥)をクリックします。すると入力中の数式の1つ目の引数に「A4」(⑦)と表示されます。

 続けて「,」(半角カンマ)を入力し、2つ目の引数である「日数」に「3」と入力します(⑧)。

 続けて「,」(半角カンマ)を入力すると、3つ目の引数である「週末」に指定できる数値の一覧(⑨)が表示されます。今回は、水曜日を休日とするので、「14 - 水曜日のみ」(⑩)をダブルクリックします。

 数式に「14」と表示されたら、続けて「,」を入力し、最後の引数である「祭日」を指定します。祭日(祝日)のリストが入力されているデータ範囲(セル範囲I3:I24)をドラッグ(⑪)すると、数式の後ろにI3:I24(⑫)が追加されます。

 この数式をほかのセルにコピーしても祭日のリストの参照範囲がずれないように、絶対参照にしましょう。[F4]キーを1回押すと、絶対参照に変更されて「$I$3:$I$24」(⑬)と表示されます。これで、この数式をほかのセルにコピーしても常にセル範囲I3:I24が参照されるようになります。

 最後に「)」(半角カッコ)を入力して数式は完成です(⑭)。[Enter]キーを押して数式を確定しましょう。

 すると、セルG4に「43561」(⑮)と表示されました。この時、「失敗した!」と思わないでください。日付がシリアル値で表示されているだけなので、「YYYY/MM/DD」という日付形式になるように書式を変更します。

 セルG4を選択した状態で、[ホーム]タブ(⑯)→[数値]グループの[数値の書式]の右側にある矢印(⑰)をクリックします。表示されるメニューから[短い日付形式](⑱)をクリックします。

 先ほどのシリアル値が「2019/4/6」という日付形式に変わりましたね(⑲)。

 ここで、セルG4の値が正しく計算されたかどうか確認しやすくするために、以前の記事を参考に表示形式を変更して、日付の後ろに曜日も表示させてみます(⑳)。

 2019/4/2(火)から水曜日を除いた3営業日後の日付は2019/4/6(土)なので、間違いないですね。

 この数式をセルG8まで、オートフィルでコピーしてみます(㉑)。これですべての発送予定日が求められましたね。

 ところで、8行目のデータ(㉒)に注目してみてください。2019/4/26(金)の3営業日後が2019/5/7(火)というのは、ずいぶん間が空いているように思いますよね。でもこれは正しい値です。祝日リストを見てみると、4月29日(月)から5月6日(月)までが休日(㉓)と指定されています。2019/4/26(金)以降の営業日は、2019/4/27(土)、2019/4/28(日)、2019/5/7(火)なので、3営業日後の日付は2019/5/7(火)で間違いありませんね。

土日以外を休日に指定して営業日数をカウントできる

 今回は、WORKDAY.INTL関数を使って、指定された営業日数後の日付を求める方法を解説しました。土日以外の曜日を休日に設定して営業日数の計算ができるのが、この関数の特徴でしたね。

 土日休みでない仕事をしている読者の皆さんは便利に使えるのではないでしょうか。ぜひ、使ってみてくださいね!

Excelでストレスなく作業できるビジネスパソコンとは?

 快適にExcelやWord、パワポを使うにはパソコンが大事!古いパソコンを使い続けていると、あなたの働き方も時代遅れになるかも!? オフィスソフトにも働き方改革にも対応する最新パソコン選びのツボを解説!

今月のExcelTips