Excel:よく使う日付計算の数式について

Excelのよく使う日付計算についてまとめました。

最初によく使う日付計算の数式の例を一覧で紹介して、そのあとにそれぞれの日付の計算方法について詳細を見ていきます。

よく使う日付計算の数式の一覧

よく使う日付計算の数式の一覧
基準日2022/03/05
求める日数式結果
1日前=C2-12022/03/04
1日後=C2+12022/03/06
1週間前=C2-72022/02/26
1週間後=C2+72022/03/12
1ヵ月前=EDATE(C2,-1)2022/02/05
1ヵ月後=EDATE(C2,1)2022/04/05
1年前=EDATE(C2,-12)2021/03/05
1年後=EDATE(C2,12)2023/03/05
週の初日(月曜)=C2-WEEKDAY(C2,3)2022/02/28
週の末日(日曜)=C2+(6-WEEKDAY(C2,3))2022/03/06
月の初日=EOMONTH(C2,-1)+12022/03/01
月の末日=EOMONTH(C2,0)2022/03/31

日付計算の数式の結果は日付のシリアル値が返されるのでセルの書式設定は日付形式にします。この一覧では結果の列の書式を「yyyy/mm/dd」としています。

それぞれの数式についての説明

それではそれぞれの日付の計算の数式の詳細を見ていきます。

N日前、N日後を求める数式

N日前の日付は対象の日付から求めたい日付までの日数を引くことで求められます。

=対象日付-N

N日後の日付は対象の日付に求めたい日付までの日数を足すことで求められます。

=対象日付+N

N週間前、N週間後を求める数式

1週間前の日付を求めたい場合、対象の日付から1週間の日数の7を引いた日付を求めます。

=対象日付-7

N週間前の日付を求めたい場合は7×N日前の日付を求めます。

=対象日付-7*N

N週間後の日付を求めたい場合は7×N日後の日付を求めます。

=対象日付+7*N

Nヵ月前、Nヵ月後を求める数式

Nヵ月前、Nヵ月後の日付はEDATE関数を使用することで簡単に求めることができます。

EDATE関数は対象の日付のNヵ月前やNヵ月後を求めることができる関数です。

EDATE(基準日,月数)
引数説明
基準日求める日付の基準となる対象の日付を指定します。
月数基準日からの月数を指定します。Nヵ月前を求めたい場合はマイナスの月数を指定します。

1ヵ月前の日付を求めたい場合はEDATE関数の月数に-1を指定します。

=EDATE(対象日付, -1)

1ヵ月後の日付を求めたい場合はEDATE関数の月数に1を指定します。

=EDATE(対象日付, 1)

N年前、N年後を求める数式

N年前、N年後の日付もEDATE関数を使用することで簡単に求めることができます。

1年前の日付を求める場合はEDATE関数の月数に1年前となる月数の-12を指定します。

=EDATE(対象日付, -12)

N年前の日付を求めたい場合はEDATE関数の月数に-12×Nを指定します。

=EDATE(対象日付, -12*N)

N年後の日付を求めたい場合はEDATE関数の月数に12×Nを指定します。

=EDATE(対象日付, 12*N)

週の初日、週の末日を求める数式

週の初日は対象の日付からその週の初日から対象の日付までの日数を引くことで求めることができます。

また週の末日は対象の日付にその週の末日からの日数を足すことで求めることができます。

対象の日付とその週の初日や末日との日数を求めるには対象の日付が週の何番目の日付かを求めることができるWEEKDAY関数を利用します。

WEEKDAY関数は基準日の曜日の番号を返します。

WEEKDAY(基準日,[週の基準])
引数説明
基準日曜日を求める基準日となる対象の日付を指定します。
週の基準週の基準(週の初日をどの曜日にするか、週の番号が0始まりか、1始まりか)を設定できます。省略可能です。

週の基準に指定する値とWEEKDAY関数から返される曜日の番号の対応は以下になります。

週の基準に指定する値の参考
週の基準説明
11 (日曜) ~ 7 (土曜) の範囲の整数2345671
21 (月曜) ~ 7 (日曜) の範囲の整数1234567
30 (月曜) 〜 6 (日曜) の範囲の整数0123456
111 (月曜) ~ 7 (日曜) の範囲の整数1234567
121 (火曜) ~ 7 (月曜) の範囲の整数7123456
131 (水曜) ~ 7 (火曜) の範囲の整数6712345
141 (木曜) ~ 7 (水曜) の範囲の整数5671234
151 (金曜) ~ 7 (木曜) の範囲の整数4567123
161 (土曜) ~ 7 (金曜) の範囲の整数3456712
171 (日曜) ~ 7 (土曜) の範囲の整数2345671

週の基準の指定を省略した場合は「1」の「1 (日曜) ~ 7 (土曜) の範囲の整数」を指定した時と同じ結果になります。

週の初日(月曜)を求める場合、WEEKDAY関数の週の基準の3を利用します。

この場合の曜日の番号は月曜日が0番目、火曜日が1番目、… と続き日曜日が6番目となり、その週の月曜日からの日数と等しくなります。

つまり、その週の月曜日は対象の日付から、週の基準に3を指定した曜日の番号を引くことで求まります。

=対象日付-WEEKDAY(対象日付,3)

月曜日から日曜日までの計算結果は以下になります。

月曜日から日曜日までの計算結果(週の初日)
対象日付WEEKDAY(対象日付, 3)対象日付 - WEEKDAY(対象日付, 3)
2022/03/07 (月)02022/03/07 (月)
2022/03/08 (火)12022/03/07 (月)
2022/03/09 (水)22022/03/07 (月)
2022/03/10 (木)32022/03/07 (月)
2022/03/11 (金)42022/03/07 (月)
2022/03/12 (土)52022/03/07 (月)
2022/03/13 (日)62022/03/07 (月)

週の末日(日曜)を求める場合は以下になります。

=対象日付+(6-WEEKDAY(対象日付,3))

対象の日付にその週の日曜日からの日数を足すことで求められます。

その週の日曜日からの日数は6-WEEKDAY(対象日付, 3)で求めることができます。

月曜日から日曜日までの計算結果(週の末日)
対象日付6-WEEKDAY(対象日付, 3)対象日付 + (6-WEEKDAY(対象日付, 3))
2022/03/07 (月)62022/03/13 (日)
2022/03/08 (火)52022/03/13 (日)
2022/03/09 (水)42022/03/13 (日)
2022/03/10 (木)32022/03/13 (日)
2022/03/11 (金)22022/03/13 (日)
2022/03/12 (土)12022/03/13 (日)
2022/03/13 (日)02022/03/13 (日)

月の初日、月の末日を求める数式

月の初日や末日の日付はEOMONTH関数を使用すると簡単に求めることができます。

EOMONTH関数は月末の日付を求めることができる関数です。

EOMONTH(基準日,月数)
引数説明
基準日求める日付の基準となる対象の日付を指定します。
月数基準日からの月数を指定します。Nヵ月前の月末の日付を求めたい場合はマイナスの月数を指定します。

月の初日を求める場合は対象の日付の前の月の月末の次の日付を求めます。

=EOMONTH(対象日付,-1)+1

月の末日を求める場合、対象の日付の月の月末を求めます。

=EOMONTH(対象日付,0)

まとめ

エクセルには日付を計算する便利な関数がいくつも用意されているので日付計算の数式を簡潔に記述することができます。