マクロ講座超入門20回 SEQUENCE関数とWORKDAY.INTL関数で営業日カレンダー
SEQUENCE関数の応用例
SEQUENCE関数とWORKDAY.INTL関数で営業日カレンダー
動画版「Excelスキルアップ仕事術36回」です。
スキルアップの仕事術35回では、SEQUENCE関数を使って、一度数式を入れたら永久に使えるというカレンダーを作成しました。
SEQUENCE関数がまだ使えないというExcelの場合ですと、 デート関数やウィークデート関数を使ったスキルアップの仕事術35回では、Date関数とWeekday関数29回で紹介したカレンダーが便利ですので、チェックしてみてください。
(サンプルファイルは、こちらです。 セルの文字列を指定した区切りで分割する、時短激うまExcelの3行マクロ~すぐに使えるミニマクロrn回サンプル)
SEQUENCE関数とWORKDAY.INTL関数で営業日カレンダー
営業日カレンダーをSEQUENCE関数で作成する
カレンダーをさらに使いこなすということで 営業日カレンダーというのを作成していきたいと思います。
普通のカレンダーは出勤日も休み日も全部出ているわけですが、営業日カレンダーは営業日しか表示されていないとカレンダーです。営業日カレンダーがカンタンに作成できたらいいのにと思っている方も多いかと思います。まずSEQUENCE関数を使った営業日カレンダーを作成しましょう。
シートにSEQUENCE関数を入力していきます。最初の引数は何行入力するかという行範囲の指定です。
次の引数は列範囲、何列必要かを指定します。続いて開始値といくつずつ増やすかという増分地の目盛りを指定します。
このサンプルでは、開始値は、B1セルを指定しました。増分値は1としましたが、省略した場合は1となります。
休日を除外するWORKDAY.INTLワークデイ・インターナショナル
数式を入力すると、このように指定した行を28、列を1、開始をB1、目盛りを1と指定した場合の連続データが入力されます。
これを元に、営業日カレンダーをWORKDAY.INTLワークデイ・インターナショナルも使用して作成していきます。WORKDAY.INTL関数は、[開始日]から数えて指定した[日数]だけ経過した日付を、指定した[週末]と[祝日]を除外して求めます。結果はシリアル値です。
祭日の引数は1がデフォルトで土日休日です。省略した場合は1を指定したものとみなされます。
WORKDAY.INTLの引数週末につかう定数の一覧表。
この式の場合は、営業日をカウントして28日後の日付が返されました。
営業日カレンダーへの応用方法
営業日カレンダーへの応用方法は、指定した開始日からの日数を1日ずつ増やしていけばいいことになります。
WORKDAY.INTL関数の開始日がB1そして1日後ですね。次が2,次が3と書いていけばいいのですが、これが結構大変。
ここの連番部分をSEQUENCE関数で出そうというのがこの数式の狙いです。
週末を設定します。
さらに祭日を指定したい時は、祭日の一覧表を予め用意しておく必要があります。サンプルの場合は、holidayと名付けたシートに祭日を記載しておきました。
以上で営業日カレンダーの完成です。あとは書式を整えて、見栄えをよくしましょう。