如何计算多年范围内的天数总和

How to calculate sum of days within range over multiple years

有没有办法计算特定年份某个范围内的天数?

例如,(我的列是员工、开始日期、结束日期,列 D-K=years 2009-2016)如果我的开始日期是 1/5/2008,结束日期是 6/9/2011,我想知道 2008 年、2009 年、2010 年和 2011 年在这些年之间经过了多少天。

我试过以下方法

=IF(ISNUMBER(SEARCH(D,$B2))=TRUE,(DATEDIF($B2,$C2,"d"))/30,0)

但只有 returns 最早年份范围内的天数总和,如果范围跨越多年,则不会分配随后年份的天数。

为什么要除以 30?

=DATEDIF(B2,C2,"d") 适合我。

这应该可以帮助您入门...它需要工作,但在此基础上继续前进。

=IF($B<DATE(D1,1,1), IF($C>DATE(D1,12,31), DATEDIF(DATE(D1,1,1),DATE(D1,12,31), "d"), DATEDIF(DATE(D1,1,1),$C,"d")),DATEDIF($B,DATE(D1,12,31),"d"))

获取两个日期范围之间重叠的标准公式是

=MAX(MIN(end1,end2)-MAX(start1,start2)+1,0)

See this reference for example

因此根据给定年份的情况对其进行调整

=MAX(MIN($C2,DATE(D,12,31))-MAX($B2,DATE(D,1,1))+1,0)