打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel公式技巧39: COUNTIF函数在文本排序中的应用

excelperfect

我们知道,COUNTIF函数通常用于查找指定单元格区域中满足条件的单元格数量。然而,COUNTIF函数有一个比较有用的用法,它可以统计指定区域中大于或小于指定值的单元格数量。例如,公式:

COUNTIF({a,b,c,d,e,f,g,h},'<c')

返回值2,表示数组中比c小的字母有2个,那么如果由小到大排的话,c应该排在第3位。

因此,使用COUNTIF函数,我们可以找到单元格区域中任意单元格中值的顺序。当我们知道这些顺序后,就可以使用VLOOKUP函数来查找对应的单元格中的值,从而实现按顺序对这些单元格中的值排序。

简单地说,使用COUNTIF函数,我们可以对单元格区域中的文本排序。

如下图1所示,在单元格B6中,使用公式:

=COUNTIF($C$6:$C$15,'<='&C6)

得到单元格C6中的文本在单元格区域C6:C15的文本中,由小到大排在第10位。

将公式下拉至单元格B15,得到相应的列C中文本在单元格区域C6:C15中文本的排序位置。

图1

在单元格E6中的公式为:

=VLOOKUP(ROW()-ROW($E$5),$B$6:$C$15,2,FALSE)

其中,ROW()-ROW($E$5)的值为1,即查找单元格区域B6:C15中列B中的值为1对应的列C中单元格的值,也就是单元格区域C6:C15中最小的文本。

将该公式向下拉至单元格E15,得到排序好的文本。当将公式向下拉时,随着行的变化,ROW()-ROW($E$5)的值也不断变化,从而取得相应的值。

注意,如果担心“顺序号”列中有重复值,可以使用公式:

=VLOOKUP(SMALL($B$6:$B$15,ROW()-ROW($E$5)),$B$6:$C$15,2,FALSE)

上面的列B实际上是我们使用的辅助列,这样使整个运算过程更清楚。其实,可以不使用辅助列,直接使用一个数组公式。在单元格E6中输入数组公式:

=VLOOKUP(ROW()-ROW($E$5),CHOOSE({1,2},COUNTIF($C$6:$C$15,'<='& $C$6:$C$15),$C$6:$C$15),2,0)

下拉至单元格E15,得到同样的结果。

注:本文讲解的技术学习自chandoo.org,这里对其进行了补充和扩展。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Excel表格在财务会计的应用基本操作学习笔记 一
干货 | 史上最实用的excel表格公式,有多少是你知道的?
Excel提取函数公式,解决你大部分的工作麻烦!
涨知识了,还能这样条件求最大值!
今日头条
只需 Excel 函数就能实现,选下拉菜单,表格就能自动升或降序排序
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服