2014-06-24 62 views
1

我有一個數據集,列B中的開始時間和列C中的結束時間。我正在使用一個產品公式(=SUMPRODUCT(($B2<"07:00")*($C2>="07:59")))來確定start/end時間是否落在範圍內時間範圍(i.e. 07:00 to 07:59, 08:00 to 08:59, etc.)。在sumproduct公式中,時間就是例子(我會用數字格式填充那些時間)。開始/結束時間落在範圍內(並且跨越午夜)

我以前見過這個sumproduct,它已經過測試和測試,但我還沒有找到一個公式來完成這一切,並且說明了如果開始時間是在午夜之前,但結束時間是在午夜之後。

該數據集適用於從頭到尾運行的事件,並且我最終希望如果事件在任何給定時間間隔內運行,則通過放置0/1來確定事件的運行時間範圍。

我對日期的唯一修復是應用sumproduct公式,然後過濾出現在午夜之間並相應地調整公式的事件。

任何幫助,這將不勝感激。預先感謝您的時間。

回答

0

首先我不認爲你需要sumproduct,因爲你沒有處理任何需要總結的範圍,所以你可以將你的公式縮短到($B2>"07:00")*($C2<="07:59")。注意我也反轉了標誌,所以它實際上是在7:00-7:59之間,除非07:00和07:59都存儲在一個單元中,否則公式將不起作用,因爲正如它將數字與一個數字進行比較文本字符串並且不會返回正確的值。

爲您的實際問題,你需要一個第二部分的功能

=if(end<start,(B2<end)+(B2>start),(B2>start)*(B2<=end)) 

如果結束時間小於開始時間假設它會過了午夜所以你的時間需要或者之後開始時間或在結束時間之前。如果它不在午夜左右,它們必須在兩者之間。

+1

好點我甚至沒有檢查原始公式是否工作,因爲我通常會將值存儲在單元格中。我想這應該是B2> 7/24的功能。 – gtwebb

+0

感謝您花時間爲我解決這個問題。 – user3772147

0

考慮使用一個半開區間[Start,End)這樣,你的範圍是07:00至08:00,08:00至09:00,等

  • 這有不一樣跳過值的優勢7點59分30秒。

  • 它還可以讓你做簡單的減法得到1小時而不是59分鐘的持續時間範圍。

  • 比較反對使用<=>=範圍的開始(取決於你如何表達),但比較反對使用<>範圍的結束。

  • 對於跨越午夜的僅限時間範圍,您可以測試該值是在開始之後還是在結束之前下降。

這是一個完整的公式。根據需要替換[start],[end][value]

=IF([start] <= [end], AND([start] <= [value], [value] < [end]), OR([value] >= [start], [value] < [end])) 
+0

感謝您花時間爲我解決這個問題。 – user3772147

相關問題