具有预定义和命名范围的Vlookup
我试图使用VLOOKUP函数来预定义和命名的范围,所以,在每一列我会寻找一个不同的范围,如下所示:
ABCD 1 41444 CARS VANS TRUCKS 2 41445 =VLOOKUP($A2,CARS,2,FALSE) =VLOOKUP($A2,VANS,2,FALSE) =VLOOKUP($A2,TRUCKS,2,FALSE)
凡汽车,运输车,卡车是名义的电池范围。
为了解决这个问题,我用了
VLOOKUP($A2,INDIRECT(B1),2,FALSE)
但我有#REF作为答案。 当我使用VLOOKUP($A2,VANS,2,FALSE)
我得到了正确的结果,但我想引用table_array一个单元格(如果是B1或C1或D1)。 任何人都可以帮助我吗?
你非常接近。 更换:
=VLOOKUP($A2;INDIRECT(B1),2,FALSE)
同
=VLOOKUP($A2,INDIRECT(B1),2,FALSE)
在两种情况下你可以得到#REF错误。
-
Vlookup函数是这样定义的:
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
在你的工作表中,你用一列定义了
Table_array
。 在同一时间你试图访问2列(Col_index_num
= 2)。 但是如果你说它没有INDIRECT()
,它不会打扰你。 -
您正在使用dynamic命名范围( [示例] )。 对于这种types的命名范围,您不能使用
INDIRECT()
。 如何绕过它? 检查例如在Excel公式中引用dynamic命名范围 。
您可以使用屏幕左上方的文本框(其中显示“B2”或单元格的任何坐标) effectively
命名范围。 select整个列并在那里插入名称。
那么这个名字在公式中是有效的。
另一种方法:
相同的公式从B2复制到D2。 名为array
的范围显示在G1:J10中,但可以位于不同的工作表上,甚至可以(具有合适的附加引用)工作簿。
编辑使用三个不同命名范围的第二个示例
在这种情况下,B2:D2中的公式在它们的第二个参数(所示的VANS
)中不同。
任何时候你有一个公式的问题,使用评估公式function来逐步通过公式,看看实际上是什么造成的问题。
首先select返回#REF错误的公式,然后在Excel中select“ 公式”>“评估公式” 。 然后单击评估button,直到看到#REF错误。 对于你的例子,如果你看到像…
VLOOKUP(2,#REF!,2,FALSE)
那么你知道你试图引用的范围不存在,或者是无效的。 要检查工作簿中定义的范围,请使用“ 名称pipe理器” (“ 公式”>“名称pipe理器” )并查找您期望看到的范围(在这种情况下,您将查找名称为“CARS”的范围)。 你可以在这里更新它,然后再次检查公式。