スプレッドシート「前の同じ期間」を自動計算する方法【DATEDIF活用】

スプレッドシートで日付の差分を計算する機会は多いですが、「前の同じ長さの期間」を求めたいと思ったことはありませんか?
たとえば、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 で前の期間の終了日
  • 応用すれば、比較表や売上分析のテンプレートにも応用可能!

コメント