
時間帯を 4 つの時間ゾーンに分割する方法を見つけたいと思います。つまり、機器が 0900 から 1700 まで 8 時間使用できない場合、これを 00 - 0400、0400 - 0800、0800 - 1200 などの 4 時間ごとに表示する必要があります。つまり、0800 - 1200 の時間帯に 3 時間、1200 - 1600 の時間帯に 4 時間、1600 - 2000 の時間帯に 1 時間、機器が使用できないことになります。機器は 24 時間を超えるどの時間帯でも使用できない可能性があります。現時点では、時間を手動で苦労して分割していますが、もっと簡単な方法があることを願っています。
答え1
実際にあなたが行った試みとその設定方法を示す必要があるにもかかわらず、私はこれに答えることにしました。
以下は私の設定です。From と to を列 A と B に入力すると、表示されているビンに分割されます。
セル C4 の数式は次のようになります。
=IF($B4>$A4,
IF(OR(AND($A4<C$2,$B4<C$2),AND($A4>C$3,$B4>C$3)),0,MIN($B4,C$3)-MAX($A4,C$2)),
IF(OR(AND($B4<C$2,$A4<C$2),AND($B4>C$3,$A4>C$3)),(C$3-C$2),(C$3-C$2)+(MIN($B4,C$3)-MAX($A4,C$2)))
)
または、セル名の場合は次のようになります。
=IF(FROM>TO,
IF(OR(AND(TO<BIN_FROM,FROM<BIN_FROM),AND(TO>BIN_TO,FROM>BIN_TO)),0,MIN(FROM,BIN_TO)-MAX(TO,BIN_FROM)),
IF(OR(AND(FROM<BIN_FROM,TO<BIN_FROM),AND(FROM>BIN_TO,TO>BIN_TO)),(BIN_TO-BIN_FROM),(BIN_TO-BIN_FROM)+(MIN(FROM,BIN_TO)-MAX(TO,BIN_FROM)))
)
内訳:
最初の if ステートメントは、それが 24 時間以内に発生するかどうか (To が from の後) をチェックします。そうでない場合は、次の日に折り返されている必要があります。
2 行目は、両方の時間がビンの範囲外 (両方とも小さいか両方とも大きい) かどうかをチェックします。範囲外である場合、このビンにはデータがありません。範囲外ではない場合、そこにデータがあります。開始値の最大値から終了値の最小値を引くと、ビン内にある時間の長さがわかります。
3行目は2行目と似ていますが、どれだけの時間が経過したかを調べます。ないビン内の全幅からこれを減算します。
答え2
「タイムゾーン」(ビン)内の時刻を表示するソリューションは次のとおりです。
(つまり、機器は 0900 から 1200、1200 から 1600、1600 から 1700 まで使用できません)。セル内の数式は次のとおりD5
ですD7
。
D5 = =IF(AND($B5>D$2,$B5<D$3), $B5, IF(AND($B5<D$2,$B6>D$2), D$2, ""))
D6 = =IF(AND($B6>D$2,$B6<D$3), $B6, IF(AND($B5<D$3,$B6>D$3), D$3, ""))
D7 = =IF(OR(D5="",D6=""), "", D6-D5)
説明:
=IF(AND($B5>D$2,$B5<D$3), $B5, …
– もしから時間(機器が利用できなくなる開始時間)がこのビン内にある場合は、から時間。… IF(AND($B5<D$2,$B6>D$2), D$2, …
– このビンの開始時刻が機器使用不可期間内である場合は、このビンの開始時刻を表示します。… ""))
– それ以外の場合は空白。
上で示したように、これは複数日にわたる機器の非稼働期間を直接処理するものではありません。ただし、明示的に設定することで動作させることができます。に翌日の到着予定時間: