年明けによくあるある問題ですが、エクセルで前の年の日付を入力したいのに、勝手に今年の日付になっていることってありませんか。
例えば、2025年1月になって、先月の「12/1」と入力すると、自動的に今の年が追加されて、「2025/12/1」となるのです。

見た目上は「12月1日」と表示されているため、前の年として入力されていることに気づきにくいですが、数式バーを見ると、前の年が入力されていることがわかります。
この症状を解消する方法はいくつかあります。
ということで、このページではエクセルで前年の日付を入力したいのに今年の日付になってしまう問題の解消方法についてご紹介します。
スグにためセル! – ここを読めばすぐ使える
エクセルで前年の日付を入力するには、直接入力するか、入力後に置換するか、関数を使用するか、マクロを使用する方法があります。
- Step1前年の日付を入力したいセルに次のように入力する
前の年の下2桁-入力したい月-入力したい日
- Step1普通に日付を入力する
- Step2前年の日付にしたいセルを選択する
- Step3Ctrl+Hを押して置換画面を表示する
- Step4
- Step1普通に日付を入力する
- Step2作業セルを用意し、以下の数式を入力する
=IF(MONTH(入力したセル)>=何月,EDATE(入力したセル,-12),入力したセル)
- Step3
- Step1VBEを起動し、下で紹介するコードを貼り付ける
- Step2普通に日付を入力する
- Step3マクロを実行する
※ より詳しい解説はここから下に続きます。
前年の日付を入力する方法①(直接入力)
日付を入力するときに、月と日だけを入力すると自動的に今の年が入力されますので、きちんと年もあわせて入力するようにしましょう。
ただ、入力するキーが増えて、時間がかかってしまいます。
ちょっとだけ時短をするために、年は下2桁だけ入力するとよいです。2025年なら25、2024年なら25といった具合です。

また、日付を入力するときは / (スラッシュキー)を使う方も多いと思いますが、実は – (ハイフンキー)でも入力ができます。
どちらを使っても問題ありませんので、自分の使いやすいキーを使うことで時短につなげることができるでしょう。
前年の日付を入力する方法②(入力後に置換)
月と日だけで入力した後に、年だけ前年にする方法はいくつかあります。
ここでは、入力後に置換する方法をご紹介します。
日付の入力が終わったら、前年にしたいセルを選択します。
このとき、複数のセルを選択したい場合は、Ctrlキーを押すことで、離れたセルでも同時に選択することができます。

セルを選択したら、Ctrl+Hキーを押します。
「検索と置換」画面の「検索する文字列」に今年の年を、「置換後の文字列」に前年の年をそれぞれ入力し、「すべて置換」ボタンをクリックします。

すると、選択したセルの年が前の年に変換されます。

前年の日付を入力する方法③(関数を使用する)
関数を使用して日付を前年にする方法もあります。
まずは、通常どおり日付を入力します。

そして、まったく何も入力されていないセルを選択し、次の数式を入力します。
=EDATE(入力したセル,-12)
この数式を入力すると、よくわからない数字が表示されると思いますが、これで問題ありません。

数式を入力したセルをコピーし、最初に日付を入力したセルに値で貼り付けます。

すると、日付が前年に変更されます。

これで、数式を入力したセルは不要なので、削除しておきましょう。
ただ、この方法は日付を変更するたびに数式を入力してコピペしないといけないので、めんどくさいです。
これなら最初からきちんと年を入力したほうがマシですよね。
でも、たくさんの日付を入力した場合でも数式を使って変換する方法はあります。
その数式がこちらです。
=IF(MONTH(入力したセル)>=何月,EDATE(入力したセル,-12),入力したセル)
何月のところには、何月から前の年に戻すかを指定します。
例えば、12月だけ前年に戻したい場合は「12」と、10月以降を前年に戻したい場合は「10」と入力します。
では、次の例のように多くの日付が入力されている場合に12月の日付だけ前の年に戻してみましょう。
一番上の日付の横に上の数式を入力して、下にコピーします。

