我需要计算 Excel 中两个日期之间的月数。
如果开始日期的天数小于 2,则本月计为 1。 如果开始日期的日期大于或等于 2,则本月不计算在内。
开始日期是用户指定的任何日期。结束日期始终为 31.12.2023。
如果开始日期为 01.05.2023,则月数为 8(因为 5 月 1 日小于 2) 如果开始日期为 02.08.2023,则月数为 4(因为 8 月 02 日大于(或等于)2)。
公式:
=IF(DAY(A1)<2; (IF(DAY("31.12.2023") >= DAY(A1); (YEAR("31.12.2023") - YEAR(A1)) * 12 + MONTH("31.12.2023") - MONTH(A1) + 1; (YEAR("31.12.2023") - YEAR(A1)) * 12 + MONTH("31.12.2023") - MONTH(A1))); IF(DAY("31.12.2023") >= DAY(A1); (YEAR("31.12.2023") - YEAR(A1)) * 12 + MONTH("31.12.2023") - MONTH(A1) + 1; (YEAR("31.12.2023") - YEAR(A1)) * 12 + MONTH("31.12.2023") - MONTH(A1))-1)
它有效,但是这个公式相当庞大。是否可以简化或使用更有效的方法? (我无法使用 DateDif,因为我们的 Office 版本不支持此功能。我不能使用 VBA 宏。
事实证明,大多数 Excel 版本都支持 DateDif。只是提示不显示。
在DateDif的帮助下:
=IF(DAY(A1)<2; DATEDIF(A1; $E$1; "m")+1; DATEDIF(A1; $E$1; "m"))
其中 $E$1 设置为“31.12.2023”或任何其他日期。