Excelで2つの時刻差が0〜3分ならReview表示する方法|IF・AND・TIMEで自動判定

勤務表やシフト表で「シフト開始時刻」と「休憩(食事)開始時刻」を入力していると、ほぼ同時刻(0〜3分差)で入ってしまう行が混ざることがあります。こうした行だけを自動で見つけて“Review”表示にするために、Excelの時刻計算の考え方から、実務で使いやすい判定式・応用例・よくあるつまずきまでまとめます。

目次

Excelで「2つの時刻の差が0〜3分ならReview」と判定する要件整理

まずは、式に落とし込む前に判定ルールを明確にしておくと、あとで修正が少なくなります。今回の要件は次のとおりです。

項目内容例(A=シフト開始 / B=休憩開始)
判定対象シフト開始時刻(A列)と休憩開始時刻(B列)の差A2=09:00、B2=09:02
Review条件差が0〜3分(同時刻も含む)0分〜3分 → Review
前提休憩開始時刻(B)がシフト開始時刻(A)より後(または同時刻)B2>=A2
表示したい結果TRUE/FALSEではなく文字列(“Review”など)Review / OK / 空欄

ここで重要なのは、「ANDだけだとTRUE/FALSEになる」ので、最終的に表示したい文言はIFで返す、という点です。

まず押さえる前提:Excelの時刻は「数値」

Excelの時刻は、見た目は「09:00」のように表示されますが、内部的には「1日=1」とする小数(シリアル値)で管理されています。だから、時刻同士を引き算すると“時間差”が数値として出ます。

表示(時刻)内部の考え方補足
00:0001日の開始
12:000.5半日=1/2
1分1/144024×60=1440分
3分3/1440TIME(0,3,0)でも表せる

この「分に直すなら×1440」という考え方が、差分表示(“○ min”)にもそのまま使えます。

基本形:0〜3分なら「Review」、それ以外は「OK」

もっともシンプルで、読みやすく、意図が伝わりやすいのが TIME関数で3分を表現するパターンです。A2にシフト開始、B2に休憩開始が入っている想定で、判定結果をC2に出す例を示します。

=IF(AND(B2>=A2,(B2-A2)<=TIME(0,3,0)),"Review: "&TEXT((B2-A2)*1440,"0")&" min","OK")

式の意味を分解すると次のとおりです。

式のパーツ役割意図
AND( … )複数条件をまとめる「前提」+「3分以内」を同時に満たすか
B2>=A2前提チェック休憩開始がシフト開始以降であること
(B2-A2)<=TIME(0,3,0)差が3分以内か判定0〜3分(同時刻含む)を拾う
IF(条件, “Review…”, “OK”)表示を分岐TRUE/FALSEではなく文字で返す
(B2-A2)*1440分へ換算「日」単位の差を「分」に変換

この式は、Review対象になったときに「Review: 2 min」のように差分も一緒に表示できるので、確認作業が一段ラクになります(レビューの優先度付けもしやすいです)。

「OK」ではなく空欄にしたい場合

「Reviewの行だけ目立てばいい」「OKは表示しないで一覧をスッキリさせたい」という運用も多いです。その場合は、IFの第3引数(条件に合わないときの表示)を空文字にします。

=IF(AND(B2>=A2,(B2-A2)<=TIME(0,3,0)),"Review: "&TEXT((B2-A2)*1440,"0")&" min","")

これで、問題がある(レビューしたい)行だけに文字が出る状態になります。フィルターで空欄を除外すれば、Review行だけを一瞬で抽出できます。

未入力(空白セル)があるときは空欄にする

実務では、A列やB列が未入力の行が混ざることがよくあります。未入力の行まで「OK」やエラー表示にしたくない場合は、最初に空白判定を挟むと安定します。

=IF(OR(A2="",B2=""),"",IF(AND(B2>=A2,(B2-A2)<=TIME(0,3,0)),"Review: "&TEXT((B2-A2)*1440,"0")&" min","OK"))

この形にしておくと、入力途中の段階でも表が汚れません。現場では「まず空白を弾く」が地味に効きます。

3分ではなく「2分以内」など、閾値を変える方法

「同時刻〜2分はReview」「3分は許容」など、運用ルールが変わることもあります。TIME関数を使っていると、閾値の変更が直感的です。

