VLOOKUP按出现次数查找
原创作者 | 李锐
微信公众号 | Excel函数与公式(ID:ExcelLiRui)
个人微信号 | (ID:ExcelLiRui520)
VLOOKUP按出现次数查找
Excel查找引用函数VLOOKUP很多同学都喜欢用,但你知道吗?VLOOKUP虽然好用,还是存在很多致命短板的,比如当存在多个符合条件的数据时,VLOOKUP只能返回第一个。
当工作要求你按出现次数查找数据时,VLOOKUP基础用法就无能为力了,这时候应该怎么办呢?
今天要讲的就是遇到这种情况的解决方案,看完觉得好的,记得去底部点个好看再分享给朋友,我会根据大家的反馈调整发文内容及写法。
除了本文内容,还想全面、系统、快速提升Excel技能,少走弯路的同学,请从开头二维码或文末“阅读原文”进知识店铺。
效果展示
下图为某班级多次考试的学生成绩表,里面包含了每个学生的五次考试成绩。
统计要求如下:
1、按考试次数和学生姓名查找对应的成绩;
先看一下做好公式后的效果演示,选择第几次出现,就返回第几次考试的成绩。
(下图为gif动图演示)
用过VLOOKUP的同学都知道,直接写公式的话只能返回每个学生的第一个成绩,现在要求你按姓名出现次数自动查找对应的考试成绩,这时应该怎么办呢?
解决思路及方案
首先咱们一起来构建一下思路,当前案例要求按姓名和出现次数查找数据,目前的数据源还缺少什么?
这就自然想到了数据源中已有学生姓名,还缺少出现次数,那么如何利用已有条件构建出现次数?
构建出现次数,其实就是按姓名统计出现次数,这是一个计数统计需求,自然能想到COUNTIF函数是专门干这个的。
在原始数据左侧插入列,用于标识姓名的出现次数,在B2单元格输入以下公式。
=COUNTIF(C$2:C2,C2)
(下图为解决方案公式)
一句话解析:
COUNTIF(C$2:C2,C2)的关键在于混合引用的灵活使用,随着公式向下填充会依次变为COUNTIF(C$2:C3,C3)......COUNTIF(C$2:C16,C16),即引用区域的起始点不变,随着公式所在行不断向下扩展,从而统计了当前姓名是第几次出现的需求。
现在好了,不但有了姓名而且有了出现次数,可以根据双条件查找了,这里如果你不想写VLOOKUP公式时候再构建内存数组,可以再次把两个条件合并在一起。
所以我们继续插入列,用于放置联合条件,即出现次数&学生姓名
A2单元格公式如下
=B2&C2
一句话解析:
条件不足时,创造条件再写公式,这里的辅助列就为后续的查询提供了便利条件。
双条件联合查询公式
万事俱备只欠东风,联合条件已经构建完毕,就差一个查询公式了。
在H2单元格输入以下公式
=VLOOKUP(F$2&G2,$A$2:$D$16,4,0)
一句话解析:
这里的联合条件查询公式,使用F$2&G2作为VLOOKUP第一参数就是将出现次数&学生姓名,第二参数的查询区域是$A$2:$D$16,最左列也是出现次数&学生姓名的联合条件所在列,所以可以直接查找到所需的结果。