+-------+--------+-------+
| Col A | Col. B | Col C |
+-------+--------+-------+
| 1 | | |
+-------+--------+-------+
| 2 | | |
+-------+--------+-------+
| 3 | | |
+-------+--------+-------+
你想在 Sheet2 中查找值1,2,3等,它们可能如下所示:
+-------+--------+-------+
| Col A | Col. B | Col C |
+-------+--------+-------+
| 1 | | A |
+-------+--------+-------+
| 2 | | B |
+-------+--------+-------+
| 3 | | C |
+-------+--------+-------+
3 回答
这听起来像是
VLOOKUP
的工作说
Sheet1
上的数据如下所示:你想在
Sheet2
中查找值1,2,3等,它们可能如下所示:如果我正确理解了您的问题,您需要在
Sheet1
上的A列中查找值,并将Sheet2
列C中的相应匹配返回到Sheet1
的C列 .在
Sheet1
的C列中添加VLOOKUP
公式,如下所示:=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
lookup_value是您要查找的内容,在本例中是
Sheet1
列A中的值 .table_array是您要查找以查找lookup_value的单元格 . 使用此查找时,此table_array中最左侧的列将用作要匹配的列 . 在这种情况下它是
'Sheet2'!A1:C3
如果找到匹配项,则col_index_num是您要返回的相应列 . 在这种情况下,它是第3列 .
最后,如果您想要完全匹配,则[range_lookup]应设置为
FALSE
,如果您想要返回第一个近似匹配,则应设置为TRUE
.所以在这种情况下,我们要将
VLOOKUP
公式添加到Sheet1
的C列的第一行,如下所示:按Enter键以获得结果 . 将公式拖动到列的其余部分 .
几个笔记:
如果找不到
Sheet2
的C列中的匹配项,则该函数返回#N/A
错误,您可以使用IFERROR
函数处理该错误VLOOKUP仅返回
Sheet2
的C列中的第一个匹配项,如果有多个匹配项,则需要考虑调整查找以使其足够具体,以便每个查找只有一个对应的值您可以在MSDN上阅读有关VLOOKUP函数的信息,并查看一些教程here . 特别是MSDN文章的常见问题和最佳实践部分 .
同意kfitcher,不需要vba . vlookup的替代方法是索引/匹配,如下所示
=INDEX(Sheet2!C:C,MATCH(Sheet1!A2,Sheet2!A:A,0))
我认为你不需要VBA . 如果你想做我认为你想做的事情,请使用
将其放入C1(表1)中,然后将其复制下来 .
Documentation for VLOOKUP here.基本上,(Sheet1!A1)是你正在寻找的东西,而(3)是你从中获取信息的A:C(C列)范围内的列 . 如果由于某种原因,您在B或C列中的数据与A中的数据匹配(使VLOOKUP无用),您想要使用:
相反,它只搜索单个列 .
Tips for INDEX MATCH here.