在真实/虚假细胞参考的“SUMPRODUCT”公式中使用“INDIRECT”功能

时间:2014-03-30 15:40:50

标签: excel excel-formula excel-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公式不起作用)

提前致谢!

2 个答案:

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