Excel

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

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

エクセルで日付データを扱う際、よくある操作の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日前の日付を表示する方法をご紹介しました。

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