使用“SUMPRODUCT”公式中的“INDIRECT”函数进行真/假单元格引用

这是我目前使用的公式:

=SUMPRODUCT((INDIRECT("A2"):INDIRECT("A"&(ROW()-1))=A359)*1) 

它工作得很好,但我想用它来代替:

 =SUMPRODUCT((INDIRECT("A2"):INDIRECT("A"&(ROW()-1))=INDIRECT("A"&(ROW())))*1) 

不幸的是我得到了一个#VALUE! 。 我究竟做错了什么? INDIRECT("A"&ROW(()))A359返回相同的值,所以我不知道为什么这不起作用。

我不使用一个简单的COUNTIF函数的原因是因为我剥离了我所有不必要的组件的公式,只留下了我有麻烦的部分(即我需要使用SUMPRODUCT公式和COUNTIF公式不起作用)

提前致谢!

我不知道为什么你需要INDIRECT而不是普通的单元格引用,但是这里的具体问题是ROW函数返回一个“数组”,即使它返回一个单一的值,例如返回{“x”}而不是“x “ – 在某些情况下,Excel无法处理。

尝试在SUM函数中包装第二个ROW函数 – 值不会改变,但它会摆脱数组,即

=SUMPRODUCT((INDIRECT("A2"):INDIRECT("A"&(ROW()-1))=INDIRECT("A"&SUM(ROW())))*1)

这将消除#VALUE! 同时使您的配方基本结构保持不变

试试这个:

 =SUMPRODUCT((($A$2:INDEX($A:$A,ROW()-1))=INDEX($A:$A,ROW()))*1) 

它给你相同的结果。

但上面的公式是波动的。 相反,我会使用下一个,在B3说:

 =SUMPRODUCT((($A$2:$A2)=$A3)*1)