Excelで日付データを扱っていると、「年だけを変更したい」「一括で年を書き換えたい」と思う場面は意外と多いものです。
たとえば、前年のデータをそのまま流用したい場合や、テンプレートの年を毎年更新しなければならない場面など、日付の年だけを効率よく変更できれば作業時間を大きく短縮できるでしょう。
しかし、Excelの日付はシリアル値という独自の形式で管理されているため、「年だけを変えたいのにうまくいかない」「書式設定を変えたら表示がおかしくなった」という経験をお持ちの方も多いのではないでしょうか。
この記事では、Excelで日付の年だけを変更する方法を、一括変更・関数・書式設定・できない場合の対処法まで、丁寧にわかりやすく解説していきます。
DATE関数やYEAR・MONTH・DAY関数の組み合わせ、表示形式のカスタマイズ、置換機能を使った一括変更など、目的に合わせた方法を幅広くご紹介しますので、ぜひ最後までご確認ください。
Excelで年だけを変更するなら「DATE関数+YEAR・MONTH・DAY関数」が最もおすすめ
それではまず、Excelで日付の年だけを変更する方法の結論からお伝えしていきます。
結論として、DATE関数とYEAR・MONTH・DAY関数を組み合わせる方法が最も柔軟かつ正確に年だけを変更できる手法です。
Excelの日付データはシリアル値として管理されており、見た目は「2023/04/15」でも、セル内部では数値として保存されています。
そのため、単純に年の数字だけを書き換えようとしても思い通りにいかないことが多く、関数を使って日付を再構成するアプローチが安全で確実でしょう。
DATE関数の基本構文とはたらき
DATE関数は、年・月・日を個別に指定して日付を生成するための関数です。
DATE(年, 月, 日)
例:DATE(2025, 4, 15) → 2025/04/15
この関数を使えば、年の部分だけを好きな値に差し替えつつ、月と日は元のデータから自動取得できます。
元の日付がA2セルに入力されている場合、以下のような数式で年だけを変更した日付を生成できるでしょう。
=DATE(2025, MONTH(A2), DAY(A2))
この数式は「年を2025年に固定し、月と日はA2の値をそのまま引き継ぐ」という意味になります。

