【发布时间】:2012-06-20 16:40:51
【问题描述】:
问题定义:
在单元格A1 中输入任意数字。现在在第一行的任意位置尝试以下公式。
=SUM(INDIRECT("A"&ROW()))
和
=SUMPRODUCT(INDIRECT("A"&ROW()))
第一个公式计算,第二个给出#VALUE 错误。
这是由ROW() 函数在SUMPRODUCT() 内部的行为不同引起的。
在第一个公式中,ROW() 返回1。在第二个公式中,行返回 {1}(一个长度的数组),即使该公式尚未作为 CSE 公式输入。
为什么会这样?
背景
我需要评估类型的公式
=SUMPRODUCT(INDIRECT(*range formed by concatenation and using ROW()*)>1)
这是一个错误。作为此问题的解决方法,我现在在另一个单元格中计算ROW()(显然在同一行中)并将其连接到我的INDIRECT() 中。或者,我也尝试将其封装在 sum 函数中,例如 SUM(ROW()),并且效果也很好。
如果有人可以解释(或指向可以解释的资源)为什么 ROW() 在没有输入 CSE 的情况下返回 SUMPRODUCT() 内的数组,我将不胜感激。
【问题讨论】:
标签: excel excel-2007 excel-formula excel-2003