スプレッドシートで日付の差分を計算する機会は多いですが、「前の同じ長さの期間」を求めたいと思ったことはありませんか?
たとえば、2025年3月14日〜3月31日の17日間と同じ長さの期間を、その前に自動で出したいという場合に便利なのが DATEDIF
関数と日付演算です。
この関数でできること|前後の同じ期間を比較したいときに便利
スプレッドシートでは、売上の月次比較、キャンペーン期間の比較、進捗チェックなどで「同じ長さの期間を前後に移動させたい」というニーズがよくあります。DATEDIF
関数で期間日数を計算し、その分だけ日付をさかのぼることで、前の同じ期間を自動で算出することが可能です。
DATEDIF関数の基本|2つの日付の差を求める
まずは基本の書き方を押さえておきましょう。
=DATEDIF(開始日, 終了日, "D")
たとえば、2025年3月14日〜3月31日の差を出す場合は:
=DATEDIF("2025/03/14","2025/03/31","D")
👉 結果は「17日間」です。
前の同じ期間を自動で求める数式
以下のように設定すれば、どんな期間でも自動的に「前の同じ長さの期間」を出力できます。
開始日と終了日を以下のように設定(例:A列とB列)
セル | 値 |
---|---|
A2 | 2025/03/14(開始日) |
B2 | 2025/03/31(終了日) |
【1】前の期間の開始日(C2などに)
=A2 - DATEDIF(A2, B2, "D")
→ 結果:2025/02/25
【2】前の期間の終了日(D2などに)
=A2 - 1
→ 結果:2025/03/13
表で確認|対象期間と前の期間の比較
期間タイプ | 開始日 | 終了日 | 期間日数 | 開始日式 | 終了日式 |
---|---|---|---|---|---|
前の期間 | 2025/02/25 | 2025/03/13 | 17日間 | =A2-DATEDIF(A2,B2,"D") |
=A2-1 |
対象期間 | 2025/03/14 | 2025/03/31 | 17日間 | =A3 |
=B3 |
※期間日数は自動で同じになります。
日付を「文字列」として表示したい場合
書式付きで表示したい場合は TEXT
関数を使います:
=TEXT(A2 - DATEDIF(A2, B2, "D"), "yyyy/mm/dd")
応用例|前後の期間を使って比較表を作る
「前の期間・当期間・次の期間」などを並べると、月次比較や週次進捗などが一目でわかります。
数式を組み合わせれば、日付を1つ変更するだけで自動で全体が切り替わるテンプレートも作成可能です。
まとめ
- スプレッドシートで「前の同じ期間」を求めるには、
DATEDIF
で期間を求め、それを開始日から引けばOK =開始日 - DATEDIF(開始日, 終了日, "D")
で前の期間の開始日=開始日 - 1
で前の期間の終了日- 応用すれば、比較表や売上分析のテンプレートにも応用可能!
コメント