如何在Excel中的同一工作表中使用VLookup
我有以下Excel数据:如何在Excel中的同一工作表中使用VLookup,excel,vba,vlookup,Excel,Vba,Vlookup,我有以下Excel数据: A B C 1 asdasd asdasd VLOOKUP("fg",$A$1:$A$11,2,FALSE) 2 asdasd dfgd 3 asdasd fghfgh 4 asdasd tryrty 5 asdasd 456456 6 asdasd 45456 7 asdasd 456456 8 fgddgh 46fgtfgh 9 fghfgh 46456 10
A B C
1 asdasd asdasd VLOOKUP("fg",$A$1:$A$11,2,FALSE)
2 asdasd dfgd
3 asdasd fghfgh
4 asdasd tryrty
5 asdasd 456456
6 asdasd 45456
7 asdasd 456456
8 fgddgh 46fgtfgh
9 fghfgh 46456
10 dfgdfg 456546
11 fghfgh 456456
在C
列中,我得到了一个#N/a
我希望实现的是,如果fg
在A列中,请在C列中显示B列的值
我怎样才能做到这一点呢?您只需更改为
VLOOKUP("fg",$A$1:$B$11,2,FALSE)
您得到的是#N/A
,因为VLOOKUP
中的“fg”
正在搜索精确匹配(即“fg”),而您的A列中没有
而是使用通配符。示例:
=VLOOKUP("fg",A2:B11,2,FALSE) //gets exact match
=VLOOKUP("*fg",A2:B11,2,FALSE) //matches when `fg` at the end e.g. `aaaafg`
=VLOOKUP("fg*",A2:B11,2,FALSE) //matches when `fg` at the start e.g. `fgaaaa`
=VLOOKUP("*fg*",A2:B11,2,FALSE) //matches when `fg` found in the entry e.g. `aafgaa`
您需要用if(iserror(vlookup()),“”,vlookup()括起您的vlookup 所以 =如果(iSeries错误(fg,A$1:$B$11,2,假)),“”,VLOOKUP(fg,A$1:$B$11,2,假)) 基本上,如果找不到fg,就会抛出一个错误。if(iserror())表示如果出现错误,则返回空白单元格。如果没有错误,(fg存在),则返回第2列
在当前表中,此函数将为所有行返回“”,因为它们都不是=“fg”。如果您想要包含任何内容,您可以使用其他人提到的通配符,但听起来您想要精确的命中率。是否要匹配
fg
的任何实例(例如,dfgdfg`是匹配项)或者只有当A列中的条目是fg
?只有fg,没有其他:)在这种情况下,根据A列中的示例,您将始终得到#N/A
,因为它们都不是唯一的fg
我将其用于单元格C,并且我仍然得到了#N/A
我将其用于第一行:=VLOOKUP(“fg”,A1:B11,2,FALSE)结果是46fgtfgh将其用于第一行:=VLOOKUP(“*fg*”,A1:B11,2,FALSE)
,结果是46fgtfgh
我想对A1和B1、A2和B2等每一行执行此操作。我改为:=VLOOKUP(“*fg*”,A$1:$B$11,1,FALSE)
我一直从A8/是中得到fgdgh
,因为这是VLOOKUP在A列中为`*fg*找到的第一个匹配项。你希望得到什么结果?要清楚,你希望fgdgh
是正确的匹配项吗?正如其他人提到的,如果你的查找区域只有1个宽度,你也不能引用第2列。因此,要返回第2列的值,需要将look范围扩大到$A$1:$B$11。