スプレッドシートのYEAR関数の使い方|日付から年だけを取り出す方法

スポンサーリンク

「日付データから年だけを取り出して、年度ごとに集計したい」。こんな場面はありませんか?

手作業で年を書き写していると、データが増えたときに大変ですよね。入力ミスも起きやすいです。

GoogleスプレッドシートのYEAR関数を使えば、日付から年(西暦4桁)を一発で取り出せます。

この記事では、YEAR関数の基本から年度判定・年ごとの集計まで、実務で使えるテクニックをまとめて紹介します。

YEAR関数とは?スプレッドシートで日付から年を取り出す関数

YEAR関数(読み方: イヤー関数)は、日付データから「年」の部分だけを数値として取り出す関数です。

名前は英語の「year(年)」がそのまま関数名になっています。

たとえばセルに「2026/3/19」という日付が入っていれば、YEAR関数は「2026」を返します。とてもシンプルですね。

YEAR関数でできることをまとめると、次のとおりです。

  • 日付から年(西暦4桁)を数値で取り出す
  • TODAY関数と組み合わせて「今年の西暦」を動的に取得する
  • IF関数と組み合わせて年度(4月始まり等)を判定する
  • SUMPRODUCT関数と組み合わせて年ごとの集計を行う

NOTE

YEAR関数はGoogleスプレッドシートの全バージョンで使えます。Excelでも同じ構文で動作するので、ファイル共有時も安心です。

YEAR関数の基本の書き方

構文と引数

=YEAR(日付)
引数必須/省略可説明
日付必須年を取り出したい日付データ。セル参照、DATE関数の戻り値、日付として認識される文字列を指定できます

引数はたった1つだけです。覚えやすいですよね。

戻り値

YEAR関数は1900〜9999の範囲の整数を返します。「2026/3/19」なら「2026」、「1990/1/1」なら「1990」です。

返すのは数値です。文字列ではありません。そのため、取り出した年をそのまま計算に使えますよ。

入力例

=YEAR(A2)           … セルA2の日付から年を取得
=YEAR(TODAY())       … 今日の日付から年を取得(今年の西暦)
=YEAR("2026/3/19")  … 日付文字列から年を取得 → 2026

基本的な使い方|日付から年だけを取り出す

実際の使い方を見てみましょう。受注日の一覧から年を取り出すケースです。

 A列(受注日)B列(年)
2行目2024/8/15=YEAR(A2) → 2024
3行目2025/3/1=YEAR(A3) → 2025
4行目2026/12/20=YEAR(A4) → 2026

B2セルに =YEAR(A2) と入力するだけです。あとは下方向にコピーすれば、すべての行の年を取り出せます。

YEAR関数の結果は数値なので、フィルタで「2025」だけに絞り込んだり、ピボットテーブルの行に配置したりできます。

TIP

「今年の西暦」を取得するなら =YEAR(TODAY()) が便利です。TODAY関数が今日の日付を返し、YEAR関数がそこから年を取り出します。ファイルを開くたびに自動更新されますよ。

実務で使えるYEAR関数の活用例

年度を判定する(YEAR + IF)

日本の会社では4月始まりの「年度」を使うことが多いですよね。YEAR関数とIF関数を組み合わせれば、日付から年度を自動判定できます。

=IF(MONTH(A2)>=4, YEAR(A2), YEAR(A2)-1)

この数式のポイントは次のとおりです。

  • MONTH関数で月を取り出す(1〜12の数値)
  • 4月以降(4〜12月)なら、その年がそのまま年度
  • 1〜3月なら、前年が年度(YEAR(A2)-1)

具体例で確認してみましょう。

日付年度の計算結果
2026/6/156(4月以降)2026年度
2026/2/102(3月以前)2025年度
2025/4/14(4月以降)2025年度
2025/3/313(3月以前)2024年度

4月1日と3月31日で年度が変わるのがわかりますね。

TIP

年度の開始月が4月以外の場合は、数式の「4」を変更してください。たとえば10月始まりなら =IF(MONTH(A2)>=10, YEAR(A2), YEAR(A2)-1) です。

年ごとに集計する(SUMPRODUCT + YEAR)

「年ごとの売上合計を出したい」という場面では、SUMPRODUCT関数とYEAR関数を組み合わせます。

=SUMPRODUCT((YEAR(A2:A100)=2026)*B2:B100)

この数式は、A列の日付が2026年の行だけを対象に、B列の金額を合計します。

数式の仕組みを分解すると、次のとおりです。

  1. YEAR(A2:A100) で各行の年を取り出す
  2. =2026 で2026年かどうかを判定(TRUE/FALSE)
  3. TRUEは1、FALSEは0として金額と掛け算される
  4. SUMPRODUCTが合計を返す

