这是我目前正在使用的公式:
=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
公式不起作用)
提前致谢!
答案 0 :(得分:4)
我不确定为什么你需要INDIRECT
而不是普通的单元格引用,但这里的具体问题是ROW
函数返回一个"数组",即使它返回单个值,例如它返回{" x"}而不仅仅是" x" - 在某些情况下,Excel无法处理。
尝试在ROW
函数中包装第二个SUM
函数 - 值不会改变,但它会删除数组,即
=SUMPRODUCT((INDIRECT("A2"):INDIRECT("A"&(ROW()-1))=INDIRECT("A"&SUM(ROW())))*1)
这将消除#VALUE!在保持公式的基本结构不变的情况下发生错误
答案 1 :(得分:1)
试试这个:
=SUMPRODUCT((($A$2:INDEX($A:$A,ROW()-1))=INDEX($A:$A,ROW()))*1)
它会给你相同的结果。
但上面的公式是不稳定的。相反,我会使用下一个,比如B3
:
=SUMPRODUCT((($A$2:$A2)=$A3)*1)