【小记】excel vlookup一对多匹配

应用概述

应用场景:学生报名考试,需要整理成指定格式,发给考试院。
一个学生最多报考四门

格式实例:准考证号   姓名   科目1   科目2  科目3  科目4

原数据报名表:
在这里插入图片描述
最后得到结果:
在这里插入图片描述

操作

预处理数据

创建两个新excel表。
表1:将各sheet里的所有数据,复制进去
表2:将各sheet里的所有 准考证号数据,复制进去
注:姓名可能存在同名,准考证号是唯一的。
表2中操作:选中列,重复项,使得每个准考证号只出现1次。
在这里插入图片描述

计数指令 COUNTIFS

在表1中,
step1 准考证号左边插入一列,进行计数COUNTIFS,用于后面vlookup匹配使用。

COUNTIFS($B$1:B1,B1)
注意是$B$1 固定引用,COUNTIFS表示B1出现了第几次

在这里插入图片描述
step2 B1基础上加上次数

=B1&COUNTIFS($B$1:B1,B1)

在这里插入图片描述
将去除过重复项 的表2,复制进表1
在这里插入图片描述

进行一对多匹配 vlookup

=VLOOKUP($H1&1,$A:$E,5,0)

注意:是$H1,将H列锁定 $A$E
&1 :准考证号在 A到E列 第1次出现,	匹配第5列的数据(即科目)
&2 :准考证号在 A到E列 第2次出现,	匹配第5列的数据(即科目)
&3:准考证号在 A到E列 第1次出现,	匹配第5列的数据(即科目)
&4 :准考证号在 A到E列 第2次出现,	匹配第5列的数据(即科目)

补充:如果存在匹配不到的,默认使用空

=IFERROR(VLOOKUP($H1&1,$A:$E,5,0),"")

在这里插入图片描述

### 使用 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、付费专栏及课程。

余额充值