Excel

【Excel】エクセルで1か月引く、1か月前を表示(マイナス1、-1、関数やマクロも)する方法

当サイトでは記事内に広告を含みます
技術ブログ特化メルマガはこちら

エクセルで日付データを扱う際、よくある操作の1つが「1か月前の日付を表示する」ことです。

今回は、オートフィルや関数、VBAマクロを使って、A列の日付から1か月前の日付をB列に一括で出力する方法をご紹介します。

エクセルで1か月前を表示させる方法【オートフィル、A列の1か月前をB列に出して一括処理、関数】

まずは、関数を使ってA列の1か月前の日付をB列に表示させる方法です。

まずA2セル以降に元の日付を入力します。

B2セルに `=EDATE(A2,-1)` と入力し、Enterキーを押します。

この時に日付ではなく「44986」のような”シリアル値”が表示されてしまうことがあります。

この場合、「セルの書式設定」から表示形式を「日付」に変更しましょう。

なお「ホーム」タブ→「数値」からでも変更可能です(^^)

これで日付が正しく表示されましたね。

B2セルの右下をドラッグし、B列全体にオートフィルしましょう。

これで、A列の日付から1か月前の日付がB列に反映されました。

VBA(マクロ)の場合

次に、VBAマクロを使ってA列の1か月前の日付をB列に表示する方法をご紹介します。Alt+F11でVBE画面を開いて以下をコピペしましょう。

“`vba
Sub OneMonthBefore()
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row

Range(“B1:B” & lastRow).FormulaR1C1 = “=EDATE(RC[-1],-1)”
Range(“B1:B” & lastRow).Value = Range(“B1:B” & lastRow).Value
End Sub

“`

Alt+F8でマクロ選択画面を開きOneMonthBefore関数を実行します。

このマクロを実行すると、A列の日付から1か月前の日付がB列に表示されます。

エクセルで1か月前を表示させる方法【DATE関数、オートフィル、A列の1か月前をB列に出して一括処理】

DATE関数とYEAR、MONTH、DAY関数を組み合わせて、1か月前の日付を計算することもできます。

A列の1か月前の日付をB列に表示し、オートフィルでC列に反映させる方法もあります。

B2セルに `=DATE(YEAR(A2),MONTH(A2)-1,DAY(A2))` と入力し、Enterキーを押します。

B2セルの右下をドラッグし、B列全体にオートフィルします。

これで、A列の日付から1か月前の日付がB列に反映されました。

VBA(マクロ)の場合

最後に、DATE関数を使ったVBAマクロでA列の1か月前の日付をB列に表示する方法をご紹介します。Alt+F11でVBE画面を開いて以下をコピペしましょう。

“`vba
Sub OneMonthBeforeDate()
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row

Range(“B1:B” & lastRow).FormulaR1C1 = “=DATE(YEAR(RC[-1]),MONTH(RC[-1])-1,DAY(RC[-1]))”
Range(“B1:B” & lastRow).Value = Range(“B1:B” & lastRow).Value
End Sub

“`

Alt+F8でマクロ選択画面を開きOneMonthBeforeDate関数を実行します。

このマクロを実行すると、DATE関数を使ってA列の日付から1か月前の日付がB列に表示されます。

まとめ

ここまで、エクセルで1か月前の日付を表示する方法をご紹介しました。

ぜひ業務の効率化にお役立てください!