概要
「この日付が“開始〜終了の範囲内”に入っているか」を判定する最短ルートは、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に落とし込む。日時でも同じ設計で通用し、業務の条件付けがシンプルに安定します。
