【小记】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),"")
相关推荐
程序员敲代码吗4 小时前
Go语言中Channel的实现与内存通信机制详解
excel
时空自由民.8 小时前
vim入门配置教程
编辑器·vim·excel
_院长大人_10 小时前
Java Excel导出:如何实现自定义表头与字段顺序的完全控制
java·开发语言·后端·excel
Cloud_Shy61815 小时前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第十一章 Python 包跟踪器 下篇)
前端·后端·python·数据分析·excel
asdzx6716 小时前
使用 C# 打印 Excel 文档(详细教程)
c#·excel
vennnnnnnnnnnnnn16 小时前
Excel 导入原文保留与内联排名配置问题复盘
前端·数据库·excel
anlog17 小时前
Excel返回或设置边框、字体或内部颜色
excel·背景色
工具怪19 小时前
Excel 如何加水印?4种常见使用场景与操作步骤
excel
写了20年代码的老程序员2 天前
Excel 导入导出为什么总是把后端逼成字段搬运工
java·excel
Cloud_Shy6182 天前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第十一章 Python 包跟踪器 中篇)
数据库·python·sql·数据分析·excel·web