2014-10-03 85 views
0

我正在尝试创建一个公式,以便可以计算每个客户酒店入住的夜晚数。很简单。计算依赖于月份的两个日期之间的天数

但是在我的电子表格中,我有一年中有几个月的12列(列C以上),列A有到达日期,列B是出发日期。

如果到达日期是六月10日在B列2014 出发日期是2014年7月的 我需要在C列的公式开始计算夜/天是有关当月即Junes人数的13号(H列)为21天,7月为12(因为他们在第13天离开时不计算在内)。其他月份列将不会返回结果。

+1

我不知道我理解你的问题。要计算2个日期列之间的日期数,只需创建一个公式,该公式可以是A-B,它将计算日期的数量,与月份无关。 – ericpap 2014-10-03 13:29:35

回答

0

为simplicitys的缘故,而不是C1‘一月’,‘二月’等:N1我已经把只是数字(1-12)

我想这里既有开始的一年,完成日期是一样的(如果不是更多的编码,但你只提到12个月的列......)

我还假设我们正在开始日期在A2和完成日期在B2。

公式C2:

=IF(AND(MONTH($A2)=C1,MONTH($B2)=C1),$B2-$A2, IF(MONTH($A2)=C1,1+EOMONTH($A2,0)-$A2, IF(MONTH($B2)=C1,$B2-DATE(YEAR($B2),C1,1), IF(AND(MONTH($A2)<C1,MONTH($B2)>C1),DAYSINMONTH(DATE(YEAR($A2),C1,1)) ,0))))

拷贝/拖动到D2:N2

解释:

  • 如果开始和结束日期是在同一个月,才算不同的是,在月份编号匹配的列中使用。
  • 现在我们知道开始和结束的月份是不一样的。如果开始月份=参考月份,则天数将按last_day_of_month - start date(第一晚的+1)计算
  • 现在我们知道开始月份和结束月份并不相同,并且参考月份不是开始月份。如果参考月份是最后一个月份,则天数将为final_date - first_day_of_month
  • 如果以上都不是全部参考月份或者完全在我们的日期范围内或在其之外。如果START_MONTH <参考月份< final_month然后天=当月全部天(正确的一年)
相关问题