はじめに
Excelで日付を扱うとき、「年・月・日」を個別に取り出したい場面は多くあります。たとえば、売上データから月別集計をしたり、誕生日から年齢を計算したり。そんなときに便利なのが YEAR
、MONTH
、DAY
関数です。
基本構文と役割
関数 | 役割 | 例 | 結果 |
---|---|---|---|
YEAR(date) | 年を取り出す | =YEAR("2025/10/12") | 2025 |
MONTH(date) | 月を取り出す | =MONTH("2025/10/12") | 10 |
DAY(date) | 日を取り出す | =DAY("2025/10/12") | 12 |
date:日付形式の値(セル参照や "YYYY/MM/DD"
形式)
B2セルには、C2セルに表示されている =YEAR(A1)
の結果が使われており、A1セルの日付から「年」の部分を取り出しています。
同様に、B3セルには =MONTH(A1)
、B4セルには =DAY(A1)
を使って、A1の日付からそれぞれ「月」と「日」の部分を抽出しています。
このように YEAR
・MONTH
・DAY
関数を使えば、1つの日付から年・月・日を個別に取り出すことができ、集計や条件分岐に役立ちます。

よくある活用例
① 年齢を計算する
=YEAR(TODAY()) - YEAR(A1)
A2に誕生日が入っている場合、今年の年から生まれ年を引いて年齢を算出。
この式がしていること
=YEAR(TODAY()) - YEAR(A1)
は、A1セルに入力された日付の「年」と、今日の「年」との差を計算しています。
具体例で見てみましょう(例)
A1セルの値 | TODAY()の結果(例) | YEAR(TODAY()) | YEAR(A1) | 計算結果 |
---|---|---|---|---|
2000/10/12 | 2025/10/12 | 2025 | 2000 | 25 |
この場合、「2025年 − 2000年 = 25」 なので、25という結果になります。
よくある用途
- 年齢の計算(ただし誕生日がまだ来ていない場合は1歳多くなるので注意)
- 勤続年数のざっくり計算
- 経過年数の目安を出すとき
注意点
この式は「年の差」だけを見ているため、誕生日がまだ来ていない場合でも1年加算されてしまうことがあります。
正確な年齢を求めたい場合は、DATEDIF
関数を使うのがおすすめです👇
=DATEDIF(A1, TODAY(), "Y")
この式は、A1の日付から今日までに何年経ったかを「満年数」で返します。
これなら、誕生日が来ていない場合は年齢を繰り下げてくれるので、より正確です。
「関数ってなんだか難しそう…」そんなあなたにこそ読んでほしい、最初に覚えると便利な『単機能関数』まとめ記事はこちら👇。
② 月別売上を抽出する
=MONTH(A1)
A1に売上日が入っている場合、月だけを取り出してピボットテーブルやフィルターに活用。
この式 =MONTH(A1)
は、A1セルに入力された日付から「月」の部分だけを取り出す関数です
分解してみよう
部分 | 意味 |
---|---|
A1 | 日付が入力されているセル |
MONTH() | その日付の「月」だけを数値で返す関数(1〜12) |
具体例
A1セルの値 | 結果 |
---|---|
2025/10/12 | 10 |
2023/04/25 | 4 |
よく使われる場面
- 月別の売上や出勤日数の集計
- 月ごとのフィルターや条件付き書式
- 月初・月末の計算(
DATE
関数と組み合わせ)
③ 日付から「月初」「月末」を作る
月初
=DATE(YEAR(A1), MONTH(A1), 1)
この式 =DATE(YEAR(A1), MONTH(A1), 1)
は、A1セルの日付から「その月の1日」を作るための関数です
分解してみよう
部分 | 意味 |
---|---|
YEAR(A1) | A1の日付から「年」を取り出す |
MONTH(A1) | A1の日付から「月」を取り出す |
1 | 日付の「1日」を指定 |
この3つを DATE
関数で組み合わせることで、A1セルと同じ年月の「月初日(1日)」を作成できます。
具体例
A1セルの値 | 式の結果 |
---|---|
2025/10/12 | 2025/10/01 |
2023/04/25 | 2023/04/01 |
く使われる場面
- 月別集計で「月初日」を基準にする
- 月初からの経過日数を計算する
- 月初を起点に条件付き書式やフィルターを設定する
月末
=EOMONTH(A1, 0)
月末を求めるには?
逆に、月末を求めたい場合は =EOMONTH(A1, 0)
が有効です。
この関数は、A1セルの日付が属する月の「月末日」を返すものです。
EOMONTH
は「End Of MONTH」の略。- 第1引数:基準となる日付(例:
A1
) - 第2引数:何か月後の月末を求めるか(
0
なら同じ月)
具体例
A1セルの値 | 式 | 結果 |
---|---|---|
2025/10/12 | =EOMONTH(A1, 0) | 2025/10/31 |
2025/02/05 | =EOMONTH(A1, 0) | 2025/02/28 (うるう年でない) |
よく使われる場面
- 月末締めの処理や集計
- 月末までの残日数計算
- 月初〜月末の範囲抽出(
DATE(YEAR(A1), MONTH(A1), 1)
と組み合わせ)
他にも、DATE関数とMONTH関数を組み合わせることで、指定した日付の「月末日」を求めることができます。
=DATE(YEAR(A1), MONTH(A1)+1, 1)-1
- 翌月の1日から1日引くことで、今月の月末を求める
EOMONTH
が使えない環境(古いExcelなど)でも有効
応用テクニック
日付を再構成する
=DATE(YEAR(A1), MONTH(A1), DAY(A1))
分解した日付を再び組み立てることで、日付の整形や補正が可能。
「日付って、組み立てられるんだ!」と驚いたあなたに👇
曜日と組み合わせる
=TEXT(A2,"yyyy年m月d日") & "(" & TEXT(A2,"aaa") & ")"
YEAR
・MONTH
・DAY
で分解する代わりに、TEXT
関数で表示形式を整える方法も。
月や日を個別に取り出さなくても、TEXT関数を使えば表示形式を自由に変えることができます。
たとえば、=TEXT(A1, "yyyy年m月d日")
のように書けば、A1セルの日付を「2025年10月12日」のような形で表示できます。
見た目だけを整えたい場合は、YEAR・MONTH・DAY関数よりもシンプルに使える便利な方法です。
まとめ
Excelの YEAR
、MONTH
、DAY
関数で取り出される値はすべて「数値(整数)」です。
数値だからこそできること
- 四則演算(年齢や経過月数の計算など)
- 条件分岐(IF関数で「月が4以上なら春」など)
- 集計やフィルター(ピボットテーブルで月別に並べる)
ちなみに、見た目だけ整えたい場合は TEXT
関数を使って "yyyy年m月d日"
のように表示形式を変えることもできます。
でも、計算や判定に使うなら YEAR
・MONTH
・DAY
の数値として取り出すのがベストです!
YEAR
、MONTH
、DAY
関数は、日付データを自在に操るための基本ツール。実務でも分析でも、これらを使いこなすことでExcelの操作がぐっと効率的になります。まずは簡単な日付分解から始めて、応用へとステップアップしてみましょう!