学习Excel技术,关注微信公众号:
excelperfect
在《Excel公式技巧65:获取第n个匹配的值(使用VLOOKUP函数)》中,我们构造了一个没有重复值的辅助列,从而可以使用VLOOKUP函数来查找指定的重复值。本文中仍然以此为例,使用INDEX函数来获取重复值中指定的值,但是不需要构造辅助列。
如下图1所示的工作表,在“商品”列中,存在一些重复的商品,现在我们要找出第2次出现的“笔记本”的销售量。
图1
在单元格G6中输入数组公式:
=INDEX(D3:D14,SMALL(IF(C3:C14=G2,ROW(C3:C14)-ROW(C3)+1),F6))
结果如下图2所示。
图2
公式中:
C3:C14=G2
将单元格区域C3:C14中的值与单元格G2中的值相比较,得到由布尔值组成的数组:
{TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE}
公式中:
ROW(C3:C14)-ROW(C3)+1
生成一系列由1至单元格区域的最大个数的连续整数组成的数组:
{1;2;3;4;5;6;7;8;9;10;11;12}
这样,公式中的:
IF(C3:C14=G2,ROW(C3:C14)-ROW(C3)+1)
解析为:
IF({TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE},{1;2;3;4;5;6;7;8;9;10;11;12})
得到数组:
{1;FALSE;FALSE;FALSE;FALSE;6;FALSE;FALSE;FALSE;FALSE;11;12}
即由所查找的商品对应的销售量和FALSE组成的数组。
代入SMALL函数中:
SMALL(IF(C3:C14=G2,ROW(C3:C14)-ROW(C3)+1),F6)
解析为:
SMALL({1;FALSE;FALSE;FALSE;FALSE;6;FALSE;FALSE;FALSE;FALSE;11;12},2)
得到结果:
6
即要查找的商品第2次出现的位置。
代入INDEX函数中,得到:
=INDEX(D3:D14,6)
结果为单元格D8中的值10。
如果使用定义的名称,那么公式将更灵活,如下图3所示。
图3
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有