Excel関数 逆引き集 | 日付が範囲内か判定 → AND

Excel
スポンサーリンク

概要

「この日付が“開始〜終了の範囲内”に入っているか」を判定する最短ルートは、AND関数で上下の条件を同時に満たすかをチェックすることです。基本形は「=AND(開始<=対象, 対象<=終了)」。IFやFILTERと組み合わせればラベル化・抽出・集計の条件にもそのまま使えます。時間付きの日時でも同じ考え方でOKです。


基本の使い方

範囲内(包含)の判定

=AND(開始日 <= 対象日, 対象日 <= 終了日)

例(A2が対象、B2が開始、C2が終了):

=AND($B$2<=A2, A2<=$C$2)

TRUEなら範囲内、FALSEなら範囲外です。

判定をラベルにする

=IF(AND($B$2<=A2, A2<=$C$2),"範囲内","範囲外")

“以上/未満”で境界を変える(片側開区間)

  • 左端以上・右端未満:
=AND($B$2<=A2, A2<$C$2)
  • 左端超過・右端以下:
=AND($B$2<A2, A2<=$C$2)

具体例

日付一覧から“範囲内だけ”抽出(Microsoft 365)

=FILTER(A2:A200, AND($B$2<=A2:A200, A2:A200<=$C$2))

365のFILTERはブール配列を受け取れます。古いExcelならオートフィルタで同等設定が可能です。

レコード(複数列)を“範囲内だけ”抽出

=FILTER(A2:D200, AND($B$2<=A2:A200, A2:A200<=$C$2))

A列が日付、該当行を丸ごと抽出。

期間内の件数を数える

=COUNTIFS(A2:A200, ">="&$B$2, A2:A200, "<="&$C$2)

COUNTIFSならANDを使わず複数条件で同じ効果を得られます。


応用テンプレート

日時(時刻込み)でも同じ判定

開始日時・終了日時が時刻込みでも同じ式でOKです。

=AND($B$2<=A2, A2<=$C$2)

祝日除外の“営業日範囲”で判定(到達日ベース)

「到達日が営業日の範囲に入っているか」をNETWORKDAYSで補助的にチェックする例。

=AND($B$2<=A2, A2<=$C$2, NETWORKDAYS(A2, A2, $H$2:$H$50)=1)

範囲外を判定(NOTで反転)

=NOT(AND($B$2<=A2, A2<=$C$2))

エラーや空欄を許容(安全な判定)

開始・終了のどちらかが空欄なら判定を空にする例。

=IF(OR($B$2="", $C$2=""), "", AND($B$2<=A2, A2<=$C$2))

範囲内の売上合計(SUMIFS)

=SUMIFS($D$2:$D$200, $A$2:$A$200, ">="&$B$2, $A$2:$A$200, "<="&$C$2)

A列=日付、D列=売上。


よくあるつまずきと対策

表示形式と実値の違い

“yyyy/mm/dd”で見えていても、セルの中身が文字列だと比較できません。文字列の日付は DATEVALUE で日付型に変換してから判定してください。

境界の含み方を明確に

“含む(<=, >=)”か“含まない(<, >)”かを要件に合わせて選びます。締め日や開始日の扱いで誤集計が起きやすい部分です。

時刻付きの境界

終了が“その日の23:59:59まで”なのか“その日の00:00で締め”なのかで比較演算子が変わります。終了を 23:59:59 にするなら「=終了日+TIME(23,59,59)」を使います。

タイムゾーンや文字列フォーマットの揺れ

外部取り込みの日時は時差補正やフォーマット統一(DATEVALUE/TIMEVALUE、SUBSTITUTE/TRIM)が必要になることがあります。


例題

問題1: A2が“開始B2〜終了C2”の範囲内かをTRUE/FALSEでD2に表示してください(両端含む)。

=AND($B$2<=A2, A2<=$C$2)

問題2: A2が“開始B2以上・終了C2未満”の範囲に入っているかをE2に表示してください。

=AND($B$2<=A2, A2<$C$2)

問題3: A2:A200のうち“開始B2〜終了C2”に入る日付のみをF2から縦に抽出してください(Microsoft 365)。

=FILTER(A2:A200, AND($B$2<=A2:A200, A2:A200<=$C$2))

問題4: A列=日付、D列=売上。“開始B2〜終了C2”の期間内売上合計をE2に表示してください。

=SUMIFS($D$2:$D$200, $A$2:$A$200, ">="&$B$2, $A$2:$A$200, "<="&$C$2)

問題5: 開始日時B2、終了日時C2、対象日時A2。開始・終了が空なら空欄、そうでなければ範囲内/外をラベルでG2に表示してください。

=IF(OR($B$2="", $C$2=""), "", IF(AND($B$2<=A2, A2<=$C$2),"範囲内","範囲外"))

まとめ

“日付が範囲内か”は AND で上下の比較を同時に満たすかを判定するのが最短です。包含/非包含の境界を明確にし、文字列日付はDATEVALUEで正規化、抽出や集計はFILTER/COUNTIFS/SUMIFSに落とし込む。日時でも同じ設計で通用し、業務の条件付けがシンプルに安定します。

タイトルとURLをコピーしました