仅用于将来期间的两个日期之间按月计算天数的公式

时间:2019-01-02 19:20:43

标签: excel-formula

努力想出一个适用于此的公式(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))

我想做的是从总和中排除过去的日期,例如在第四行中,一月/二月/三月应为31/28/31,不计入前几年。

有什么想法我要去哪里吗?

1 个答案:

答案 0 :(得分:0)

为年份添加一个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))

enter image description here


一个注意事项:

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))