如何在Excel中的同一工作表中使用VLookup

如何在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

我有以下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 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。