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

时间:2017-02-07 17:29:19

标签: excel search range datediff date-range

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

例如,(我的列是员工,开始日期,结束日期,列DK = 2009-2016年)如果我的开始日期是1/5/2008,我的结束日期是2011年6月9日,我想要了解这些年间在2008年,2009年,2010年和2011年经过的天数。

我尝试了以下

package bashutil import ( "fmt" "github.com/nsf/termbox-go" ) func Center(s string) { if err := termbox.Init(); err != nil { panic(err) } w, _ := termbox.Size() termbox.Close() fmt.Printf( fmt.Sprintf("%%-%ds", w/2), fmt.Sprintf(fmt.Sprintf("%%%ds", w/2+len(s)/2), s), ) }

但是只返回最早年份范围内的天数总和,并且如果范围跨越多年,则不会分配接下来几年的天数。

2 个答案:

答案 0 :(得分:1)

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

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

See this reference for example

如此适应你年龄的情况

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

enter image description here

答案 1 :(得分:0)

为什么要除以30?

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

enter image description here

这应该让你开始......它需要工作,但建立在此之上,你应该在路上。

enter image description here

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