【发布时间】:2011-12-16 21:01:05
【问题描述】:
我有一个查找,它根据特定单元格的值返回一个公式作为文本。
返回的公式(作为文本)如下所示:
SUM(INDIRECT("AF"&row()),INDIRECT("AG"&row()))
然后我使用EVALUATE() 函数计算公式,但由于使用INDIRECT() 而收到#REF 错误。
This Microsoft Support Page 是我能找到的关于这个特定问题的唯一参考,它似乎没有提供适当的解决方法。
我怎样才能:a) 重构公式以避免使用 INDIRECT,或 b) 让 EVALUATE() 玩得好?
编辑
查找表如下所示:
类型 A SUM(INDIRECT("AF"&row()),INDIRECT("AG"&row()))
B 类 SUM(INDIRECT("AF"&row()),INDIRECT("AG"&row()), INDIRECT("AH"&Row()))
在另一张纸上,单元格 B1:200 的内容是类型 A 或类型 B。查找会根据单元格的值返回公式字符串并将其放入 Bx。然后我评估字符串给我结果。
【问题讨论】:
-
您将 evaluate() 作为 XLM 宏的一部分,还是在工作表单元格中使用?
-
我实际上是在一个命名范围中使用它,然后我从一个单元格中调用它。
-
你能显示查找吗?不清楚 row() 的上下文是什么。我不确定您是否需要间接和评估,因为它们都具有相似的目的......
-
可能是
ROW根据它的参数返回一个array?也就是说,ROW()返回一个包含当前选定行号的单元素数组。ROW(a42:q99)返回 {42; 43; ...; 99}等。只是一个评论,因为我没有方便的Excel来处理这个...... -
@Tim,请使用查找表查看我的编辑。 INDIRECT 不计算公式,仅将文本解释为单元格引用。这就是为什么我需要两者。