在 Excel(或 Numbers)中,什么公式可以计算两个日期中某个月份的天数

在 Excel(或 Numbers)中,什么公式可以计算两个日期中某个月份的天数

如果客人于 8 月 24 日抵达,并于 9 月 4 日离开,那么使用什么公式来计算 8 月份住了多少晚,9 月份住了多少晚?

答案1

下面是按月份夜数划分的表格,无论包含多少个月:
在此处输入图片描述

请注意,即使第一行仅出现月份名称,这些实际上也是日期:月份的第一天格式化为仅显示月份名称(“mmmm”)

表中公式为:
=NOT(OR(D$1>$B2,EOMONTH(D$1,0)<$A2))*(MIN(EOMONTH(D$1,0)+1,$B2)-MAX(D$1,$A2))

  • NOT(OR(D$1>$B2,EOMONTH(D$1,0)<$A2))是决定当前停留时间和月份是否重叠
  • MIN(EOMONTH(D$1,0)+1,$B2)-MAX(D$1,$A2)停留时间

计算方式与我在酒店中发现的一样:夜晚计算到前一天(第 4 行是 8 月份的一晚),一天的住宿不算作一晚(见第 5 行)

答案2

假设抵达日期是A1并且退房日期是B1那么C1您必须输入:

=IF(EOMONTH(A1,0)<B1,CONCATENATE((EOMONTH(A1,0)-A1)," and ",B1-A1-(EOMONTH(A1,0)-A1)-1),B1-A1)

解释:

IF ( 
    EOMONTH(A1,0)<B1 //If last day of month of arrival is before the checkout date then
        CONCATENATE( //concatenate days of first month "and" days of next month
                     (EOMONTH(A1,0)-A1),
                     " and ",
                     B1-A1-(EOMONTH(A1,0)-A1)-1
                    )
        B1-A1 //Else, simply substract checkout date from arrival date. 

相关内容