VLOOKUP 是 Excel 中一个非常实用的函数,用于在表格或区域中按行查找数据。它基于某一列中的值来搜索,并返回同一行中指定列的值。以下是 VLOOKUP 的详细用法和一些高级技巧:
基本语法
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
•lookup_value:要查找的值。
•table_array:包含数据的表格区域。
•col_index_num:返回数据所在列的列号(相对于 table_array 的第一列)。
•[range_lookup]:可选参数,指定查找方式:
•TRUE 或 省略 或 1 :近似匹配(查找小于或等于 lookup_value 的最大值)。
•FALSE 或 0 :精确匹配。
示例假设你有一个如下的表格(A1:D5):
A | B | C | D |
ID | Name | Age | City |
101 | 张三 | 25 | 北京 |
102 | 李四 | 30 | 上海 |
103 | 王五 | 28 | 广州 |
104 | 赵六 | 32 | 深圳 |
查找张三的城市
=VLOOKUP("张三", A2:D5, 4, FALSE)
•lookup_value = "张三"
•table_array = A2:D5
•col_index_num = 4
•[range_lookup] = FALSE
结果是 "北京"。
高级用法
1. 查找非首列的数据 如果你要查找的值不在表的第一列,可以结合其他函数使用 VLOOKUP。例如,查找 "李四" 的年龄:这里使用了 CHOOSE 函数重新排列列顺序,使 "Name" 列成为新的第一列。
=VLOOKUP("李四", CHOOSE({1,2}, B2:B5, C2:C5), 2, FALSE)
对于VLOOKUP,大家最困扰的就是怎么反着查,下面这个例子可以解决大家的疑惑。查找“李四”的ID,ID位于李四的前一列:
=VLOOKUP("李四", CHOOSE({1,2}, B2:B5, A2:A5), 2, FALSE)
2. 动态列索引 使用 MATCH 函数来动态确定 col_index_num。例如,查找 "李四" 的城市:
=VLOOKUP("李四", B2:D5, MATCH("City", B1:D1, 0), FALSE)
3. 处理错误值 使用 IFERROR 或 IFNA 函数来处理未找到的情况。例如,查找 "陈七" 的城市(如果不存在):
=IFERROR(VLOOKUP("陈七", A2:D5, 4, FALSE), "未找到")
4. 模糊匹配 当 range_lookup 为 TRUE 时,VLOOKUP 会进行模糊匹配,通常用于数值范围的查找。例如,查找分数区间:
=VLOOKUP(75, F2:G6, 2, TRUE)
其中 F 列是分数段,G 列是对应的等级。
注意事项:
•table_array 的第一列必须包含 lookup_value。
•col_index_num 必须大于 0 且不超过 table_array 的列数。
•当 range_lookup 为 FALSE 时,确保 lookup_value 在 table_array 的第一列中存在,否则会返回 #N/A 错误。