「日付データから年だけ取り出したいのに、手作業でコピーしている」なんてことはありませんか。件数が多いと時間もかかりますし、コピーミスも起きやすいですよね。
ExcelのYEAR関数を使えば、日付データから年の数値を一発で取り出せます。この記事では基本の書き方から、年度判定や経過年数の計算といった実務パターンまでまとめて紹介します。
この記事は次のような人におすすめ
YEAR関数とは?
YEAR関数(読み方: イヤー)は、日付のシリアル値から「年」の部分を整数で返す関数です。英語の「year(年)」がそのまま関数名になっています。
たとえばセルに 2025/4/1 という日付が入っている場合、YEAR関数を使うと 2025 という数値が返ります。返り値は1900から9999の範囲の整数です。
Excelの日付は内部的に「シリアル値」という数値で管理されています。1900年1月1日を「1」として、1日ごとに1ずつ増える仕組みです。YEAR関数はこのシリアル値から年の部分だけを抜き出してくれます。
YEAR関数の書き方(構文と引数)
基本構文
=YEAR(シリアル値)
引数は1つだけで必須です。
引数の説明
| 引数 | 必須/省略可 | 内容 |
|---|---|---|
| シリアル値 | 必須 | 年を取り出す元になる日付を指定する。セル参照・日付文字列・DATE関数などが使える |
NOTE
引数にはセル参照(
A1)のほか、日付の文字列("2025/4/1")やDATE関数の戻り値も指定できます。ただし文字列を直接渡す場合は"2025/4/1"のようにダブルクォーテーションで囲んでください。
YEAR関数の基本的な使い方
セル参照で日付を指定する
もっとも基本的な使い方です。A1に 2025/4/1 が入っているとします。
=YEAR(A1)
結果: 2025
日付の「年」の部分だけが整数で返ります。
日付文字列を直接指定する
引数に日付の文字列を直接入力することもできます。
=YEAR("2025/4/1")
結果: 2025
Excelが文字列を自動でシリアル値に変換してから年を取り出します。
DATE関数と組み合わせる
DATE関数が返すシリアル値をそのまま渡せます。
=YEAR(DATE(2025,4,1))
結果: 2025
DATE関数で作った日付の年を確認したいときに使うパターンです。
TODAY関数と組み合わせる
TODAY関数と組み合わせると、今年の西暦を自動取得できます。
=YEAR(TODAY())
結果: 2026(2026年の場合)
ファイルを開くたびに自動で更新されるので、年度の切り替え処理などで重宝しますよ。
YEAR関数の実務活用パターン
パターン1: 年度(4月始まり)を自動判定する
日本企業では4月始まりの年度を使うケースが多いですよね。YEAR関数とMONTH関数を組み合わせれば、日付から年度を自動判定できます。
A1に日付が入っているとします。
=IF(MONTH(A1)>=4, YEAR(A1), YEAR(A1)-1)
結果の例:
2025/4/1→ 2025(年度)2026/3/31→ 2025(年度)2025/1/15→ 2024(年度)
4月以降ならそのままの年、3月以前なら1を引くだけです。IF関数との組み合わせでシンプルに書けます。
パターン2: 経過年数を計算する
入社日や契約開始日から「何年経過したか」を計算できます。A1に開始日が入っているとします。
=YEAR(TODAY())-YEAR(A1)
結果の例: A1が 2020/4/1 の場合 → 6(2026年時点)
TIP
この計算は「年の差」であり、厳密な経過年数ではありません。月日を考慮した正確な年数が必要なら、DATEDIF関数を使ってください。
=DATEDIF(A1,TODAY(),"Y")で満年数が返ります。
パターン3: 年ごとに集計する(SUMIFS連携)
売上データを年ごとに集計したいときは、YEAR関数で年を取り出してからSUMIFS関数と組み合わせます。
A列に日付、B列に売上金額が入っているとします。
=SUMIFS(B:B, A:A, ">="&DATE(2025,1,1), A:A, "<="&DATE(2025,12,31))
または、作業列にYEAR関数で年を取り出してから集計する方法もあります。C列に =YEAR(A2) を入れておけば、次の式で集計できます。
=SUMIFS(B:B, C:C, 2025)
作業列を使うほうが数式がシンプルになります。年ごとの集計表を作るときにおすすめですよ。
パターン4: 年ごとに件数をカウントする
日付データが何年のものか件数を数えたいときは、YEAR関数とCOUNTIFS関数を組み合わせます。
A列に日付が入っていて、C列に =YEAR(A2) の作業列を作ったとします。
=COUNTIFS(C:C, 2025)
結果: 2025年のデータ件数
作業列なしで直接カウントするなら、次のように書きます。
=COUNTIFS(A:A, ">="&DATE(2025,1,1), A:A, "<="&DATE(2025,12,31))
パターン5: 日付の「年」だけを別の年に置き換える
日付データの年だけを変更したいケースです。A1に 2024/8/15 が入っている場合に、年だけを2025に変更するにはDATE関数と組み合わせます。
=DATE(2025, MONTH(A1), DAY(A1))
結果: 2025/8/15
YEAR関数ではなくMONTH関数とDAY関数で月・日を保持しつつ、年だけを差し替えています。翌年のスケジュール表を作るときに便利なテクニックです。
よくあるエラーと対処法
| 症状 | 原因 | 対処法 |
|---|---|---|
#VALUE! エラー | 引数が日付として認識できない文字列 | セルの値が正しい日付形式か確認する。"2025年4月" のように日がない文字列はNG |
#VALUE! エラー | 日付が文字列として入力されている | DATEVALUE関数でシリアル値に変換してから渡す |
#NUM! エラー | シリアル値が負の数 | Excelの日付は1900/1/1以降が有効。それより前の日付は扱えない |
| 想定と違う年が返る | セルの表示形式が「文字列」 | セルの表示形式を「標準」や「日付」に変更してから日付を再入力する |
| 想定と違う年が返る | 2桁の年が自動変換された | =DATE(24,4,1) は1924年になる。年は4桁で指定する |
NOTE
日付に見えるのに
#VALUE!が出る場合は、セルの値が「文字列」になっている可能性があります。セルを選択して数式バーを確認し、左寄せになっていたら文字列です。DATEVALUE関数で変換するか、表示形式を変更して再入力してみてください。
似た関数との違い・使い分け
YEAR関数と同じ「日付から一部を取り出す」関数を比較します。
| 関数 | 取り出す要素 | 使い方の例 | 結果 |
|---|---|---|---|
| YEAR | 年 | =YEAR("2025/4/1") | 2025 |
| MONTH関数 | 月 | =MONTH("2025/4/1") | 4 |
| DAY関数 | 日 | =DAY("2025/4/1") | 1 |
| TEXT関数 | 書式指定で文字列化 | =TEXT("2025/4/1","yyyy") | “2025”(文字列) |
| WEEKDAY関数 | 曜日番号 | =WEEKDAY("2025/4/1") | 3(火曜日) |
使い分けのポイント
- 「年の数値が欲しい」→ YEAR関数(計算に使える整数が返る)
- 「月の数値が欲しい」→ MONTH関数
- 「日の数値が欲しい」→ DAY関数
- 「”2025年”のような文字列が欲しい」→ TEXT関数
- 「年・月・日をバラバラに指定して日付を作りたい」→ DATE関数
YEAR関数が返すのは数値です。セルに「2025年」と表示したい場合はTEXT関数を使うか、セルの表示形式を yyyy"年" に変更してください。
YEAR・MONTH・DAYの3関数はセットで覚えておくと、日付データの分解・再構成が自在にできるようになりますよ。
まとめ
YEAR関数は、日付データから年の数値を取り出す関数です。
- 構文:
=YEAR(シリアル値)── 引数は1つだけ - 戻り値: 1900〜9999の整数(年の数値)
- よく使う組み合わせ: TODAY関数で今年の西暦を取得、IF関数で年度判定、SUMIFS関数で年ごと集計
- 実務活用: 年度判定(4月始まり)、経過年数の計算、年別集計・カウント、年の置き換え
- 関連関数: MONTH関数・DAY関数・DATE関数・TEXT関数と目的に応じて使い分ける
日付データから年を取り出す場面は、年度管理や集計でとても多いです。MONTH関数・DAY関数とあわせて覚えておくと、日付処理が格段にラクになりますよ。
