c语言查找符合条件,提取符合条件的多个结果,VLOOKUP足够了

原标题:提取符合条件的多个结果,VLOOKUP足够了

大名鼎鼎的VLOOKUP函数是表亲的好伙伴,遇到数据查询的时候,总离不开她。

但是VLOOKUP函数也有一定的局限性,通常情况下,只能返回符合条件的单个结果,如果有多个符合条件的结果,如何用VLOOKUP提取呢?

先来看一段动画吧:

bda270b3aec623453ff18497b653018f.gif

辅助列中用到的公式是:

=COUNTIF(B$2:B2,F$1)

提取结果的公式是:

=IFERROR(VLOOKUP(ROW(A1),A:C,3,0),"")

先简单说说辅助列中公式的意思:

用COUNTIF函数在B$2:B2这个区域内统计查询值(F1单元格)出现的次数。

这个B$2:B2是有讲究的,第一个B2是行绝对引用,第二个B2是相对引用,这样公式在向下复制时,就依次变成了B$2:B3、B$2:B4、B$2:B5……。

也就是随着公式向下复制,给COUNTIF函数指定一个逐行扩展的引用区域。

COUNTIF函数能够统计B列从B2单元格开始,到公式所在行这个范围中,与查询值相同的个数。

如果查询值在B列是第一次出现,结果就是1;如果是第二次出现,结果就是2……

假如只有两个符合条件的结果,查询值出现之后的其他内容,结果仍然是2.

ee06f0e5ad98c23d9cc22f6e49d9319d.png

再来说说查询用到的公式:

=IFERROR(VLOOKUP(ROW(A1),A:C,3,0),"")

公式中的ROW(A1)部分,公式向下复制时,依次变为ROW(A2)、ROW(A3)……,结果得到1、2、3……的递增序列。

VLOOKUP函数使用这个递增序列作为查询值,在A:C列中,以精确匹配的方式返回与序号相对应的姓名。

注意查找区域必须由辅助列A列开始哦,否则咱们的辅助列就白瞎了。

由于VLOOKUP函数默认只能返回第一个满足条件的记录,因此得到序号第一次出现的对应结果,也就是与F1单元格班级相同的对应姓名。

当ROW函数的结果大于A列中的最大的数字时,VLOOKUP函数会因为查询不到结果而返回错误值#N/A,IFERROR函数用于屏蔽错误值,使之返回空文本""。

怎么样,你理解了吗?还是那句话,光说不练假把式,动手试试吧。

GIF制作:看见星光 图文解说:老祝

ExcelHome经典图书,京东商城

满100减30

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值