DATE関数の基本的な使い方|年月日から日付を作る方法

年・月・日がそれぞれ別のセルに分かれているデータを、1つの日付として扱いたいことがあります。結論から言うと、DATE関数は=DATE(年,月,日)の3つの数値から、Excelが日付として認識できるシリアル値を組み立ててくれる関数です。この記事では基本の使い方と、月の値が12を超えたときの意外な挙動を解説します。

目次

DATE関数の基本構文

次のような年・月・日が分かれた表(A1:D4)を例に見ていきます。

A(年) B(月) C(日) D(日付)
2 2026 4 1
3 2026 12 31
4 2026 13 1

A列=年、B列=月、C列=日、D列=DATEで組み立てる日付、という対応を踏まえてD2に次の数式を入れます。

=DATE(A2,B2,C2)

A2(2026)・B2(4)・C2(1)から「2026/4/1」という日付が返ります。D3も同様に「2026/12/31」が返り、実際に検算しても一致します。

DATE関数で月が12を超えたときの繰り上がりと「〇ヶ月後」の求め方

表の4行目(A4:C4)は、B列(月)に13を指定した例です。DATE関数は月の値が12を超えると、超えた分だけ年をまたいで繰り上げて解釈します。

=DATE(2026,13,1)

この数式は「2027/1/1」を返します。エラーにはならず、13ヶ月目=翌年の1ヶ月目として自動的に計算されるためです。この性質を逆手に取ると、「〇ヶ月後の日付」を求める計算に応用できます(例:=DATE(A2,B2+3,C2)でA2・B2・C2の3ヶ月後の日付を求める。2026/4/1の3ヶ月後なので2026/7/1)。

DATE関数のよくある注意点

  • 月末日を求めたいときはEOMONTHの方が簡単: 「その月の最終日」を求めたい場合、DATE関数で計算するより締め日を設定 EOMONTH関数の機能と使い方|エクセルで紹介しているEOMONTH関数を使うほうが簡潔に書けます。
  • 月末日に「+1ヶ月」するとずれることがある: =DATE(2026,1+1,31)は存在しない「2026年2月31日」を指定したことになり、日の超過分も繰り上がって「2026/3/3」を返します。月末を基準に〇ヶ月後を求めたいときもEOMONTH関数が安全です。
  • 「4月」「1日」のような単位付きの文字が入っていると#VALUE!エラーになる: 年・月・日のセルに数字以外の文字が混ざっていると、DATE関数は数値として解釈できず#VALUE!エラーを返します(対処法は#VALUE!エラーの原因と直し方参照)。年・月・日のセルには「4」のように数字だけを入力しておきましょう。
  • 日をまたぐ集計にはSUMIFやCOUNTIFSとの組み合わせが便利: DATE関数で作った日付は、期間を指定した集計の条件としてそのまま使えます(例: SUMIFで日付範囲を指定して集計する方法)。条件を複数付けて集計したい場合は、サイトの人気記事エクセルのsumifs関数でOR条件の集計をする方法もあわせて参考にしてください。

DATE関数が登場する記事

DATE関数の使い方まとめ

DATE関数は=DATE(年,月,日)の3引数で日付を組み立てる関数です。月に13以上の値を入れるとエラーにならず年をまたいで繰り上がる性質を利用すれば、「nヶ月後の日付」も簡単に求められます。月末日だけを求めたい場合はEOMONTH関数の方が簡潔です。

目次