条件関数で日付範囲を使う
期間内を合計またはカウントするための日付範囲条件を使います。
「条件関数で日付範囲を使う」はCoddyKit上の無料Excel Formulas Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはExcel Formulas Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Excel Formulas Academyコースには全4レッスンが含まれています。
期間でフィルタリングする
実際のレポートでは、ほとんどの場合期間に関する集計が必要です。今四半期の売上、先月の注文、2つの日付の間の登録数などです。ここまで学んできた SUMIFS、COUNTIFS、AVERAGEIFS は、日付範囲の表現方法がわかれば、こうした集計にもきれいに対応できます。
ポイントは、日付範囲が実際には同じ日付列に対する2つの条件だということです。開始日以降であり、かつ終了日以前である、という条件になります。
日付は単なる数値
スプレッドシートでは、日付はシリアル値として保存されます。1日目は1900年1月1日(Sheetsでは1899年)で、その後は1日ごとに1ずつ増えます。そのため、通常の数値と同じように > や < で日付を比較できます。
つまり、1月1日より後とは、単にその日付のシリアル値より大きいシリアル値という意味です。これが、日付によるフィルタリングを可能にする重要なポイントです。
2つの日付の間を合計する
列Aに注文日、列Cに金額が入っているとします。2024年1月の売上を合計するには、列Aを2回指定します。1月1日以降、かつ1月31日以前という条件です。
地域による日付表記の違いに左右されないよう、日付は DATE(year, month, day) 関数で指定してください。2つの条件がANDとして働き、その月の行だけが対象になります。
=SUMIFS(C:C, A:A, ">="&DATE(2024,1,1), A:A, "<="&DATE(2024,1,31))DATE() と & 記号を使う理由
">=1/1/2024" のように直接入力したくなるかもしれません。うまく動くこともありますが、スプレッドシートによっては文字列として扱われたり、日と月の順序を誤って解釈されたりするため、確実ではありません。
堅牢なパターンは ">="&DATE(2024,1,1) です。DATE 関数が実際のシリアル値を作成し、& が演算子とその値を結合します。これは、どの地域設定でも Excel と Google Sheets の両方で確実に動作します。
=COUNTIFS(A:A, ">="&DATE(2024,1,1), A:A, "<="&DATE(2024,1,31))セルから日付を取得する
固定されたレポートであれば日付を直接指定しても問題ありませんが、柔軟なレポートでは開始日と終了日をセルから取得します。開始日を F1 に、終了日を F2 に入力します。
これで期間をシートから変更できるようになります。F1またはF2を変更すると、すべての合計が再計算されます。いつものように、& で演算子とセルを結合してください。セル名を引用符の中に入れてはいけません。
=SUMIFS(C:C, A:A, ">="&F1, A:A, "<="&F2)終端のない期間
境界が片方だけ必要な場合もあります。ある日付以降のすべてには、以上を表す条件を1つだけ使います。ある日付までのすべてには、以下を表す条件を1つだけ使います。
これは、F1の日付以降に行われたすべての注文を、上限なしで数える方法です。「サービス開始以降の売上」のような指標に便利です。
=COUNTIFS(A:A, ">="&F1)日付を他の条件と組み合わせる
日付の条件は、文字列や数値の条件と自由に組み合わせられます。期間内の東部地域の売上を合計するには、2つの日付条件に地域の条件ペアを追加します。
条件を指定する順番は結果に影響しません。Excel はすべての条件を1つの大きなAND条件として評価します。ここでは、3つの条件ペアが同じ average_range または sum_range を共有しています。
=SUMIFS(C:C, B:B, "East", A:A, ">="&F1, A:A, "<="&F2)月または年でフィルタリングする
1年分を合計するには、その年の初日と最終日を範囲の境界に設定します。開始日には DATE を使い、期間の終わりを指定します。
1か月分の場合は、その月の1日を下限にし、翌月の1日を厳密な "<" 条件の上限にします。こうすると、月の日数が28日、30日、31日のどれかを気にする必要がありません。
=SUMIFS(C:C, A:A, ">="&DATE(2024,3,1), A:A, "<"&DATE(2024,4,1))TODAY を使った相対期間
定期的に更新するレポートでは、TODAY() から境界を作成します。過去30日間の注文数を数える場合、下限は今日から30日前、上限は今日です。
TODAY() はシートが再計算されるたびに更新されるため、期間が自動的に毎日前へ移動します。手動で編集する必要はありません。
=COUNTIFS(A:A, ">="&(TODAY()-30), A:A, "<="&TODAY())時刻要素に注意する
日付列に実際には日付と時刻(タイムスタンプ)が保存されている場合、1月31日の夜遅くの行は、1月31日の1日全体を表す値よりわずかに大きいシリアル値になります。そのため、"<="&DATE(2024,1,31) という境界では、その行が除外されます。
安全な対処法は、翌日を厳密な未満条件にするパターンです。"<"&DATE(2024,2,1) とすれば、タイムスタンプを含め、1月中のあらゆる時刻を対象にできます。
=SUMIFS(C:C, A:A, ">="&DATE(2024,1,1), A:A, "<"&DATE(2024,2,1))期間内の値を平均する
同じ日付範囲のパターンは AVERAGEIFS にも使えます。期間内の平均注文額を求めるには、金額列を average_range に指定し、日付列に対する2つの日付条件を追加します。
期間内に注文がない場合の落とし穴にも注意してください。AVERAGEIFS は #DIV/0! を返します。IFERROR で囲めば、データのない期間でも、日付で絞り込んだダッシュボードをすっきり保てます。
=IFERROR(AVERAGEIFS(C:C, A:A, ">="&F1, A:A, "<="&F2), "No data")理解度チェック
条件関数で日付と比較するときの、堅牢な方法を思い出してください。
まとめ: 条件関数での日付範囲
SUMIFS、COUNTIFS、AVERAGEIFS を期間でフィルタリングできるようになりました。
- 日付範囲は、同じ日付列に対する2つの条件(開始日以上、終了日以下)です。
DATE(y,m,d)で日付を作成し、">="&で演算子を付けます。- 月を扱うときは、タイムスタンプにも対応できるよう、翌日を厳密な未満条件にする上限(
"<"&DATE(...))を使います。 - 過去30日間のような相対期間には
TODAY()を使います。
これで複数条件の IFS ファミリについての学習は完了です。
=SUMIFS(C:C, B:B, F3, A:A, ">="&F1, A:A, "<"&F2)よくある質問
「条件関数で日付範囲を使う」レッスンは無料ですか?
はい。「条件関数で日付範囲を使う」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Excel Formulas Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Excel Formulas Academyコースには全4レッスンが含まれています。
「条件関数で日付範囲を使う」で何を学びますか?
期間内を合計またはカウントするための日付範囲条件を使います。 ブラウザで直接実行するハンズオンコードでExcel Formulas Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Excel Formulas Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのExcel Formulas Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「条件関数で日付範囲を使う」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このExcel Formulas Academyレッスンでコードを書いて実行できますか?
はい。すべてのExcel Formulas Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。