エクセルで日付データを扱う際、よくある操作の1つが「1日前の日付を表示する」ことです。
今回は、オートフィルや関数、VBAマクロを使って、A列の日付から1日前の日付をB列に一括で出力する方法をご紹介します。
エクセルで1日前を表示させる方法【オートフィル、A列の1日前をB列に出して一括処理、関数】
まずは、関数を使ってA列の1日前の日付をB列に表示させる方法です。
まずA2セル以降に元の日付を入力します。
B2セルに =A2-1 と入力し、Enterキーを押します。
B2セルの右下をドラッグし、B列全体にオートフィルします。
これで、A列の日付から1日前の日付がB列に反映されました。
VBA(マクロ)の場合
次に、VBAマクロを使ってA列の1日前の日付をB列に表示する方法をご紹介します。
Alt+F11でVBE画面を開いて以下をコピペしましょう。
Sub OneDayBefore()
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Range("B1:B" & lastRow).FormulaR1C1 = "=RC[-1]-1"
Range("B1:B" & lastRow).Value = Range("B1:B" & lastRow).Value
End Sub
Alt+F8でマクロ選択画面を開きOneDayBefore関数を実行します。
このマクロを実行すると、A列の日付から1日前の日付がB列に表示されます。
エクセルで1日前を表示させる方法【DATE関数、オートフィル、A列の1日前をB列に出して一括処理】
DATE関数とYEAR、MONTH、DAY関数を組み合わせて、1日前の日付を計算することもできます。
A列の1日前の日付をB列に表示させる方法もあります。
B2セルに =DATE(YEAR(A2),MONTH(A2),DAY(A2)-1) と入力し、Enterキーを押します。
B2セルの右下をドラッグし、B列全体にオートフィルします。
これで、A列の日付から1日前の日付がB列に反映されました。
VBA(マクロ)の場合
最後に、DATE関数を使ったVBAマクロでA列の1日前の日付をB列に表示する方法をご紹介します。
Alt+F11でVBE画面を開いて以下をコピペしましょう。
Sub OneDayBeforeDate()
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Range("B1:B" & lastRow).FormulaR1C1 = "=DATE(YEAR(RC[-1]),MONTH(RC[-1]),DAY(RC[-1])-1)"
Range("B1:B" & lastRow).Value = Range("B1:B" & lastRow).Value
End Sub
Alt+F8でマクロ選択画面を開きOneDayBeforeDate関数を実行します。
このマクロを実行すると、DATE関数を使ってA列の日付から1日前の日付がB列に表示されます。
まとめ
以上、エクセルで1日前の日付を表示する方法をご紹介しました。
業務の効率化にお役立てください!