【VLOOKUP】基本用法和高级技巧,看这篇就够了,Excel根据一个值匹配一行数据

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 错误。

 

### 使用 VLOOKUP 函数进行一对多数据匹配Excel 中,`VLOOKUP` 函数本身并不支持直接的一对多查找操作。为了实现这一功能,通常需要结合其他辅助函数或方法来完成。 #### 方法一:使用 INDEX MATCH 组合配合 SMALL 函数 这种方法可以有效地处理一对多的情况,并且能返回多个符合条件的结果。以下是具体的实现方式: 假设有一个员工销售记录表,其中 A 列为姓名、B 列为部门、C 列为销售额。现在希望按部门个人查询所有对应的销售额。 1. **创建辅助列** 需要先建立一个辅助列用于唯一标识每一行数据组合。可以在 D 列输入如下公式并向下填充: ```excel =ROW(A1)-MIN(ROW($A$1:$A$10))+1+(B1-1)*COUNTIF($B$1:$B$10,B1) ``` 2. **构建查询区域** 接下来定义两个参数单元格 E1 (作为部门筛选条件) F1 (作为序号),然后利用下面的公式获取对应的结果: ```excel =INDEX(C:C,SMALL(IF(B:B=E1,D:D),F1)) ``` 这里需要注意的是上述公式的输入应当以数组形式确认(即按下 Ctrl+Shift+Enter),而不是普通的 Enter 键[^1]。 3. **动态展示结果** 用户可以通过改变 E1 的指定目标部门,调整 F1 来查看该部门内不同成员的具体业绩情况。 #### 方法二:借助 Power Query 或高级筛选 对于更复杂的需求或者大量数据集来说,Power Query 提供了一个更为直观的方式来进行一对多关联查询;而高级筛选则允许通过设置特定的标准快速定位所需信息。 这两种方案都提供了图形化界面指导用户轻松上手,无需编写复杂的公式即可达成目的。 ```python import pandas as pd # 假设 data 是包含原始数据框的对象 filtered_data = data[data['Department'] == 'TargetDept'] print(filtered_data[['Name', 'Sales']]) ``` 此 Python 代码片段展示了另一种思路——如果考虑迁移到 Pandas 库中处理,则可简化此类问题的操作流程[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑口罩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值