判定したい差条件部分の書き方読み方
0〜1分(B2-A2)<=TIME(0,1,0)1分以内
0〜2分(B2-A2)<=TIME(0,2,0)2分以内
0〜3分(B2-A2)<=TIME(0,3,0)3分以内
0〜5分(B2-A2)<=TIME(0,5,0)5分以内

「3/1440」でも同じことはできますが、TIME(0,3,0)のほうが見ただけで意図が伝わるので、引き継ぎや共同編集があるシートではTIMEがおすすめです。

差分の“分”表示をきれいに出すコツ

差分を分で表示するときに、想定外の小数(例:1.999999)や、秒が混ざった入力(例:09:00:30)が原因で表示がブレることがあります。そういうときは、分換算した値をROUNDで丸めると実務的に扱いやすいです。

分を四捨五入(整数)して表示する例

=IF(AND(B2>=A2,(B2-A2)<=TIME(0,3,0)),"Review: "&ROUND((B2-A2)*1440,0)&" min","OK")

切り捨てで表示する例(“2.9分”でも2分扱いにしたい)

=IF(AND(B2>=A2,(B2-A2)<=TIME(0,3,0)),"Review: "&INT((B2-A2)*1440)&" min","OK")

「判定は3分以内だけど表示は整数分にしたい」という要望は多いので、表示用の丸め(ROUND/INT)を覚えておくと便利です。

ANDだけだとTRUE/FALSEになる理由と、正しい使い分け

「式を入れたらFALSEが出た。失敗?」という相談はよくありますが、AND関数はそもそも 条件を評価してTRUE/FALSEを返す関数です。つまり、ANDだけをセルに入れればTRUE/FALSEが表示されるのが正常です。

やりたいこと使う関数戻り値
条件を満たすか判定したいANDTRUE / FALSE
文字を表示したい(Review/OK/空欄)IF + AND文字列(指定した表示)
条件付き書式で色を付けたいAND(またはOR)TRUEのときだけ書式適用

セルに文字を出すならIF、色を付けるだけならAND(TRUE/FALSE)をそのまま使う、という使い分けが鉄板です。

区切り文字が「カンマ」ではなく「セミコロン」の環境への対応

Excelの地域設定によっては、関数の引数区切りがカンマ(,)ではなくセミコロン(;)になることがあります。その場合は、式のカンマをセミコロンに置き換えます(内容は同じです)。

=IF(AND(B2>=A2;(B2-A2)<=TIME(0;3;0));"Review: "&TEXT((B2-A2)*1440;"0")&" min";"OK")

「式がエラーになるけど、どこが間違いかわからない」というときは、まず区切り文字が合っているかを疑うと解決が早いです。

時刻が計算できない原因は「文字列」扱いになっていることが多い

見た目が09:00でも、入力経路(コピペ、CSV取り込み、外部システム出力)によっては“文字列”として入ってしまうことがあります。文字列のままだと、引き算がうまくいかなかったり、意図しない結果になりがちです。

チェック方法(簡易)

  • セルの表示形式を「時刻」にしても見え方が変わらない
  • 左寄せになっている(標準設定の場合)
  • =ISNUMBER(A2) がFALSEになる

変換方法の例(TIMEVALUEで時刻へ変換)

もしA2やB2が文字列になっているなら、別列で次のように変換してから判定するのが安全です。

=TIMEVALUE(A2)
=TIMEVALUE(B2)

変換後の列(例:A列→D列、B列→E列)を使って、D2とE2で判定式を組むと安定します。CSV取り込みが多い現場ほど、このひと手間が効いてきます。

「休憩開始が翌日」など、日付またぎが混ざる場合の考え方

要件上は「休憩開始(B)がシフト開始(A)より後」という前提ですが、現場のデータは前提どおりに来ないことがあります。特に夜勤や日付またぎがあると、時刻だけ(00:10など)で入力されることで、BがAより小さく見えてしまうケースがあります。

たとえば、A=23:58、B=00:01(実際は翌日)のようなパターンです。時刻だけだと B<A になり、単純な (B-A) はマイナスになります。

日付またぎの差を「0〜24時間の範囲に収める」にはMODが便利

=MOD(B2-A2,1)

MOD(差,1) にすると、差がマイナスでも「1日を法として」正の差に戻せます。これを使って0〜3分を判定する例です(Review対象だけ表示し、未入力は空欄)。

