2017-04-06 119 views
1

我有兩列日期。一個是日期的移動,另一個是移出的日期。我想知道在第二個日期範圍內租戶有多少天在那裏。例如:7月份我們有多少個「牀位日」? 7/1/2016-7/31/2016總結一個日期範圍內落在第二個日期範圍內的天數

該函數計算每個租戶每個月在那裏的天數,但是如果我可以將整個計算放入一個單元格而不爲每個單元創建虛擬列月。

=MAX(0,MIN(EOMONTH($B$2,0),I14)-MAX($B$2,H14)) 

我試圖改變一些東西,並將其用作數組函數,但它不工作。我對數組函數非常陌生,所以我可能會完全錯誤。

=SUM(MAX(0,MIN(EOMONTH($B$2,0),I:I)-MAX($B$2,H:H))) 

任何幫助,非常感謝!讓我知道你是否還需要更多信息。

+1

'B','I','H'列中有什麼?你應該指定。 –

+0

抱歉,單元格「B2」是本月第一天我想要獲得總牀位天數。列「H」是日期的移動,「I」是移出日期。所有的日期都是簡寫爲「M/D/Y」,第一列包含日期或單詞「Active」 –

+0

Hi Mike,請你只需編輯你的問題以包含一些我們可以使用的虛擬數據和你想要的東西期望公式的結果是 – CallumDA

回答

1

不好的消息 - 你不能在這樣的數組公式中使用MAX和MIN,因爲我們不把H和I當作兩個數組,而只是將它們看作一個大的長數組,而你只能從中得到一個值。

您還需要將1添加到您的原始公式,因爲如果他們在每個月的最後一天移動(說),它仍然應該算作一天。

如果更換MAX和MIN與IF語句,你得到這樣的事情

=SUM(IF(IF(EOMONTH($B$2,0)<IF(I2:I10="Active",TODAY(),I2:I10),EOMONTH($B$2,0),IF(I2:I10="Active",TODAY(),I2:I10))-IF($B$2>H2:H10,$B$2,H2:H10)<0,0, 
IF(EOMONTH($B$2,0)<IF(I2:I10="Active",TODAY(),I2:I10),EOMONTH($B$2,0),IF(I2:I10="Active",TODAY(),I2:I10))-IF($B$2>H2:H10,$B$2,H2:H10)+1)) 

具有使用按Ctrl輸入移位輸入

enter image description here

如果你是數組新手,一個有用的提示是不要在數組fo中包含更多的行因爲它會很慢,並且首先在少量行上進行測試,這樣如果遇到麻煩,您可以使用「評估公式」逐步完成測試。

+0

謝謝你完美的作品! –

+0

謝謝,很高興它爲你工作。 –

+1

縮短公式的一種可能性是使用TEXT函數作爲「僞」MAX函數,將負值轉換爲零,這將減少IF的數量,例如, '= SUM(TEXT(IF(IF(I2:I10 = 「活動」,TODAY(),I2:I10)> EOMONTH(B2,0),EOMONTH(B2,0),IF(I2:I10 = 「活動」 ,TODAY(),I2:I10)) - IF(H2:H10> B2,H2:H10,B2)+1,「0;」「0」「」)+ 0)' –

相關問題