首页 > 解决方案 > 仅用于未来期间的两个日期之间按月计算天数的公式

问题描述

努力想出一个适用于此的公式(A1 - E4 中的数据)

StartDate   EndDate Jan Feb Mar
12/4/2018   4/20/2019   31  28  31
9/26/2018   1/30/2019   30  0   0
1/1/2019    3/31/2019   31  28  31
1/1/2015    3/31/2019   155 141 155

在单元格 C2 中,公式为:

=SUMPRODUCT(--(TEXT(ROW(INDIRECT($A2 & ":" & IF($B2="",TODAY(),B2))),"mmm")=C$1))

我想要做的是从总和中排除过去的日期,例如在第 4 行,Jan/Feb/Mar 应该是 31/28/31 并且不计算前几年。

有什么想法我哪里出错了吗?

标签: excel-formula

解决方案


为年份添加一个 chck:

(YEAR(ROW(INDIRECT($A2 & ":" & IF($B2="",TODAY(),$B2))))=YEAR(TODAY()))

并在 SUMPRODUCT 中相乘:

=SUMPRODUCT((YEAR(ROW(INDIRECT($A2 & ":" & IF($B2="",TODAY(),$B2))))>=YEAR(TODAY()))*(TEXT(ROW(INDIRECT($A2 & ":" & IF($B2="",TODAY(),$B2))),"mmm")=C$1))

在此处输入图像描述


一注:

INDIRECT 是易变的,每次 Excel 重新计算时都会重新计算。我更喜欢用 INDEX 替换它们:

=SUMPRODUCT((YEAR(ROW(INDEX($A:$A,$A2) :INDEX($A:$A, IF($B2="",TODAY(),$B2))))>=YEAR(TODAY()))*(TEXT(ROW(INDEX($A:$A,$A2) :INDEX($A:$A, IF($B2="",TODAY(),$B2))),"mmm")=C$1))

推荐阅读