「日付データから年だけを取り出して、年度ごとに集計したい」。こんな場面はありませんか?
手作業で年を書き写していると、データが増えたときに大変ですよね。入力ミスも起きやすいです。
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/15 | 6(4月以降) | 2026年度 |
| 2026/2/10 | 2(3月以前) | 2025年度 |
| 2025/4/1 | 4(4月以降) | 2025年度 |
| 2025/3/31 | 3(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列の金額を合計します。
数式の仕組みを分解すると、次のとおりです。
YEAR(A2:A100)で各行の年を取り出す=2026で2026年かどうかを判定(TRUE/FALSE)- TRUEは1、FALSEは0として金額と掛け算される
- 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/19 | 2029/3/19 |
| 2024/2/29 | 2027/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関数の使い方もあわせてチェックしてみてください。