ちょっとむずかしく見えますが、やっていることはシンプルです。「年が一致する行だけ合計する」という意味ですよ。

NOTE

SUMIF関数で =SUMIF(A2:A100, "2026", B2:B100) のように年を文字列で指定しても、日付と年は型が違うため正しく集計できません。SUMPRODUCT+YEAR関数の組み合わせを使いましょう。

今年の売上を動的に集計したい場合は、「2026」の部分をYEAR(TODAY())に置き換えます。

=SUMPRODUCT((YEAR(A2:A100)=YEAR(TODAY()))*B2:B100)

N年後の日付を求める(DATE + YEAR)

契約更新日や資格の有効期限など、「N年後の日付」が必要な場面もありますよね。DATE関数とYEAR関数を組み合わせれば計算できます。

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

たとえば3年後の日付を求めるなら、次のように書きます。

=DATE(YEAR(A2)+3, MONTH(A2), DAY(A2))
基準日3年後
2026/3/192029/3/19
2024/2/292027/3/1(うるう年の調整)

2月29日の3年後は2月29日が存在しないため、自動的に3月1日に繰り上がります。DATE関数のロールオーバー機能のおかげです。

今年・去年を動的に判定する(TODAY + YEAR)

「今年のデータだけを色付けしたい」「去年と今年で分けたい」という場面では、TODAY関数との組み合わせが便利です。

=YEAR(A2)=YEAR(TODAY())       … 今年のデータかどうか(TRUE/FALSE)
=YEAR(A2)=YEAR(TODAY())-1     … 去年のデータかどうか

条件付き書式のカスタム数式にも使えます。「今年のデータだけ背景色を変える」といった設定が簡単にできますよ。

YEAR・MONTH・DAY関数の違いと使い分け

YEAR関数には姉妹関数としてMONTH関数DAY関数があります。3つセットで覚えておくと便利です。

関数読み方取り出す要素戻り値の範囲入力例(2026/3/19)結果
YEARイヤー1900〜9999=YEAR(A2)2026
MONTHマンス1〜12=MONTH(A2)3
DAYデイ1〜31=DAY(A2)19

3関数とも構文は同じで =関数名(日付) です。引数も1つだけなので、迷うことはありません。

この3関数を組み合わせると、日付の分解と再構築が自由にできます。

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

上の数式はA2の日付をいったんYEAR・MONTH・DAYで分解し、DATE関数で再構築しています。このパターンは「年だけ変える」「月だけずらす」といった加工の基本形です。

TIP

日付を「2026年3月」のようにテキスト表示したい場合は、TEXT関数を使ってください。=TEXT(A2, "yyyy年m月") で書式付きの文字列に変換できます。

よくあるエラーと対処法

#VALUE! エラー

YEAR関数で最もよくあるエラーです。原因は引数が日付として認識できないことです。

原因入力例対処法
文字列の日付=YEAR(“令和8年”)西暦の日付形式に変換する
数値の文字列=YEAR(“2026”)=YEAR(DATEVALUE(“2026/1/1”)) に変更
空白セル=YEAR(“”)IF関数で空白チェックを追加

「2026/3/19」のような形式の文字列ならYEAR関数で認識できます。ただし「令和8年」や「R8」のような和暦は認識できませんので注意してください。

意図しない年が返る

日付に見えて実は文字列になっているセルがあります。セルの左上に小さな緑の三角マークが出ていたら要注意です。

「表示形式」→「数字」→「日付」で日付型に変換するか、DATEVALUE関数で文字列を日付に変換してからYEAR関数を使ってください。

まとめ

この記事では、スプレッドシートのYEAR関数の使い方を解説しました。

項目内容
構文=YEAR(日付)
できること日付から年(西暦4桁)を数値で取り出す
姉妹関数MONTH(月)・DAY(日)
年度判定=IF(MONTH(A2)>=4, YEAR(A2), YEAR(A2)-1)
年ごと集計=SUMPRODUCT((YEAR(範囲)=年)*金額範囲)
N年後の日付=DATE(YEAR(A2)+N, MONTH(A2), DAY(A2))

YEAR関数は単体でも便利ですが、IF関数やSUMPRODUCT関数と組み合わせると活用の幅がぐっと広がります。まずは =YEAR(A2) で年を取り出すところから試してみてくださいね。

日付操作をもっと知りたい方は、DATE関数の使い方TODAY関数の使い方もあわせてチェックしてみてください。

タイトルとURLをコピーしました