如何计算多年范围内的天数总和
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)
有没有办法计算特定年份某个范围内的天数?
例如,(我的列是员工、开始日期、结束日期,列 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)