我有两张数据,匹配的数据位于不匹配的行中。
在一张纸上,我有一个值列表。
另一方面,我有一个与第一张纸上的行号相对应的数字列表,其中包含要自动复制到第二张纸上的匹配值。
这是我的代码:
=INDIRECT("'Combined ICME+ipShocks List'!"&(INDIRECT("A"&H3)))
因此,它应指向名为“ Combined ICME + ipShocks List”的工作表上的A列单元格,该行由当前工作表上的单元格H3确定。
用一个简单的单元格(例如H3)替换我为第二个Indirect()编写的内容,因此我怀疑它与我编写的第二个Indirect()有关。
最佳答案
要回答为什么会引发错误的问题:
间接需要一个解析为单元格地址的文本值。
在您的公式中,您嵌套了两个Indirect()函数。
内部的间接寻址将解析为像A1
这样的单元格引用(作为引用,而不是文本)。然后,您将该单元格引用与字符串连接起来,并将其提供给外部Indirect()。这就是导致错误的原因。间接期望一个字符串。您要给它提供一个与单元格引用串联在一起的字符串,这不是任何函数都可以理解的组合。
如果只在字符串常量中包含列字母,则根本不需要内部的间接寻址。
=INDIRECT("'Combined ICME+ipShocks List'!A"&H3)
请注意,Indirect是易失的,每当单元格发生变化时,都会导致重新计算工作簿。这会使您的工作簿变慢。间接使用应该非常谨慎。在这种情况下,如吉普(Jeeped)在对您的问题的评论中所建议的,可以改用索引。
=INDEX('Combined ICME+ipShocks List'!A:A,H3)
由于您知道工作表名称和列,因此只有行号才是变量。在这种情况下,间接是过大的。仅当需要使用公式构造图纸名称时,才使用“间接”。
关于excel - 嵌套的Indirect()函数返回#REF,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42331215/