我建議使用輔助列,與列標題被分配爲總計將2015年,即至2016年
來計算這些年來我增加了一個額外行的數據,以確保它在時間不是一整年的情況下工作。
重疊區域是兩個日期範圍的較高端減去兩個日期範圍較低端的較小者。如果結果是否定的,則不存在重疊,結果應該設置爲零。這爲從E2開始的每一行產生以下公式: -
=MAX((MIN(DATE(E$2,12,31),$C3)-MAX(DATE(E$2,1,1),$B3))+1,0)
其中第一列標題在E2中。
但是,使用問題中提供的數據,這會產生一個不精確的答案,因爲在一年中的第二個6個月中的天數比第一個月中的第一個月還多。
如果您在使用下列公式整整兩個月的工作,你可以得到一個確切的答案: -
=MAX((MIN(E$2*12+12,YEAR($C3)*12+MONTH($C3))-MAX(E$2*12+1,YEAR($B3)*12+MONTH($B3)))+1,0)
然後在G3制定出完全重疊每個時間段: -
=E3+F3
並計算支出的比例爲X年的重疊/重疊H3: -
=$A3*E3/$G3
該方法可以很容易地擴展到任意日期範圍,而不僅僅是整年。 (必須用Ctrl-Shift鍵,回車進入)
這裏是一個數組公式,這將 - :
工作的天數: -
工作幾個月一步完成計算,但似乎相當長。在生產版本,$ C3:$ C6將由$ C所取代:$ C等: -
=SUM(IF(IF(E$2*12+12<YEAR($C3:$C6)*12+MONTH($C3:$C6),E$2*12+12,YEAR($C3:$C6)*12+MONTH($C3:$C6))-IF(E$2*12+1>YEAR($B3:$B6)*12+MONTH($B3:$B6),E$2*12+1,YEAR($B3:$B6)*12+MONTH($B3:$B6))+1>0,IF(E$2*12+12<YEAR($C3:$C6)*12+MONTH($C3:$C6),E$2*12+12,YEAR($C3:$C6)*12+MONTH($C3:$C6))-IF(E$2*12+1>YEAR($B3:$B6)*12+MONTH($B3:$B6),E$2*12+1,YEAR($B3:$B6)*12+MONTH($B3:$B6))+1,0)*$A3:$A6/(YEAR($C3:$C6)*12+MONTH($C3:$C6)-YEAR($B3:$B6)*12-MONTH($B3:$B6)+1))
這兩種方法(輔助列和陣列式)將給出落在部分日期範圍不同的結果例如2015年和2016年以外1/7/14-30/6/15將把2015年的全部數額作爲第一種方式,但只有一半是第二種方式。
1.這是否需要在Excel和表格中都可以使用,或者它們可以是其中一種嗎? 2.你能解釋爲什麼它不應該超過175歐元,略低於375歐元,因爲150歐元的金額包括2015年的7個月和2016年的5個月。 – AdamL 2015-02-23 22:27:01
@AdmL對不起,你當然是對的。我已經確定了日期範圍。它應該在谷歌電子表格(在我的情況)。我已經添加了其他工具,因爲我認爲解決這個任務可能有相似之處。 – awenro 2015-02-24 07:47:31
我已經草擬了一個答案,但如果你在幾天內工作,你不會得到確切的結果。你能否假設你會一直工作整個月? – 2015-02-24 12:09:53