DATE関数は、Excelで日付を扱う際にとても便利な基本関数のひとつです。初心者でも使いやすく、業務効率化にも役立ちます。
DATE関数とは?
概要
DATE関数は「年・月・日」を指定して、正しい日付データを作成する関数です。
書式
=DATE(年, 月, 日)
例
=DATE(2025, 9, 28)
→ 結果:2025/09/28
- 他の関数と組み合わせることで、動的な日付生成が可能
- 年・月・日を数値で指定して、正しい日付形式に変換してくれる
Excelはこの日付を「シリアル値」として認識するため、日付の計算や並び替え、関数との連携が可能になります。
Excelにおける「シリアル値」とは?
シリアル値(Serial Value)とは、Excelが日付や時刻を内部的に管理するために使っている「連番の数値」のことです。
Excelは日付を見た目では「2025/09/28」などと表示しますが、実際には1900年1月1日を「1」として数えた通し番号で記録しています。
Excelの日付は「見た目」ではなく「数字」で管理されている。
そしてその数字は、1900年1月1日からの『通し番号』。
具体例で理解するシリアル値
表示される日付(表示形式日付) | 実際のシリアル値(表示形式標準) |
---|---|
1900/01/01 | 1 |
1900/01/02 | 2 |
2025/09/28 | 45928 |
つまり、2025年9月28日は「45928番目の日」ということになります。
シリアル値に関するちょっとした小話
実はExcelで日付を扱うとき、裏側では「シリアル値」という連番で管理されています。
たとえば「2025/9/28」は、Excelの世界では「45928番目の日」なんです。
しかも、Excelは「1900年1月1日」を「1」としてカウントしているのですが、実は存在しない1900年2月29日を『うるう年』として数えてしまっているというちょっとしたバグがあります。
そのため、シリアル値で日付を計算すると、1日ズレることがあるんです。
Excelの内部仕様
- Excelは「1900年がうるう年」と誤認しており、1900年2月29日を存在する日としてカウントしています。
- 実際のカレンダーには存在しないため、シリアル値が1日分多く進んでしまうのです。
- このズレはExcelの仕様によるもので、間違いではなく『仕様通り』の動作です
- 実務では「DATE関数」や「TODAY関数」を使えば正確な日付が得られるので、直接シリアル値を足し引きする場面では注意が必要です
時刻もシリアル値の一部
Excelでは「1日=1.0」として扱うため、時刻は小数点で表現されます。
表示される時刻 | シリアル値 |
---|---|
12:00(正午) | 0.5 |
6:00(朝) | 0.25 |
18:00(夕方) | 0.75 |
たとえば「2025/09/28 12:00」は、44910.5というシリアル値になります。
シリアル値の便利な使い方
- 日付の差分計算:
=A2 - A1
で「何日間か」を計算できる - 並び替え・フィルター:日付を数値として扱えるので処理が高速
- 関数との連携:
TODAY()
やNOW()
などもシリアル値で動作
初心者向けアドバイス
- セルの表示形式を「標準」にすると、日付がシリアル値として表示されます(驚くかも!)
- 日付を扱う関数(
DATE
,TODAY
,EOMONTH
など)は、すべてシリアル値をベースに動いています - シリアル値を理解すると、日付の自動化・計算・並び替えがスムーズになります
使い方
DATE関数の基本的な使い方
=DATE(2025, 10, 5)
→ 結果:2025/10/05
他の関数と組み合わせることで、動的な日付生成が可能
年・月・日を数値で指定して、正しい日付形式に変換してくれる
実務で便利な使い方
年・月・日を別セルから合成
=DATE(A1, B1, C1)
→ A1=2025, B1=10, C1=5 → 2025/10/05
年度の開始日・終了日を自動化
具体例(2025年9月28日時点)
=DATE(YEAR(TODAY())-1, 4, 1)
→ 前年度の開始日(例:2024/04/01)
=DATE(YEAR(TODAY()), 3, 31)
→ 当年度の終了日(例:2025/03/31)
TODAY関数と組み合わせることで、動的な年度管理が可能になります。
TODAY関数は、引数なしで使えるシンプルな関数です。詳しくは「単機能型関数まとめ」の記事で解説していますので、そちらもぜひチェックしてみてください。
意外な使い方・裏技的テクニック
月を12以上にすると翌年に繰り越す
=DATE(2025, 13, 1)
→ 結果:2026/01/01
日を0にすると前月末になる
=DATE(2025, 10, 0)
→ 結果:2025/09/30
月を0にすると前年の12月になる
=DATE(2025, 0, 15)
→ 結果:2024/12/15
これらは「DATE関数が内部で日付の繰り上げ・繰り下げを自動調整してくれる」仕様を活かしたテクニックです!
注意点
- 月や日が「13」や「32」などでも、Excelは自動で補正します(例:DATE(2025,13,1) → 2026年1月1日)
- 文字列として入力した日付(例:"2025/09/28")とは違い、DATE関数で作った日付は計算に強い
DATE()
の結果は「シリアル値」(例:45200)として扱われるため、数値計算や比較が可能- ただし、表示形式が日付になっていないと誤解されやすい
- 引数に文字列が入るとエラーになる
- =DATE("2025", "10", "5") → OK(文字列でも数字として認識される場合あり)
- =DATE("年", "月", "日") → エラー(数値でないとNG)
- うるう年の判定に注意
- =DATE(2024,2,29) → OK(うるう年)
- =DATE(2025,2,29) → 自動補正 → 2025/03/01
- うるう年かどうかで結果が変わるので、年度末処理などでは要確認!
DATE関数は、Excelでカレンダーを作るときにとても便利です。
実際にExcelで「タイムラインカレンダー」を作成しながら、基本操作を学んでみましょう