0

这是我目前使用的公式:

=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公式不起作用)

提前致谢!

4

2 回答 2

4

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

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

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

这将消除#VALUE!错误,同时保持公式的基本结构不变

于 2014-03-30T15:56:57.393 回答
1

试试这个:

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

它给你同样的结果。

但是上面的公式是不稳定的。相反,我会使用下一个,例如B3

=SUMPRODUCT((($A$2:$A2)=$A3)*1)
于 2014-03-30T15:56:14.783 回答