我更好地告訴你。這是我的名單看起來像:Excel - 自動生成日期列表,給出多個日期範圍在一列
而且這是我希望它是:
基本上,在第一張照片我有不同的日期範圍,每個日期範圍我有這兩個指標,會話和用戶,最終結果應該是將所有日期範圍擴大爲單個日期,考慮到某些日期可以包含在多個日期範圍內(例如日期2017-08- 12)包含在第一行和第二行中。最後但並非最不重要的是,結束日期不應該被計算在內。
有人可以幫我嗎?
萬分感謝
A.
我更好地告訴你。這是我的名單看起來像:Excel - 自動生成日期列表,給出多個日期範圍在一列
而且這是我希望它是:
基本上,在第一張照片我有不同的日期範圍,每個日期範圍我有這兩個指標,會話和用戶,最終結果應該是將所有日期範圍擴大爲單個日期,考慮到某些日期可以包含在多個日期範圍內(例如日期2017-08- 12)包含在第一行和第二行中。最後但並非最不重要的是,結束日期不應該被計算在內。
有人可以幫我嗎?
萬分感謝
A.
這是一個解決方案的概要:
LEFT
,RIGHT
和MID
)來提取年,月和日值的數字。這些仍然是字符串,所以使用VALUE
函數將它們轉換爲實際的數字,然後使用DATE
函數在Excel中將它們組合爲適當的日期值。 (您可能需要使用日期格式來格式化結果,因爲Excel將日期存儲爲自01/01/1900以來的天數,因此2017年8月11日在Excel中以42958的形式存儲。)添加與您一樣多的幫助列需要你的輸入表來實現這一點。A10>=E2:E7
這樣的表達產生6個元素的值與根據A10是否大於或等於 E2
,E3
,E4
,E5
,分別E6
和E7
TRUE
和FALSE
陣列。因此,您可以使用此方法生成一個數組,表示某個特定輸出日期是否大於或等於(即在或之後)每個範圍的開始日期。同樣,您可以獲得一個數組,顯示相同的輸出日期是否小於或等於(即在或之前)每個範圍的結束日期。SUMPRODUCT
函數將輸入表中的數組和相關會話/用戶值組合起來,以獲取輸出日期的相關值。例如,如果開始日期爲E2:E7
,結束日期爲F2:F7
,B2:B7
中的會話和A10
中的輸出日期,則確定歸屬於輸出日期的會話數的可靠公式爲=SUMPRODUCT(($A10>=$E$2:$E$7)*($A10<=$F$2:$F$7)*(B$2:B$7))
。可以複製此公式以給出所有輸出日期的結果,並且假設用戶的輸入數據在C2:C7
中,那麼如果將用戶的結果複製到與會話結果相鄰的列中,它還會爲用戶提供結果。在此公式中,TRUE
和FALSE
值分別有效地轉換爲1
和0
。有幾點:(i)如果您不知道Excel中日期的工作方式,那麼可以計算兩個日期之間的天數或特定前後n天之間的任務使用簡單的算術非常簡單; (ii)不要混淆看起來像日期的文本字符串和可以在Excel中以算術方式處理的日期; (iii)我相信您的示例中存在一些錯誤 - 2017年8月16日是您的兩個輸入範圍內的日期,並且應該具有(2,2)而非(1,1)和2017年8月17日的結果爲類似的錯誤。
我在下面的插圖中使用了這種方法,爲了測試它的健壯性,我添加了一行額外的輸入數據,其中會話與用戶不同,併產生一個日期(19/08/2017)匹配任何輸入範圍。產生
輸出時間範圍如下所示:
非常感謝DDM。它以某種方式工作,但是,您是否也知道如何自動生成輸出日期? 理想情況下,包含在不同範圍內的所有日期應在輸出日期 –
下列出如果此答案適用於您,請將其標記爲正確。 – DMM