「WORKDAY.INTL関数」について解説

おさ氏:Hey guys. This is Osa. So today we're gonna learn how to use WORKDAY INTERNATIONAL FUNKTION(笑).

完全にバイリンガールのパクリだね、これ。まあこういう茶番は置いといて、今日は「WORKDAY.INTL関数」を勉強していきます。準備はいいでしょうか。やっていきましょう。

こちらの関数は、昨日習った「WORKDAY関数」というのとほぼほぼ同じ使い方になる、概念になる、機能になるわけですけれども、なにが一番違うのか。

大きく1つ違いがあります。それはなにかと言うと、WORKDAY関数の場合は週末は必ず土日というふうにデフォルトで固定されていて、それを変えることはできなかったんですね。

つまり営業日が平日の方だったらWORKDAY関数だけで十分なんですが、営業日が土日も含まれていて、例えば火曜日、水曜日が私たちは休みなんだ、定休日なんだという方々、たくさんいらっしゃると思います。そういった方々は、WORKDAY関数ではなくてWORKDAY.INTL関数を使用することで、エクセル上で営業日の概念を用いて日にち計算をすることができるようになります。

まあ、ごちゃごちゃ言ってても始まらないのでさっそくやっていきましょう。よろしくお願いします。

はい、それではWORKDAY.INTL関数勉強していきましょう。わかりやすくするために、WORKDAY関数の引数と比較してなにがどう違うのかを確認しながら進めていきます。WORKDAY関数の場合は3つ目の引数がありません。

どういうことかというと、週末というのはWORKDAY関数の場合、土日に固定されているので私たち自身でカスタマイズすることはできないんですね。ただ一方で冒頭に申し上げたようにWORKDAY.INTL関数は週末をカスタマイズできるというわけです。つまり、WORKDAY.INTL関数を使用したときに土日に設定していれば、まったくWORKDAY関数と同じ値をはじき出すということになります。1回それを見てみましょう。

今例としてあげるプロジェクトは開始日が2014年12月30日、去年の12月30日ですね。で、日数、プロジェクトを終えるのにかかる営業日の日数は5営業日必要ですよということが書かれています。で、祭日としては日本は多くの企業が元日お休みですよね。働いている方お疲れ様です(笑)。

で、2015年の1月1日は祭日として設定します。週末は、WORKDAY関数、WORKDAY.INTL関数ともに土日であると仮定した上で話をすすめていきます。本当に同じ値が返ってくるのかやってみましょう。それぞれ打っていきます。

WORKDAYですね。

開始日がこれで、営業日はこれで、祭日はこれですよ。

これちょっと引数の設定の仕方とかポンポンポンってやってます。わからない方は前の動画をご覧ください。これで返すと42011というシリアル値を返してきました。

これですね、書式設定の方からちょっと日付をこういうかたちで表現するようにします。

そうするとこの2015年1月7日がこのプロジェクトが終わる日だというわけですね。返ってきました。

じゃあWORKDAY.INTL関数で同じことをしていきましょう。関数名長いので間違えないようにしてくださいね。で、これを設定せずに4つ目ですね。

ここ注意してください。コンマになっています。3つ目のやつをなにも書かずに抜いてるってことですね。祭日はあるので4つ目は記入しています。これで返すと42011と。これの書式設定ですね。

はい、同じ値が返ってきました。こんな感じでWORKDAY.INTL関数、まあ土日に設定した場合はWORKDAY関数と同じ値返してくるということがわかりました。

「週末」の設定をカスタマイズ

では、じゃあWORKDAY.INTL関数の本領発揮、本当の使い方、本当の価値をみなさんに感じていただきたいので、ちょっと違う例を持ち出しましょう。SO, let me give you another example.はい、それではWORKDAY.INTL関数の方をやっていきましょう。

