前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel公式技巧66:获取第n个匹配的值(使用INDEX函数)

Excel公式技巧66:获取第n个匹配的值(使用INDEX函数)

作者头像
fanjy
发布2020-11-24 10:54:05
5.5K0
发布2020-11-24 10:54:05
举报
文章被收录于专栏:完美Excel完美Excel

学习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社群,进行技术交流和提问,获取更多电子资料。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档