2017-06-29 18 views
1

この質問のタイトルについて申し訳ありません、私はそれを表現するより良い方法を考えることができませんでした。与えられた時間範囲を越える発生の回数

私は

08すなわち、時間の列をそれに範囲があります:45-17:00

06:00〜10:30

09:10-14:30

08:15-16:50

10:15-17:15

15:30-20:10

09:30-13:10

など

何が必要なの比較時間帯を横断それらの発生回数です。たとえば、比較範囲が11:00-15:00の場合、カウントには次の列のいずれかを含める必要があります。 -

(1) 11時00分と午後3時

OR

(2)との間で、開始時刻または終了時刻を有しています。 11:00前に開始し、15:00以降に終了します。数上記の例で

は5

だろうこの式は正しい結果与えます(0または1)個々のエントリのために:

=sum(if(or(and(mid(I14,7,5)>"15:00",mid(I14,1,5)<"11:00"),and(mid(I14,1,5)>"11:00",mid(I14,1,5)<"15:00"),and(mid(I14,7,5)>"11:00",mid(I14,7,5)<"15:00")),1,0)) 

ことを書いて、よりエレガントな方法は、おそらくあります!

このコードの周囲に配列形式をラップすることは機能しません。

ご迷惑をおかけして申し訳ございません。前もって感謝します。

これはエドの式(THX ED)

= ARRAYFORMULA(COUNTA(フィルタ(H9のGoogleSheetsバージョンである:H44、又は(及び(左(H9:H44,5)< = "11:00" 、左(H9:H44,5)> = "11:00"、左(H9:H44,5)< = "15:00 (H9:H44,5)> = "11:00"))))))))))))))))

これは、Filter doesnエントリの有無にかかわらず、結果として常に1を返すので、「と同じように使用する」、「と」、「または」

答えて

0

私はこれがあなたの望むことを信じています。 countaとfilterを使います。 '+'はおよびであり、 '*'はおよびである。私はA1:A7に日付範囲を入れて、あなたの範囲に合わせます。

=arrayformula(COUNTA(FILTER(A:A ,(((right(A:A,5)>"15:00")*(left(A:A,5)<"11:00"))+(((left(A:A,5)>"11:00")*(left(A:A,5)<"15:00")))+(((left(A:A,5)>"11:00")*(LEFT(A:A,5)<"15:00")))+((right(A:A,5)>"11:00")*(RIGHT(A:A,5)<"15:00")))))) 
関連する問題