今回の場合、プロジェクトをこういうふうに設定してみました。先ほどと同じですね。2014年12月30日、ここ一緒ですね。プロジェクト日数が少し変わっています。5日間増えて10日間のプロジェクトだというふうにしました。かつ、週末は土日ではなくて土日も働いて、ただ月曜日が定休日という状態ですね。で、祭日、元日というのと成人の日1月12日ですね。こちらを祭日と設定した上で計算を進めていきます。

ですが、WORKDAY.INTL関数使う上でポイントとなるのはこの週末というところなんですね。

先ほど土日の場合、なにも設定せずにやったんですが、月曜日のみの場合どういうふうに設定するのか。そういうルールがあらかじめ決められています。そのルールの決め方というのがこちらの表ですね。

これはあらかじめマイクロソフトさんが設定してくれている値になりますね。今回月曜日のみの場合、12という数値をこの週末の引数の値にしてあげてね、というふうになっています。

ただ、正直この設定値と呼ばれているもの、私も覚えてませんし、おそらく完全に覚えてる方はほぼいないんじゃないかなと思います。実際にこの表、「WORKDAY.INTL関数、設定値」みたいな感じでググれば出てくるんですけども、正直面倒くさいですよね、ググるのも。インターネットがなかったらどうしようもないし。そこで僕自身が行っている、週末の設定方法をご紹介いたします。

それが、こちらです。2進数という項目が出てきました。実は週末は2進数で表現できるんですね。例えば土日ですと、0000011というふうになります。これは具体的には左から順番に月火水木金土日、7桁目が月曜日ですね。で1桁目に見えるのが日曜日になります。

7桁目の方から順番に101010みたいな2つの数値で稼働日か、非稼働日かを表現できるんですが、エクセルの場合、WORKDAY.INTL関数の場合、0が稼働日、つまり営業日、平日を表現して、1が非稼働日、休日、週末を表現する値になります。

これはすごい便利で、なぜかというと、設定値だとこれ17パターンしか存在しないんですが(パターン数は14)、これ仮に3日以上の週末、お休みをもらっている人ですね。例えばノマドワーカーとか、あるいは在宅で働いている方も多分いらっしゃると思いますし、そういう不定期で週2、週1の休みじゃない方、それ以上の方々も、2進数を用いることで自分たちのお休みを表現することができます。

もしも月曜日が定休日の場合

今回、月曜日のみが週末というふうに考えた上記の具体例を用いてWORKDAY.INTL関数を作っていきます。

「WORKDAY」と打って、これピリオドを忘れずに打ちましょう。

カッコで始めて、まず最初の引数、次の引数はプロジェクトにかかる日数、3つ目は月曜日のみが週末ですね。今回の場合12を設定してもいいですし、あるいはこちらの1000000という値を設定してもかまいません。

これダイレクトでもちろん打ってもかまいません。こんな感じですね。

これ必ずダブルクォーテーションで括ってあげないと判定してくれないので、ちゃんと括るようにしましょう。最後に祭日、これは範囲選択で大丈夫です。

でカッコで閉じると、42015とまたシリアル値が返ってきましたね。

シリアル値、日付、時刻の関数、何度も何度も説明してますが、概念的に関わってくるものなので、わからない方はどんどんここらへんのやつ(前の動画)を参考にしてやってみてください。

じゃあ、セルの書式設定から直していくとこんな感じ。

2015年1月11日と出てきました。これ今、成人式の日、1月12日だったんですけれども営業日が10日だとその前に終わっちゃいましたね。例えばこれを11に変更してみると、12日が休みなのでこれおそらく13日になるんですね、この値。今11に変えてやってみます。

はい、このときに、今自動的に変わりませんでしたね。そのときは数式タブの計算のところから設定を変えて自動計算にしないと計算してくれません。

で今1月13日に変わりました。

このように、WORKDAY.INTL関数はすごくフレキシブルに週末を移動させることができるので、土日以外がお休みの方もこの関数用いて、例えばプロジェクトの最終日を求めたり、あるいは取引先への商品の納入日といったものを計算して、カウントチャートにまとめるというのも、まあ昔ながらのやり方ですけどありますので、ぜひお試しください。