セルを下に一気にコピーしたいときは、フィルハンドルをダブルクリックするとよいです。
詳しくは下のページをご覧ください。
そして、先ほどと同じように数式を入力したセルをコピーし、元のセルに値で貼り付けます。

すると、1月は2025年のままですが、12月は2024年に変換されています。
このように関数を使って一気に前年に戻すことができます。
このやり方の場合は、先ほどの置換の方法と違って変換するセルを選択する必要がないため、セルの選択誤りや選択漏れを防げますし、大量に日付があるときは、セルを選択して置換するよりも早く処理ができます。
前年の日付を入力する方法④(マクロを使用する)
最後にマクロを使用する方法をご紹介します。
マクロとは、エクセルの処理を自動化させるものです。
マクロの準備
この方法は、エクセルファイルごとに事前の設定が必要です。
ということで、設定していきましょう。
まず、エクセルファイルを開いたら、Alt+F11キーを押します。
すると、下のようなウインドウが開かれます。

ウインドウの左側にある「プロジェクト」の中に「VBAProject(Book1)」とあります。Book1のところは開いているファイルの名前になります。
ここで右クリックをし、「挿入」→「標準モジュール」とクリックします。

すると下の図のように入力画面となります。

ここに下のコードをコピーして貼り付けます。
Sub 前年に変換()
Dim r As Range, tmpR As Range, ans As Date
Application.ScreenUpdating = False
Set tmpR = Selection
For Each r In tmpR
If IsDate(r.Value) Then
ans = r.Value
r = Year(ans) - 1 & "-" & Month(ans) & "-" & Day(ans)
End If
Next r
Application.ScreenUpdating = True
MsgBox "選択したセルを前年の日付に変換しました。"
End Sub
貼り付け後の画面は下の図のようになります。

ここまで出来たら、右上の「×」を押して、このウインドウを閉じます。
これで準備は完了です。
マクロの使い方
それでは、このマクロをさっそく使用してみましょう。
まず、日付はいつも通り入力してOKです。

日付を入力したら、前年に変換したいセルを選択します。
同時に離れたセルを選択したいときはCtrlを押しながらクリックしてください。

セルを選択したら、「表示」リボンの「マクロ」から「マクロの表示」をクリックします。

「マクロ」ウインドウで「前年に変換」を選択し、「実行」をクリックします。

すると一瞬で選択したセルの日付が前年に変換されます。

注意点として、マクロを実行すると、すぐに選択したセルが前年に変換されますが、元に戻すことができません。そのため、マクロを実行する前に、選択したセルに間違いがないかしっかり確認してください。
念のため、間違った時のために、選択したセルを翌年に変換するマクロも用意しました。
下のコードを先ほどと同じようにマクロの入力画面に貼り付けてください。
なお、使用方法は同じです。
Sub 翌年に変換()
Dim r As Range, tmpR As Range, ans As Date
Application.ScreenUpdating = False
Set tmpR = Selection
For Each r In tmpR
If IsDate(r.Value) Then
ans = r.Value
r = Year(ans) + 1 & "-" & Month(ans) & "-" & Day(ans)
End If
Next r
Application.ScreenUpdating = True
MsgBox "選択したセルを翌年の日付に変換しました。"
End Sub
まとめ
エクセルで前の年の日付を入力したいのに、自動的に今年の日付が入力されてイライラすることってありますよね。
今回はそれを防ぐ方法をいくつかご紹介しました。
最初から前年を入力すると意識していれば、年も一緒に入力すればよいですが、あとから間違いに気づいたときは、置換や関数を使って一気に日付を前の年に戻すことができます。
また、マクロを使って、簡単に前の年の日付を入力することもできます。
年の初めに重宝するこのテクニック、ぜひおタメしください。
以上、このページではエクセルで前年の日付を入力したいのに今年の日付になってしまう問題の解消方法についてご紹介しました。