エクセル関数辞典 エクセル関数辞典

DATE関数の使い方|年月日から日付を作成する

DATE 日付 月末日 期日計算 Excel関数
広告スペース (article-top)

DATE関数は、年・月・日の3つの数値を指定して日付データ(シリアル値)を作成するExcelの基本関数です。文字列から日付を組み立てたり、月末日や期日を動的に計算したりする場面で活躍します。日付関連の数式を組む際の土台となる関数です。

DATE関数の基本構文

=DATE(年, 月, 日)

引数の説明

引数説明必須/任意
日付の年を数値で指定(1900~9999)必須
日付の月を数値で指定(1~12)必須
日付の日を数値で指定(1~31)必須

基本的な動作

=DATE(2026, 4, 1)    ' 結果:2026/04/01
=DATE(2026, 12, 25)  ' 結果:2026/12/25

DATE関数はシリアル値を返します。セルの表示形式が「標準」の場合は数値で表示されるため、書式設定で「日付」を選択してください。

月や日の繰り上がり・繰り下がり

DATE関数の大きな特徴は、月や日に範囲外の数値を指定しても自動的に繰り上がり・繰り下がりが行われる点です。

月が13以上の場合

=DATE(2026, 13, 1)   ' 結果:2027/01/01(翌年1月に繰り上がり)
=DATE(2026, 15, 1)   ' 結果:2027/03/01(翌年3月に繰り上がり)

月が0や負の値の場合

=DATE(2026, 0, 1)    ' 結果:2025/12/01(前年12月に繰り下がり)
=DATE(2026, -1, 1)   ' 結果:2025/11/01(前年11月に繰り下がり)

日が0の場合

=DATE(2026, 4, 0)    ' 結果:2026/03/31(前月の末日)
=DATE(2026, 3, 0)    ' 結果:2026/02/28(2月の末日)

この「日に0を指定すると前月の末日になる」という性質は、月末日の計算で非常に便利です。

日が月の最大日数を超える場合

=DATE(2026, 2, 30)   ' 結果:2026/03/02(2月は28日なので3月に繰り上がり)
=DATE(2026, 1, 32)   ' 結果:2026/02/01(1月は31日なので2月に繰り上がり)

実践例1:月末日を求める

任意の日付が属する月の末日を求める方法です。DATE関数の「日に0を指定」する性質を利用します。

当月の末日

A2に日付が入っている場合、その月の末日を求めます。

=DATE(YEAR(A2), MONTH(A2)+1, 0)

MONTH(A2)+1で翌月を指定し、日に0を指定することで当月の末日が返ります。

サンプル結果

A列(日付)数式の結果
2026/01/152026/01/31
2026/02/102026/02/28
2026/04/222026/04/30
2024/02/052024/02/29(うるう年)

うるう年の2月も正しく29日が返されます。

翌月の末日

=DATE(YEAR(A2), MONTH(A2)+2, 0)

前月の末日

=DATE(YEAR(A2), MONTH(A2), 0)

実践例2:月初日を求める

月末日と対になる月初日の計算です。

当月の1日

=DATE(YEAR(A2), MONTH(A2), 1)

翌月の1日

=DATE(YEAR(A2), MONTH(A2)+1, 1)

月初日と月末日のペア

月次レポートの集計期間を自動設定する場合に便利です。

項目数式2026/04/15の場合
当月初日=DATE(YEAR(A2),MONTH(A2),1)2026/04/01
当月末日=DATE(YEAR(A2),MONTH(A2)+1,0)2026/04/30
翌月初日=DATE(YEAR(A2),MONTH(A2)+1,1)2026/05/01
翌月末日=DATE(YEAR(A2),MONTH(A2)+2,0)2026/05/31

実践例3:支払期日の計算

請求書の発行日から支払期日を計算する例です。「月末締め翌月末払い」のようなルールに対応します。

月末締め翌月末払い

=DATE(YEAR(A2), MONTH(A2)+2, 0)

A2が「2026/04/15」(4月中の請求)なら、4月末締めの翌月末(5月31日)が期日です。MONTH+2で6月を指定し、日に0を入れると5月末日が返ります。

月末締め翌々月10日払い

=DATE(YEAR(A2), MONTH(A2)+2, 10)

A2が「2026/04/15」なら2026/06/10が返ります。

20日締め翌月末払い

締め日が月末でない場合は、条件分岐を加えます。

=IF(DAY(A2)<=20, DATE(YEAR(A2), MONTH(A2)+1, 0), DATE(YEAR(A2), MONTH(A2)+2, 0))

