您好,欢迎来到九壹网。
搜索
您的当前位置:首页【Excel函数篇】用VLOOKUP函数提取符合条件的多个结果~

【Excel函数篇】用VLOOKUP函数提取符合条件的多个结果~

来源:九壹网


【Excel函数篇】用VLOOKUP函数提取符合条件的多个结果~

本文包含两部分内容。第一部分,借助辅助列,VLOOKUP函数提取符合条件的多个结果。第二部分,不借助辅助列,VLOOKUP函数依然可以提取符合条件的多个结果。

1,提出问题VLOOKUP函数是Excel中最常用最简单的条件查询函数,号称函数世界中的大众情人(不明白大众情人意思的亲们返回看本文的封面)。它有两个众所周知的特点,查找值必须要在查找范围的首列;以及它只提取查询范围中符合条件的首个查询结果。但在实际工作中,我们常常面临这样一个问题:查询符合条件的结果并非一个,而是多个或一个。此时如果依然使用VLOOKUP函数,怎么处理哩?举个栗子,如下图所示,根据A1:C10单元格区域的数据,计算A13人员的考核分结果,结果可能是多个,也可能是一个,例如看见星光。

2,辅助列解法首先,我们在A列前面插入一列,作为辅助列。A2单元格输入以下公式,并向下复制填充。=B2&COUNTIF(B$2:B2,B2)公式计算后的结果如下:COUNTIF函数用于计算指定单元格范围内某个值的重复次数。COUNTIF(B$2:B2,B2),计算B2在B$2:B2区域中的重复次数。由于查询范围的开始行是绝对引用(B$2锁死),结束行是相对引用(B2开放),因此当公式复制向下填充时,COUNTIF的查询范围不断扩展,例如B$2:B3、B$2:B4……以此对重复值形成重复次数累加计数的结果。

=B2&COUNTIF(B$2:B2,B2),在COUNTIF函数计算结果的前面加上人员姓名,意思就是每个姓名重复的次数,使之成为独一无二的标识。辅助列构建完成后,在C13单元格使用以下VLOOKUP函数,即可得到结果。

=VLOOKUP($B13&COLUMN(A1),$A$1:$D$10,4,0)VLOOKUP的查找值是

$B13&COLUMN(A1),公式横向填充后,意思就是在$A$1:$D$10的单元格范围内,查找看见星光重复1次的结果,看见星光重复2次的结果……如果需要屏蔽公式错误值,可

以嵌套IFERROR函数,如下:

=IFERROR(VLOOKUP($B13&COLUMN(A1),$A$1:$D$10,4,0),'''')

3,一个公式如果不用辅助列,直接使用一个VLOOKUP函数计算出符合条件的多个结果可不可以呢?当然也可以的,只是计算效率并不高,通常不建议使用。我们前面讲过,VLOOKUP只提取查找范围的首个匹配结果……但如果查找范围不同,它自然就可以依次提取出多个结果。这句话什么意思呢?例如查找“看见星光”,查找范围是A1:D10时,首个结果是A2,但当查找范围内缩成A3:D10时,首个结果就成了A5……把这样的想法形成公式表达,如下(数组公式):

=VLOOKUP($A13,INDIRECT(''a''&SMALL(IF($A$1:$A$10=$A13,ROW($1:$10)),COLUMN(A1))&'':c10''),3,0)

SMALL(IF($A$1:$A$10=$A13,ROW($1:$10)),COLUMN(A1))部分,如果A1:A10的值等于A13,则返回对应的行号,否则返回逻辑值FALSE,然后使用SMALL函数从中依次由小到大取行数。搭配INDIRECT函数,就构成了随公式向右填充,不断变化的VLOOKUP查询区间,例如INDIRECT(A1:A10),INDIRECT(A3:A10)……最后使用VLOOKUP查询取数,即可得出符合条件的多个查询结果。需要说明的是,该公式未屏蔽错误值,如需屏蔽错误值,请召唤IFERROR函数~就酱紫了。

嗯,那谁,星光大叔还是重申一下,该公式为数组公式,输入时需同时按下Ctlr Shift 回车……另外该公式运算效率偏差,只作于开拓思路,加深对VLOOKUP函数运算机制的认识,不建议大范围使用……啊,冷,大叔睡觉觉去鸟~

The End

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务