
時間管理はプロジェクトを順調に進める上で非常に重要な要素です。そのため、ほとんどの人は何らかのプロジェクト管理ソフトウェアを使用しています。Microsoft Excelは時間管理ツールではありませんが、プロジェクトの期限管理に活用できます。多くの方と同じように、プロジェクトを期限内に完了するまでにあと何日残っているか知りたいと思うでしょう。そして、Excelが役に立ちます。
このチュートリアルでは、ExcelのNETWORKDAYS()関数を使って、現在のプロジェクトの残り営業日数を計算する方法を説明します。ここでは、単に日数ではなく「営業日」を指定している点に注意してください。この記事で言う「営業日」とは、月曜日から金曜日までを指します。つまり、残り日数には、今日から予定完了日までの間にある土曜日や日曜日は含めないようにします。このチュートリアルのデモファイルをダウンロードできます。
Windows 10 64 ビット システムで Microsoft 365 を使用していますが、Excel 2007 までの以前のバージョンの Excel も使用できます。Web 用 Excel は NETWORKDAYS() をサポートしています。
Excelで日付を減算する方法
2つの日付の間の日数を求めるために、日付を減算できることをご存知かもしれません。例えば、次のような簡単な式があります。
=[@完了]-TODAY()
図 Aに示すように、今日が 8 月 7 日の場合、プロジェクトの推定完了日までの残り日数の合計を返します。
図A

[@Completion] という参照は、テーブルの「完了」列の対応する日付を参照します。Excelでは、データがTableオブジェクトに格納されているため、構造化参照が使用されます。通常のデータ範囲を扱う場合は、代わりに次の式を使用します。
=$C5-今日()
参照:誰もが知っておくべき Windows、Linux、Mac のコマンド (無料 PDF) (TechRepublic)
単純な日付演算式に慣れていない場合は、次のように評価されます。
$C5-今日()
2022年8月31日~8月7日
44804-44780
24
TODAY() 関数は更新されるため、表示される結果はこの記事の数値と一致しないことに注意してください。実際、プロジェクト4のように、期限超過と表示される場合もあります。Excelは、プロジェクトが現状のまま完了したかどうかを判断できません。そのため、デモファイルは期待どおりに機能しない可能性がありますので、ご自身の使用状況に合わせて完了日を変更してください。
本日2022年8月7日から2022年8月31日まで、残り24日です。このシンプルな表現は便利ですが、2つの日付の間のすべての日数を含んでしまいます。このことを意識していないと、プロジェクトを完了するのに残り24日しかないと思い込み、週末も働かなければならないという過ちを犯してしまう可能性があります。そのような事態を避けるため、私たちは就業日数のみをカウントしたいと考えています。
ExcelでNETWORKDAYS()を使う方法
ExcelのNETWORKDAYS()関数を使えば、2つの日付の間の営業日数だけを簡単に計算できます。この関数は、以下のように7日間の曜日を計算します。
- 月曜日から金曜日までは平日です。
- 土曜日と日曜日は週末なのでカウントから除外されます。
就業日がこれらと異なる場合は、Excel の NETWORKDAYS.INTL() 関数を使用しますが、この説明ではその関数については説明しません。
NETWORKDAYS() は次の構文を使用します。
NETWORKDAYS(開始日, 終了日, [休日])
start_date はプロジェクトの開始日、end_date はプロジェクトの完了予定日です。残りの日数を計算するため、start_date は常に現在の日付になります。これは TODAY() 関数を使用することで実現できます。オプションの [holiday] 引数は、計算から除外する休日のリストです。この引数については後ほど説明します。
2つの日付を参照または入力することもできますが、開始日から終了日までの日数はカウントしません。代わりに、今日から予定完了日までの日数をカウントします。代わりに、次の関数を使用します。
=NETWORKDAYS(TODAY(),[@完了])
これは先ほど使用した単純な式と同じ評価になりますが、図Bに示すように、この関数は土曜日と日曜日を結果に含めません。8月7日から8月31日までは24日ありますが、営業日は18日しかありません。明日、8月8日にファイルを開くと、残り日数は23日、営業日数は17日になります。
図B

米国では、2022 年 9 月 5 日は労働者の日という祝日です。その日をカウントから除外したい場合は、オプションの holiday 引数を使用できます。
Excelで祝日を除外する方法
これまで、NETWORKDAYS() を使って、今日からプロジェクトの予定完了日までの日数をカウントする際に週末を除外してきました。プロジェクト3では、労働者の日(レイバーデー)を考慮する必要があります。幸いなことに、NETWORKDAYS() は祝日もカウントから除外できますが、その場合は祝日を指定する必要があります。
図 C は、米国の労働者の日である 2022 年 9 月 5 日の日付のみを含む単純なテーブル オブジェクトを示しています。実際の作業状況では、休日テーブルははるかに大きくなりますが、ここでは単純にするために 1 つの日付のみを含めています。
図C

テーブルを作成したら、日付列に「Holidays」という名前を付けるか、関数内でC3として参照することができます。セルに名前を付けるには、以下の手順に従います。
- C3を選択します。
- [数式]タブをクリックします。
- [定義された名前] グループで、[名前の定義] をクリックします。
- 表示されるダイアログで、セルに Holidays という名前を付けます (図 D )。
- [OK]をクリックします。
図D

「参照先」設定が「=TableHolidays[日付]」となっていることに注目してください。この名前付き範囲は「TableHolidays」というテーブル内にあります。休日を追加するとテーブルは自動的に更新されるため、NETWORKDAYS()関数内でこの参照を変更する必要はありません。
図Eに示すように、プロジェクト3の残り日数は以前より1日少なくなっています。レイバーデーの祝日があるため、8月7日から25営業日でプロジェクトを期限内に完了する必要があります。
図E

プロジェクト4は期限超過か完了のいずれかです。NETWORKDAYS() を作業に適用する際には、誤解を招く情報を避けるために、実際の完了日を含めることをお勧めします。現状ではプロジェクトは完了している可能性がありますが、デモシートにはそれが反映されていません。