B2セルに数式を入力したら、セル右下の小さな四角(フィルハンドル)をドラッグするだけで、B3・B4以降にも同じロジックが自動適用されます。
これがオートフィルの使い方で、大量の日付データを一括で変換したいときに非常に便利な機能です。
YEAR・MONTH・DAY関数の役割
DATE関数と組み合わせて使うYEAR・MONTH・DAY関数は、既存の日付から各要素を取り出すための関数です。
YEAR(A2) → A2セルの「年」を取得
MONTH(A2) → A2セルの「月」を取得
DAY(A2) → A2セルの「日」を取得
年だけを変更する場合、YEARの部分を任意の数値に置き換え、MONTHとDAYは元のセルから参照するという構造が基本形となります。
なお、変更後の年を別セル(たとえばD1)に入力しておき、数式内でそのセルを参照するようにすると、後から年の変更がさらに簡単になるでしょう。
=DATE($D$1, MONTH(A2), DAY(A2))
(D1に「2025」と入力しておく場合)
数式の結果を「値として貼り付け」る重要性
DATE関数で生成した日付は、あくまでも数式の結果です。
元のA列のデータを削除したり移動したりすると、参照エラーが発生してしまうため、必要に応じて値として貼り付ける操作を行いましょう。
コピー後に「貼り付けのオプション」から「値」を選択することで、数式ではなく日付の値だけを固定できます。
これにより、元データに依存しない独立した日付データとして保存できるでしょう。
Excelで日付の年を一括変更する方法(置換・入力規則の活用)
続いては、関数を使わずに日付の年を一括変更する方法を確認していきます。
関数が苦手な方や、手軽に年だけをまとめて書き換えたい場合には、「検索と置換」機能を活用する方法が便利です。
検索と置換で年を一括変更する手順
検索と置換は、Excelの標準機能として搭載されており、特定の文字列を別の文字列に一括で置き換えることができます。
ただし、日付データに対してそのまま使うと意図しないセルまで変更されてしまう場合があるため、いくつかの注意点があります。
手順としては、まず対象の日付セルを選択した状態でCtrl+Hキーを押して「検索と置換」ダイアログを開きます。
次に「検索する文字列」に「2023/」、「置換後の文字列」に「2025/」と入力し、「すべて置換」をクリックするだけです。
注意点として、日付がテキスト形式(文字列)で入力されている場合は置換が正常に機能しますが、シリアル値として保存されている場合は期待通りに動作しないことがあります。
置換前に必ずバックアップを取るか、対象セルを選択した状態でのみ置換を実行するよう徹底しましょう。
テキスト形式の日付に変換してから置換する方法
Excelの日付がシリアル値として保存されている場合、置換機能が正しく機能しないことがあります。
この場合は、いったん日付をTEXT関数でテキスト形式に変換してから置換するという迂回策が有効です。
=TEXT(A2,”yyyy/mm/dd”)
例:A2が2023/04/15の場合 → “2023/04/15″(文字列)
変換後の文字列に対して置換を行い、必要であれば再びDATEVALUE関数で日付に戻すという手順です。
手順が少し増えるものの、シリアル値の日付に対して確実に年を変更できる方法でしょう。
Excelの「フラッシュフィル」を活用する方法
Excel 2013以降では、フラッシュフィルという自動入力補完機能を使って年だけを変換する方法も取れます。
隣の列に変換後の日付を1〜2件手動で入力すると、Excelがパターンを自動認識し、残りのデータも自動で補完してくれます。
ただし、フラッシュフィルはあくまでパターン認識による補完であるため、複雑なデータや不規則なフォーマットには対応できないことも念頭に置いておきましょう。
Excelの書式設定で「年だけの表示」に変更する方法
続いては、書式設定を使って日付の表示を年だけに変更する方法を確認していきます。
ここで重要なのは、「値を変更する」のではなく「見た目(表示形式)を変更する」という点です。
書式設定を変えても、セル内部のシリアル値は変わらないため、数式での参照や集計には影響しません。
セルの書式設定でyyyyのみを表示する手順
年だけを表示したい場合は、セルの書式設定から表示形式をカスタマイズします。
対象セルを選択してCtrl+1キーを押すと「セルの書式設定」ダイアログが開きます。
「表示形式」タブを選び、「ユーザー定義」をクリックして、種類の欄に「yyyy」と入力してOKを押します。
これで、セルには年の数字だけが表示されるようになります。
ただし、あくまでも表示が変わるだけで実際のデータ(シリアル値)は変わらない点を忘れずに押さえておきましょう。
よく使う日付表示形式コードの一覧
書式設定コードは複数の組み合わせで使うことができます。
よく使われるものを以下の表に整理しましたので、目的に合わせて活用してみてください。
| 表示形式コード | 表示例 | 説明 |
|---|---|---|
| yyyy | 2025 | 4桁の年のみ表示 |
| yyyy/mm/dd | 2025/04/15 | 年/月/日の標準形式 |
| yyyy年m月d日 | 2025年4月15日 | 和文表記 |
| ggge年m月d日 | 令和7年4月15日 | 元号付きの和暦表記 |
| mm/dd | 04/15 | 月/日のみ表示 |
YEAR関数で年だけを数値として取り出す方法
書式設定とは別に、YEAR関数を使えば日付から年だけを数値として取り出すことができます。
=YEAR(A2)
例:A2が2023/04/15の場合 → 2023(数値)
この場合、結果はあくまで「年の数値」であり、日付データではありません。
集計や比較に使いたい場合はYEAR関数が便利ですが、日付として扱い続けたい場合はDATE関数との組み合わせを使うのが適切でしょう。
Excelで日付の年を変更できない場合の原因と対処法
続いては、年の変更がうまくいかない場合の原因と解決策を確認していきます。
「変更したはずなのに表示が変わらない」「エラーが出て困っている」という方は、以下の原因に当てはまっていないか確認してみてください。
日付がテキスト形式になっている場合
Excelの日付がシリアル値ではなくテキスト(文字列)として保存されている場合、DATE関数やYEAR関数が正しく機能しません。
セルの左上に緑の三角マークが表示されていたり、関数の結果が「#VALUE!」エラーになる場合は、日付がテキスト形式になっている可能性が高いです。
この場合、DATEVALUE関数を使って文字列を日付シリアル値に変換する必要があります。
=DATEVALUE(“2023/04/15”)
または =DATEVALUE(A2)
→ シリアル値として変換される
変換後はセルの表示形式を「日付」に変えることで、正しく日付として扱えるようになるでしょう。
セルが保護・ロックされている場合
シートやブックに保護がかかっている場合、セルの値を変更しようとしてもエラーメッセージが表示されて編集できないことがあります。
この場合は「校閲」タブから「シートの保護を解除」または「ブックの保護を解除」を選択し、必要であればパスワードを入力してから再度操作してください。
保護の解除後にデータを変更し、再度保護をかけ直す手順が安全でしょう。
表示形式が「文字列」になっておりエラーが出る場合
セルの表示形式が「文字列」に設定されていると、日付を入力してもExcelがシリアル値として認識せず、数式も正しく計算されないことがあります。
対処法として、セルを選択してCtrl+1を押し、「セルの書式設定」から表示形式を「日付」または「標準」に変更した後、一度セルの内容を削除して再入力することが必要です。
すでに入力されているデータが多い場合は、「区切り位置」機能(データタブ)を使ってまとめて変換する方法も有効でしょう。
変換後のシリアル値は数値として表示されるため、表示形式を「日付」に変更することを忘れないようにしましょう。
それぞれの症状と対処法をまとめると、以下のように整理できます。
| 症状 | 原因 | 対処法 |
|---|---|---|
| #VALUE!エラー | テキスト形式の日付を関数に渡している | DATEVALUEで変換してから使用 |
| 置換しても変わらない | シリアル値に対して置換している | DATE関数で再構成する |
| 編集できない | シート保護がかかっている | 保護を解除してから操作 |
| 数字で表示される | 表示形式が「標準」や「数値」になっている | 書式設定で「日付」を選択 |
まとめ
今回は、Excelで日付の年だけを変更する方法について、DATE関数・一括置換・書式設定・できない場合の対処法まで幅広く解説しました。
最も確実で汎用性の高い方法は、DATE関数とMONTH・DAY関数を組み合わせた数式を使う方法です。
一方で、日付がテキスト形式になっている場合はDATEVALUE関数での変換が前提となり、書式設定の変更は見た目だけを変えるもので実際のデータは変わらない点に注意が必要でしょう。
用途に合わせた方法を選択することが、Excelでの日付管理をスムーズにする近道です。
ぜひ今回紹介したテクニックを実際の業務や作業に活かしてみてください。