过去经常阅读后第一次提出问题。
我正在运行以下数组函数excel:
INDEX('Available Options'!$A$1:$CM$137,$B$1,
SMALL(
IF(
INDIRECT("'Feasibility Options'!"&ADDRESS($B$1,COLUMN('Feasibility Options'!$G$1),1,1)&":"&ADDRESS($B$1,COLUMN('Feasibility Options'!$O$1),1,1))=2,
COLUMN(INDIRECT("'Feasibility Options'!"&ADDRESS($B$1,COLUMN('Feasibility Options'!$G$1),1,1)&":"&ADDRESS($B$1,COLUMN('Feasibility Options'!$O$1),1,1)))),
ROW('Available Options'!1:1)))
这背后的想法是,在一个名为“可行性选项”的单独选项卡中,有许多单元格中有1s,2s或3s(1表示默认,2表示替代,3表示不活动),这些选项的价格保存在“可用选项”选项卡中。 $ B $ 1包含通过单独计算生成的行号。
在解析函数的间接部分时,评估此公式会给出值错误,但如果我用列号替换列号公式,则该函数可用,如下所示:
INDEX('Available Options'!$A$1:$CM$137,$B$1,
SMALL(
IF(INDIRECT("'Feasibility Options'!"&ADDRESS($B$1,7,1,1)&":"&ADDRESS($B$1,15,1,1))=2,COLUMN(INDIRECT("'Feasibility Options'!"&ADDRESS($B$1,7,1,1)&":"&ADDRESS($B$1,15,1,1)))),ROW('Available Options'!1:1)))
有人可以解释为什么会发生这种情况以及如何解决这个问题?理想情况下,我需要使用单元格引用而不是硬编码列号,因为我可能需要在以后添加更多列。
如果我错过了之前回复此类问题的帖子,感谢您提供的任何帮助和道歉。
答案 0 :(得分:1)
我还没有对此进行测试,但我怀疑问题是由返回数组的COLUMN
函数引起的(即使是单个值),有时Excel也无法处理此问题:
您通常可以通过COLUMN
或SUM
函数包裹MAX
来使其发挥作用,例如
MAX(COLUMN('Feasibility Options'!$G$1))
或使用COLUMNS
函数,例如
COLUMNS('Feasibility Options'!$G$1:G1)
可以拖动增量
更好的是用INDIRECT/ADDRESS
替换整个INDEX
部分,这应该更简单,更短,更有效。如果您有兴趣,我可以为您提供更多详细信息