この記事では、エクセルで1か月足す(日付の足し算+1)・1か月後を表示する方法【関数やマクロVBAも】について解説しています。
関数だけでなく、使えると快適さが増すVBA(マクロ)の処理も記載していますので、ぜひ好みの方法をご活用くださいませ。
それでは詳しく見ていきます♪
エクセルで日付に1ヶ月足す(同日)方法【EDATE関数の使用】
エクセルで日付に1ヶ月を足す方法として、EDATE関数を使用する方法があります。
DATE関数は、指定した日付に指定した月数を加算(または減算)した日付を返します。
例えば、B2セルに2023年4月1日と入力されている場合、C2セルに以下の数式を入力します。
=EDATE(B2, 1)
この数式により、C2セルには2023年5月1日と表示されます。
次に、C2セルの右下隅にあるオートフィルハンドルをダブルクリックすることで、B列全体の日付に対して1ヶ月後の日付がC列全体に反映されます。
処理前:
A | B | C | |
---|---|---|---|
1 | 2023/04/01 | ||
2 | 2023/04/15 | ||
3 | 2023/04/30 |
処理後:
A | B | C | |
---|---|---|---|
1 | 2023/04/01 | 2023/05/01 | |
2 | 2023/04/15 | 2023/05/15 | |
3 | 2023/04/30 | 2023/05/30 |
VBA(マクロ)の場合
VBA(マクロ)を使用して、日付に1ヶ月を足す処理を行うこともできます。
以下のコードを使用します。
Sub AddOneMonth()
Dim lastRow As Long
lastRow = Range("B" & Rows.Count).End(xlUp).Row
Range("C2:C" & lastRow).FormulaR1C1 = "=EDATE(RC[-1],1)"
Range("C2:C" & lastRow).Value = Range("C2:C" & lastRow).Value
End Sub
このマクロを実行すると、B列の最終行までのデータに対して1ヶ月後の日付がC列に反映されます!
エクセルで日付に1ヶ月足す(同日)方法【DATE関数とYEAR関数・MONTH関数・DAY関数を組みあわせ】
EDATE関数を使用せずに、DATE関数、YEAR関数、MONTH関数、DAY関数を組み合わせて日付に1ヶ月を足す方法もあります。
例えば、B2セルに2023年4月1日と入力されている場合、C2セルに以下の数式を入力します。
=DATE(YEAR(B2),MONTH(B2)+1,DAY(B2))
この数式により、C2セルには2023年5月1日と表示されます。
次に、C2セルの右下隅にあるオートフィルハンドルをダブルクリックすることで、B列全体の日付に対して1ヶ月後の日付がC列全体に反映されます。
処理前:
A | B | C | |
---|---|---|---|
1 | 2023/04/01 | ||
2 | 2023/04/15 | ||
3 | 2023/04/30 |
処理後:
A | B | C | |
---|---|---|---|
1 | 2023/04/01 | 2023/05/01 | |
2 | 2023/04/15 | 2023/05/15 | |
3 | 2023/04/30 | 2023/05/30 |
VBA(マクロ)の場合
VBA(マクロ)を使用して、DATE関数、YEAR関数、MONTH関数、DAY関数を組み合わせて日付に1ヶ月を足す処理を行うこともできます。以下のコードを使用します。
Sub AddOneMonthDate()
Dim lastRow As Long
lastRow = Range("B" & Rows.Count).End(xlUp).Row
Range("C2:C" & lastRow).FormulaR1C1 = "=DATE(YEAR(RC[-1]),MONTH(RC[-1])+1,DAY(RC[-1]))"
Range("C2:C" & lastRow).Value = Range("C2:C" & lastRow).Value
End Sub
このマクロを実行すると、B列の最終行までのデータに対して1ヶ月後の日付がC列に反映されます。
まとめ エクセルで日付の足し算・1か月後を表示する方法【関数やマクロVBAも】
以上が、エクセルで日付に1ヶ月を足す方法の説明でした。
EDATE関数を使用する方法と、DATE関数、YEAR関数、MONTH関数、DAY関数を組み合わせる方法の2つを紹介しました。
また、それぞれの方法に対応するVBA(マクロ)のコードも提供しました。オートフィル機能を活用することで、効率的に日付の処理を行うことができます。