计算两个日期之间的天数取决于月份

时间:2014-10-03 12:37:54

标签: excel-formula

我正在尝试创建一个公式,以便我可以计算每个客户酒店住宿的晚数。很容易。

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

如果抵达日期是2014年6月10日 B栏的出发日期是2014年7月13日 我需要C列以上的公式来计算与该月相关的夜晚/天数,即Junes(H列)为21天,7月为12(因为他们在第13天离开,因为它不是't&t; t计数)。其他月份列将不返回任何结果。

1 个答案:

答案 0 :(得分:0)

为了简单起见'清酒而不是" 1月" "二月"在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&lt;参考月份&lt; final_month then days =该月(正确年份)的所有日子