プロが教える店舗&オフィスのセキュリティ対策術

セル内(A1セルとします)の時間帯が特定の時間帯(22:00-05:00)に含まれているかどうかを判定する関数を教えていただけますでしょうか。
A1セルの時間帯の表記は20:00-04:00、21:30-25:30、0:30-08:00、24:30-3:00など様々な表記が考えられます。
含まれているかどうかの判定のため、上記時間帯は全てOK。19:00-21:30や、5:30-9:00などはNGです。
よろしくお願いいたします。

A 回答 (3件)

こんばんは



考え方のみになりますが・・

時間帯を表現する際には、開始時刻<=終了時刻の形式にしておく方が何かと便利です。
また、入力された時間帯が24時間以上を表していないことが条件になります。
入力時間が「20:00-20:10」の場合に「1日と10分」を表すことはないという意味です。

その前提で、ご提示の例では深夜(=0:00)をまたぐ時間帯があるので、時刻を48時間表記に換算します。
入力値の開始時刻より終了時刻が小さい場合には、終了時刻に24時間を加算しておきます。
特定時間帯の「22:00-05:00」はあらかじめ「22:00-29:00」に読み替えておきます。
時刻の比較はエクセルのシリアル値を用いるのが便利ですので、以下はシリアル値での計算と考えてください。

>特定の時間帯(22:00-05:00)に含まれているかどうかを判定する~
「~に含まれている」とは完全に含まれているか否かということと解釈できます。
上記の読み替えができているとして、判定としては、
 ・入力開始時刻>=22:00
 ・入力終了時刻<=29:00
が同時に成立すれば、「入力時間帯は特定時間帯に含まれている」と判定できます。

「入力時間帯のうち特定時間帯に含まれる部分があるか否か」を判定したい場合は、もう少し複雑な計算が必要になりますが、準備処理(読み替え等)に関しては同じことが必要になりますね。
    • good
    • 0
この回答へのお礼

ありがとう

丁寧に回答いただきありがとうございました!

お礼日時:2024/02/28 16:07

①まず、元のデータを開始時刻と終了時刻に分解する。


 「hh:mm-hh:mm」のフォーマットになっている前提。
 「:」「ー」が別の文字だったり、時刻が正しい数値でなかったり…などがない。

②終了時刻が開始時刻より小さい場合は日付またがり(24:00を超えた翌日の時刻)と判断し、終了時刻に1を加える。

③開始時刻と終了時刻について、特定の時間帯の範囲かどうかを判定する(たんなる数値として比較)。

④「特定の時間帯」が何通りもある場合は、それぞれについて判定する。
「【Excel】セル内の時間帯が特定の時間」の回答画像3
    • good
    • 0
この回答へのお礼

ありがとう

たしかに特定の時間帯は色々でてきそうです。。
ご回答ありがとうございました!

お礼日時:2024/02/28 16:11

普通に文字列を分解して、それをシリアル値に置き換えたうえで比較するだけの事じゃないのかな。



シリアル値は「1900年1月1日 0時0分」を「1」としたカウント値です。
「24:30」は「1日+0:30」として扱われますので、普通に IF関数で比較可能になります。

ですので、

 AND(〇時〇分以上、▢時▢分以下)

のように比較してやればOK。


・・・余談・・・

ここは代わりに数式を作ってくださいと作業依頼する場所ではありません。

よほど面倒なことをしない限り自力でできるような疑問ですので、
具体的に数式を示すことはありません。
自力で作るためのアドバイスになります。
がんばれ。

なお、示したアドバイスをどうやったらできるのかが分からないなら、そのような質問をするようにしましょう。
例:
 文字列
 「20:00-04:00」
 を時間に分解する方法が分かりません。
など。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A