20日以前の取引は当月20日で締め、翌月末が期日です。21日以降の取引は翌月20日で締め、翌々月末が期日です。

サンプルデータでの確認

取引日月末締め翌月末20日締め翌月末
2026/04/052026/05/312026/05/31
2026/04/222026/05/312026/06/30
2026/05/102026/06/302026/06/30
2026/05/252026/06/302026/07/31

実践例4:年月の数値から日付を組み立てる

データベースや外部システムからインポートしたデータで、年と月が別々の列に入っている場合に日付を作成します。

年と月が別セルにある場合

A列(年)B列(月)C列(数式)結果
20264=DATE(A2,B2,1)2026/04/01
20265=DATE(A3,B3,1)2026/05/01

文字列の日付を変換する

「20260401」のような8桁の文字列を日付に変換する場合です。

=DATE(LEFT(A2,4)*1, MID(A2,5,2)*1, RIGHT(A2,2)*1)

LEFT関数で年(先頭4桁)、MID関数で月(5~6桁目)、RIGHT関数で日(末尾2桁)を取り出し、DATE関数で日付を組み立てます。

「YYYY/MM」形式から月初日を作成

年月のみの文字列から日付を作る場合です。

=DATE(LEFT(A2,4)*1, RIGHT(A2,2)*1, 1)

A2が「2026/04」なら、2026/04/01が返ります。

実践例5:nヶ月後・nヶ月前の同日を求める

DATE関数の月の繰り上がりを利用して、指定月数後の日付を計算します。

=DATE(YEAR(A2), MONTH(A2)+3, DAY(A2))

A2の3ヶ月後の同日が返ります。ただし、元の日付が31日で3ヶ月後の月に31日が存在しない場合は翌月に繰り上がります(例:1/31の3ヶ月後は5/1になる)。

繰り上がりを防ぐ(月末日に揃える)

繰り上がりを防いで月末日に合わせたい場合は、EOMONTH関数の利用も検討してください。または次のようにMIN関数で制御します。

=DATE(YEAR(A2), MONTH(A2)+3, MIN(DAY(A2), DAY(DATE(YEAR(A2), MONTH(A2)+4, 0))))

この数式は、3ヶ月後の月の末日とDAY(A2)のうち小さい方を日に指定することで、存在しない日付への繰り上がりを防ぎます。

よくあるエラーと対処法

#VALUE!エラー

引数に数値として解釈できない値を指定した場合に発生します。

' エラーになる例
=DATE("二千二十六", 4, 1)

引数は必ず数値で指定してください。

日付が数値で表示される

DATE関数の結果はシリアル値です。セルの書式が「標準」や「数値」の場合は5桁の数字で表示されます。セルの書式設定で表示形式を「日付」に変更してください。

年に2桁の値を指定した場合

年に0~29を指定すると2000年代、30~99を指定すると1900年代として解釈されます。

=DATE(26, 4, 1)    ' 結果:2026/04/01
=DATE(99, 4, 1)    ' 結果:1999/04/01

混乱を防ぐために、年は4桁で指定することをおすすめします。

EOMONTH関数との使い分け

月末日を求める方法として、DATE関数以外にEOMONTH関数もあります。

方法数式特徴
DATE関数=DATE(YEAR(A2),MONTH(A2)+1,0)月初日の計算にも応用できる
EOMONTH関数=EOMONTH(A2,0)月末日の計算に特化、簡潔

月末日だけならEOMONTH関数のほうが簡潔です。月初日と月末日の両方を求める場合や、日付の組み立て全般にはDATE関数が適しています。

Google スプレッドシートでの互換性

DATE関数はGoogle スプレッドシートでも同じ構文・同じ動作で利用可能です。月や日の繰り上がり・繰り下がりの挙動も同一です。

まとめ

DATE関数は年・月・日の数値から日付を作成する基本関数です。

  • 年・月・日を数値で指定して日付のシリアル値を返す
  • 月や日に範囲外の数値を指定すると自動的に繰り上がり・繰り下がりが行われる
  • 日に0を指定すると前月の末日が求められる
  • 支払期日や締め日の計算に活用できる
  • 文字列の日付データを変換する際にも便利

月末日の算出、期日の計算、外部データからの日付変換など、DATE関数は日付処理の幅広い場面で活躍します。繰り上がり・繰り下がりの仕組みを理解して、実務の日付計算に活かしましょう。

広告スペース (article-bottom)

あわせて読みたい