如何计算

时间:2017-02-21 20:02:56

标签: excel

我的问题几乎与此问题相同:Calculating number of days between two dates dependent on month

但我的数据滚动了12个月,我需要在公式中添加额外的编码:

 =IFERROR(IF(AND(MONTH($D2)=F$1,MONTH($E2)=F$1),$E2-$D2,
 IF(MONTH($D2)=F$1,1+EOMONTH($D2,0)-$D2,
 IF(MONTH($E2)=F$1,$E2-DATE(YEAR($E2),F$1,1),
 IF(AND(MONTH($D2)
 F$1,MONTH($E2)>F$1),DAYSINMONTH(DATE(YEAR($D2),F$1,1)),0)))),0)

允许2018年2月的预订,例如,在自己的专栏中显示,而不是2017年2月的预订。

例如,我的数据可能包含:

John Smith,  arr 2/21/17  dep 2/18/17
& Matt Jones,  arr 2/21/18  dep 2/18/18

目前我建立文档的方式,它将显示2列“2”,即2月。我需要它在2月17日显示1,在2月18日显示1。

你能帮忙吗,谢谢你!

1 个答案:

答案 0 :(得分:0)

我花了一段时间来研究你正在寻找的东西,但这就是我认为你需要的东西。

我从头开始学习公式,所以我对你问题中的方法采取了不同的方法。

=IF(AND(A3<E3,D3<EDATE(A3,1)),IF(AND(A3>D3,E3>(EDATE(A3,1))),(E3-D3)-((E3-(EDATE(A3,1)))+(A3-D3)),IF(E3>(EDATE(A3,1)),(E3-D3)-(E3-(EDATE(A3,1))),IF(A3>D3,(E3-D3)-(A3-D3),E3-D3))),0)

您要检查的月份应作为日期输入,即该月的第1天。

Screenshot

工作原理

通过示例显示更容易

月份待检查日期01/02/2017

arr date:27/02/2017 dep date:02/03/2017

在月份结束时检查日期+ 1个月EDATE(01/02 / 2017,1)= 01/03/2017

是否比要检查的期间结束的停止日期?是

02/03/2017 - 01/03/2017 = 1(第一个值)

arr和dep日期之间的日子02/03/2017 - 27/02/2017 = 2(第二个值)

第二个值 - 第一个值= 1

示例计算仅描述arr和dep日期何时与要检查的期间的末尾重叠,但公式检查开始时的重叠以及整个要检查的期间是否重叠且arr日期为1月和在马尔河的日期。

第一个IF(AND(A3

我希望这个解释可以帮助你分开选择公式。