「この日から今日までどれくらい日数が経ったのだろう」
エクセルで勤怠や販売など日付を管理している方も多いと思います。
でも日付や日数の計算は、普通の数値と違い一筋縄ではいきません。
ここではエクセルでの日付の計算方法を解説しています。
指定日に足し算や引き算をして日付を出す方法や土日を除いた稼働日のみの日数を計算する方法など、知っていれば必ず役立つ計算をまとめました!
覚えてしまえば絶対に使える知識です。
この記事を読んで、ぜひエクセルでの日付の計算を習得してください!
1.エクセルで日数計算をしよう
納期であったり、勤怠管理であったり、様々な仕事で日付や日数の管理は必須ですよね。
エクセルではそんな日付に関する計算も効率よくできるよう様々な関数が用意されています。
ここでは2パターンの日付の計算について、その計算方法を紹介します。
2パターンとは、2つの日付を使用する「開始日と終了日の間の日数を求める方法」と、ある時点から任意の数値を加減する「指定日に日数を足し算・引き算して日付を求める方法」です。
前者では2つの日付の間の期間の日数を求め、後者では計算した日付を求めます。
仕事をしていると、どちらのパターンも必要になることがあるでしょう。
それぞれ使う関数が違うため、うまく使い分けてください。
2.開始日と終了日の間の日数を求める方法
まずは2つの日付の間の日数を求める計算をしましょう。
2つの日付には必ず古い日付と新しい日付があります。ここでは古い日付を「開始日」、新しい日付を「終了日」としています。
たくさんの関数が出てきますが、使い方はそれほど変わりません。
便利な関数ばかりですので、ぜひ覚えて使ってくださいね。
2-1.単純に期間の日数を求めたい場合
1月1日から1月7日までの日数は開始日を含むなら6日、含まないなら7日ですね。
これくらいなら見て分かりますが、日付の間隔がもっと離れたときはすぐには分かりません。
1月1日から1月7日までの日数を求めたいときの計算方法は3パターンあります。
特徴を掴んで使いやすい方法を使用してください。
2-1-1.DATEDIF関数で求める
DATEDIF関数は2つの日付の間の日数を返します。
以下のように書きます。
「開始日」と「終了日」には日付が入ります。
セル番号やTODAY関数などで日付を指定するか、べた書きの場合は「”2019/1/1”」のようにダブルクオーテーションで日付を挟んでください。
最後の「”D”」は年月日の「日」のことで、ここには年月日いずれかのパラメータを指定します。
年の場合は「”Y”」、月の場合は「”M”」を指定すると、開始日から終了日までの年数や月数が返ります。
以下の表に例をまとめましたのでご覧ください。指定するパラメータにより結果が異なることが分かります。
注意点は以下の通りです。
- 開始日を含まない。含ませる場合は式の後に「+1」する。
- エクセルの関数予測候補として表示されない。
2-1-2.DAYS関数で求める
DAYS関数では2つの日付の間の日数を単純に返します。
以下のように書きます。
DATEDIF関数と同様「開始日」と「終了日」には日付が入ります。
セル番号やTODAY関数などで日付を指定するか、べた書きの場合は「”2019/1/1”」のようにダブルクオーテーションで日付を挟んでください。
DATEDIF関数よりも簡単なため覚えやすいですが、こちらは年月の計算はできません。
注意点は以下の通りです。
- 開始日を含まない。含ませる場合は式の後に「+1」する。
- 引数は終了日が先にくる。
2-1-3.関数を使わず引き算して求める
DATEDIF関数とDAYS関数はどちらも便利ですが、関数にこだわらない場合はもっと簡単に式を作れます。
ただの引き算のため一番簡単ですよね。
DAYS関数と同じく年月の計算はできませんが、ただ日数だけならばこれでもよいでしょう。
注意点は以下の通りです。
- 開始日を含まない。含ませる場合は式の後に「+1」する。
2-2.稼働日のみの日数を求めたい場合
勤怠管理など出勤しない曜日は計算に含みたくないときがありますよね。
そんなときのためにエクセルでは、NETWORKDAYS関数が用意されています。
稼働日のみ、営業日のみなど様々な応用ができるため、この関数も知っているとすごく便利ですよ。
2-2-1.NETWORKDAYS関数で求める
NETWORKDAYS関数は2つの日付の間の稼働日(土日、祭日以外)の日数を返します。
以下のように書きます。
開始日、終了日および祭日はすべて日付です。
この関数はもともと土日を除く計算を行います。さらに最後の祭日にいれた日付も除いて計算します。
たとえば1月1日から1月7日に土日は必ず含まれますね?
すると結果は「5」となります。
元旦の1月1日を祭日にいれる場合、「=NETWORKDAYS(“2019/1/1”, “2019/1/7”, “2019/1/1”)」のように書きます。
すると結果は1月1日を土日に加えて除き、「4」を返します。
以下の表を見てみましょう。
祭日を複数設定したい場合は、最後の行のようにリスト化して指定すれば可能です。
注意点は以下の通りです。
- 開始日を含んだ日数を返す。
- 土日は計算から外される。
- 祭日は省略可能。
2-2-2.NETWORKDAYS.INTL関数で求める
土日が休みでない仕事の場合、NETWORKDAYS関数は使えません。
その場合は、NETWORKDAYS.INTL関数を使用すれば問題は解決します。
この関数は休みの曜日を指定することができます。
たとえば水曜日休み、木金休みなど土日以外の曜日を休みとして計算することができます。
以下のように書きます。
開始日、終了日は日付で、休日はNETWORKDAYS関数の祭日と同じく祝日などイレギュラーな休みを指定します。
この関数のポイントは「週末」です。
週末には1~17のパラメータを指定し、このパラメータによって休みの曜日を変更することができます。
パラメータとそのパラメータによって日数計算から覗かれる曜日は以下の表をご覧ください。
残念なこと隔週や離れた曜日を設定することができません。
パラメータ以外の組み合わせを休みにしたい場合は、日付のリストを作成して休日に指定することで実現できます。
週末を省略し休日を設定する場合は、最後の行のように週末のパラメータは空白で指定します。
注意点は以下の通りです。
- 開始日を含んだ日数を返す。
- 週末パラメータの規定値は土日のため、省略しても土日は除かれる。
- 週末、休日は省略可能。
3.指定日に日数を足し算・引き算して日付を求める方法
次に指定日に任意の数値を足し算または引き算した日付を求めましょう。
指定日から何日後や何か月後など未来に日付、何日前や何か月前など過去の日付を知ることが目的です。
関数を使わずに計算する方法と関数を使った計算方法があります。
計算したい単位・数値によりどちらを使用するかを判断しましょう。
3-1.関数を使わず足し算・引き算して求める
まず「日」の場合、日付を入力したセルに数値をそのまま足し算します。
=元の日付-n
たとえばA1に日付を入力しているなら、「=A1+3」でA1の日付の3日後になります。
引き算の場合も同じで、「=A1-3」でA1の日付の3日前になります。
でもこの計算では日数しか足し算・引き算できなくて、3か月後など計算しづらいですよね。
90日と3か月では日数が違ってくるため、3か月後の日付が欲しい場合、元の日付の月に3を足したいと思うはずです。
3-2.DATE/YEAR/MONTH/DAY関数で求める
では次に、日だけでなく、年や月の計算をしましょう。
この式を覚えておくと、年月日どの単位も扱えます。
式は以下のように書きます。
年に足し算したい場合は「YEAR(元の日付)+n」、月の場合は「MONTH(元の日付)+n」、日の場合は「DAY(元の日付)+n」とすれば、計算したい単位だけ足し算や引き算をします。
以下の表をご覧ください。
元の日付に数値を足し算・引き算して日付を表示しています。
日の場合は単純に元の日付に数値を計算している式と、関数を使用して計算している式を載せています。
ただし、ただ関数を使えばよいわけではありません。
たとえば元の日付に「1年4か月20日」足したい場合は関数を使った方がよいでしょうし、元の日付に「505日」足したい場合は関数を使わずに計算する方がよいでしょう。
このように計算したい単位によって、関数を使った方がよいか、使わない方がよいか使い分けることが大切です。
4.まとめ
場合によっては、日数計算は厄介で難しいかもしれません。
日数計算でつまずかないためには、複雑な式にしないことです。
大きな計算も小さく区切って計算するようにすれば、ミスも少なく、また次に見る人も分かりやすいでしょう。
その点も含めて、正しい計算式を作成し、求めたい日数や日付を出してくださいね。
コメント