我正在尝试将VLOOKUP函数用于预定义和命名范围,因此,在每列中我将查找不同的Range,如下所示:
A B C D
1 41444 CARS VANS TRUCKS
2 41445 =VLOOKUP($A2,CARS,2,FALSE) =VLOOKUP($A2,VANS,2,FALSE) =VLOOKUP($A2,TRUCKS,2,FALSE)
CARS,VANS,TRUCKS是CELL RANGES的名称。
为了解决这个问题,我使用了
VLOOKUP($A2,INDIRECT(B1),2,FALSE)
但我得到#REF作为回答。
当我使用VLOOKUP($A2,VANS,2,FALSE)
时,我得到了正确的结果,但我想将table_array引用一个单元格(以防B1或C1或D1)。
有人可以帮我吗?
答案 0 :(得分:1)
你非常接近。替换:
=VLOOKUP($A2;INDIRECT(B1),2,FALSE)
与
=VLOOKUP($A2,INDIRECT(B1),2,FALSE)
答案 1 :(得分:1)
在两种情况下,您可能会收到#REF错误。
Vlookup函数定义方式如下:
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
在工作表中,您使用一列定义了Table_array
。在您尝试访问2列(Col_index_num
= 2)的同时。但是,如果你说它没有INDIRECT()
,那就不会打扰你了。
您正在使用动态命名范围([example])。对于此类命名范围,您无法使用INDIRECT()
。如何绕过它?检查例如Referencing Dynamic Named Range in Excel Formula
答案 2 :(得分:0)
您可以effectively
使用屏幕左上角的文本框命名范围(其中显示“B2”或单元格具有的任何坐标)。
选择整个列并在那里插入名称。
然后该名称在公式中有效。
答案 3 :(得分:0)
另一种方法:
将相同的公式从B2复制到D2。名为array
的范围显示在G1:J10中,但可以在不同的工作表上,甚至(有适当的附加参考)不同的工作簿。
编辑使用三个不同命名范围的第二个示例:
在这种情况下,B2:D2中的公式在第二个参数(显示VANS
)上有所不同。
答案 4 :(得分:0)
如果您遇到公式问题,请使用 评估公式 功能逐步完成公式,看看实际上导致问题的原因。
首先选择返回#REF错误的公式,然后在Excel中选择公式>评估公式。然后单击“评估”按钮,直到看到#REF错误。例如,如果您看到类似......
的内容VLOOKUP(2,#REF!,2,FALSE)
然后您知道您尝试引用的范围不存在或无效。要检查工作簿中定义的范围,请使用 名称管理器 (公式>名称管理器)并查找您希望看到的范围(在这种情况下,您将寻找名称为“CARS”的范围)。您可以在此处更新,然后再次检查公式。