Menu

Excelで日付に日数・月数・年数を足す: EDATEとEOMONTH

=A2+30はA2の30日後の日付を返します。月を足すには=EDATE(A2,3)、月末は=EOMONTH(A2,0)、年は1年を12か月としてEDATEを使います。

このページのシートはすべて実際に動きます。数値や数式を変えると再計算されます。

=A2+30は、A2の日付の30日後の日付を返します。Excelは日付を日数として保存しているので、数を足すとその日数だけ日付が進みます。長さが一定でない月を足すには、=EDATE(A2,3)を使います。3か月後の同じ日です。

請求日から30日後の支払期日
B2
ABCD
1Invoice dateDue (30 days)Due (90 days)Two weeks later
22026-03-102026-04-092026-06-082026-03-24
32026-03-252026-04-242026-06-232026-04-08
42026-04-022026-05-022026-07-012026-04-16
52026-12-152027-01-142027-03-152026-12-29
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

2026-03-10付けの請求書の支払期日は、30日なら2026-04-09、90日なら2026-06-08です。12月の請求書は何もしなくても2027年に入ります。過去に戻るには引き算をします。=A2-30は30日前です。週の場合は掛け算をします。=A2+7*2は2週間後です。

EDATEで月を足す

「1か月後」は決まった日数ではないので、+30ではずれていきます。2月1日からだと3月3日になります。EDATE(start_date, months)は日にちを保ったまま月を変えます。月数をマイナスにすると過去に戻ります。

サブスクリプションの更新日
C2
ABCD
1StartMonthsRenewsReminder
22026-01-1512026-02-152026-01-15
32026-02-0132026-05-012026-04-01
42026-03-20122027-03-202027-02-20
52026-11-0562027-05-052027-04-05
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

2026-03-20に始まる年間プランは2027-03-20に更新され、11月からの6か月プランは2027-05-05に更新されます。D列は各更新日の1か月前にリマインダーを出します。B列の月数を変えて、日付が動くのを見てください。

開始日の日が行き先の月にないとき、EDATEはその月の末日を使います。Excelの結果は次のとおりです:

=EDATE("2026-01-31", 1)    2026-02-28
=EDATE("2026-08-31", 1)    2026-09-30
=EDATE("2024-03-31", -1)   2024-02-29

日付に年を足す

1年は12か月なので、=EDATE(A2,12*B2)でB2年を足せます。保証、契約、記念日なら、これで同じ月日が保たれます。

保証の終了日
C2
ABCD
1BoughtYearsWarranty endsWith DATE
22026-03-1422028-03-142028-03-14
32025-07-0152030-07-012030-07-01
42026-11-2832029-11-282029-11-28
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

どちらの列も2028-03-14、2030-07-01、2029-11-28になります。違いが出るのは2月29日だけです。=DATE(2027,2,29)は2027-03-01に繰り越されますが、EDATEは2027-02-28を返します。

EOMONTHで月末日を求める

EOMONTH(start_date, months)は月の末日を返します。0なら同じ月、1なら翌月、-1なら前月です。月の1日は前月末の翌日なので、EOMONTH(A2,-1)+1です。

月末と月初
B2
ABCD
1DateEnd of monthEnd of next monthFirst of month
22026-02-102026-02-282026-03-312026-02-01
32024-02-102024-02-292024-03-312024-02-01
42026-12-312026-12-312027-01-312026-12-01
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

2026年2月は28日で、2024年2月は29日で終わります。2026-12-31からの翌月末は2027-01-31です。EOMONTHは「請求月の翌月末払い」の数式=EOMONTH(A2,1)になります。営業日ならWORKDAYを使います。=WORKDAY(A2,10)は週末を飛ばしてA2の10営業日後です(NETWORKDAYSとWORKDAYを参照)。

練習: 更新日と月末

やってみよう: 更新日
C2
ABC
1StartMonthsRenews
22026-03-106
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: C2に、A2の開始日からB2の月数だけ後の日付を返してください。

やってみよう: 月末
B2
AB
1DateMonth end
22026-04-14
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: B2に、A2の日付の月の末日を返してください。

よくある間違い: DATEとMONTH+1で月を足す

=DATE(YEAR(A2),MONTH(A2)+1,DAY(A2))のような数式は「1か月後」に見え、たいていは正しく動きます。ところが次の月にその日がないと、DATEは月末で止まらず、余った日数をその次の月に繰り越します。

DATEは繰り越し、EOMONTHは繰り越さない
B2
ABC
1DateMONTH+1 with DATEEnd of next month
22026-01-312026-03-032026-02-28
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

1月31日からだと、DATEの数式は2026-03-03を返します。「2月31日」は2月28日の3日後だからです。EDATEは2026-02-28を返し、欲しいのが月末なら、EOMONTHがそれを直接表します。DATEがあふれた月や日をどう扱うかについてはDATE関数で説明しています。

よくある質問

Excelで日付に日数を足すには?

数を足します。=A2+30はA2の日付の30日後、=A2-30は30日前です。Excelは日付を日数として保存しているので、ふつうの足し算で月や年をまたげます。

Excelで日付に月を足すには?

EDATEを使います。=EDATE(A2,3)は3か月後の同じ日を、=EDATE(A2,-3)は3か月前を返します。その日がないとき、EDATEはその月の末日を使います:=EDATE("2026-01-31",1)は2026-02-28です。

Excelで月末日を求めるには?

=EOMONTH(A2,0)はA2の月の末日を返します。=EOMONTH(A2,1)は翌月末、=EOMONTH(A2,-1)+1はA2の月の1日です。

Excelで日付に年を足すには?

=EDATE(A2,12*5)で5年を足します。=DATE(YEAR(A2)+5,MONTH(A2),DAY(A2))でもできますが、うるう年でない年では2月29日が3月1日になります。EDATEなら2月28日になります。

日数を足すと日付ではなく数値が表示されるのはなぜですか?

結果のセルの表示形式が標準か数値になっているので、日付が46126のようなシリアル値で表示されています。セルを選び、ホーム > 表示形式 > 短い日付形式を選んでください。

Coddyのプログラミング言語のイラスト

Coddyでコードを学ぼう

始める