=IF(OR(A2="",B2=""),"",IF(MOD(B2-A2,1)<=TIME(0,3,0),"Review: "&ROUND(MOD(B2-A2,1)*1440,0)&" min",""))

ただし、この式は「23時間50分差」なども正の値として扱うので、運用上“あり得ない差”まで拾う可能性があります。夜勤がある場合は、別途「差が数時間以上なら別エラー」などのルールも併用すると、レビューが現実的になります。

実務で強い:Review行を色付けする(条件付き書式)

「文字を出す」だけでなく、行ごとに色を付けて見落としを防ぐ運用は非常に効果的です。条件付き書式なら、ANDのTRUE/FALSEをそのまま活かせます。

例:行全体を薄い色でハイライトする

  • 適用範囲:A2:C1000(必要な範囲)
  • 条件付き書式の「数式を使用して…」を選択
  • 数式に次を入れる(列固定に注意)
=AND($B2>=$A2,($B2-$A2)<=TIME(0,3,0))

ポイントは、条件付き書式では「Reviewと表示する文字列」は不要で、TRUEになる条件だけを書けばよいことです。これでReview対象行が一目で見えるようになります。

集計・フィルターに強い「判定列」の作り方

レビュー運用を回しやすくするには、表示用の文言を整えるのもコツです。例えば「Review: 2 min」だと人間には親切ですが、集計(COUNTIF)では少し扱いづらいことがあります。その場合は、列を分けると管理がラクになります。

列内容おすすめ理由
C列判定(Review / OK / 空欄)フィルター・集計しやすい
D列差分(分)レビューの優先度付けができる

C2:判定だけ(Review / OK)

=IF(OR(A2="",B2=""),"",IF(AND(B2>=A2,(B2-A2)<=TIME(0,3,0)),"Review","OK"))

D2:差分(分)だけ(未入力は空欄)

=IF(OR(A2="",B2=""),"",ROUND((B2-A2)*1440,0))

こうしておけば、例えば「Reviewの件数」なら =COUNTIF(C:C,”Review”) のようにシンプルに集計できますし、ピボットテーブルでも扱いやすくなります。

さらに堅牢にする:エラー処理と“前提崩れ”の見える化

入力ミスが混ざることを前提にするなら、「Review/OK」だけでなく、前提を満たしていない行を別表示にするのもおすすめです。たとえば、休憩開始がシフト開始より前なら “Check” と出すようにすると、データ修正が早くなります。

=IF(OR(A2="",B2=""),"",IF(B2<A2,"Check",""))

上の式は単独でも使えますし、Review判定と組み合わせるなら次のようにできます。

=IF(OR(A2="",B2=""),"",IF(B2<A2,"Check",IF((B2-A2)<=TIME(0,3,0),"Review: "&ROUND((B2-A2)*1440,0)&" min","OK")))

「Reviewにしたい行」だけでなく、「そもそも前提が崩れている行」も見える化できるため、現場のメンテナンス負荷が下がります。

よくある質問:秒が入っていると3分以内なのに漏れる?

例えば、A=09:00:40、B=09:03:50 のように秒まで入っていると、見た目は“ほぼ3分”でも差分は3分10秒になり、(B-A)<=TIME(0,3,0) を満たしません。運用上「分単位で判断したい」なら、差分を分に直して丸めて判定する方法が有効です。

分に換算して四捨五入後、3分以内ならReview

=IF(OR(A2="",B2=""),"",IF(AND(B2>=A2,ROUND((B2-A2)*1440,0)<=3),"Review: "&ROUND((B2-A2)*1440,0)&" min","OK"))

「秒は無視してよい」運用なら、この形が事故が少ないです。逆に「秒まで厳密に管理したい」場合は、TIME(0,3,0)のままが適しています。

最後に:おすすめの結論(迷ったらこれ)

まずは「未入力は空欄」「前提はB>=A」「3分以内はReview」「差分(分)も表示」を満たす形が、現場で最も使われます。迷ったら次の式から始めるのがおすすめです。

=IF(OR(A2="",B2=""),"",IF(AND(B2>=A2,(B2-A2)<=TIME(0,3,0)),"Review: "&ROUND((B2-A2)*1440,0)&" min","OK"))

運用ルールが変わったら、TIME(0,3,0)の「3」の部分を調整するだけで柔軟に対応できます。さらに見落とし対策が必要なら、条件付き書式で同じ条件を使って色付けするのが効果的です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次