前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Excel公式技巧39: COUNTIF函数在文本排序中的应用

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

作者头像
fanjy
发布2020-07-16 17:32:44
发布2020-07-16 17:32:44
6.3K0
举报
文章被收录于专栏:完美Excel完美Excel

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

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

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

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

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

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

=COUNTIF(C6:C15,"<="&C6)

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

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

图1

在单元格E6中的公式为:

=VLOOKUP(ROW()-ROW(E5),B6:C15,2,FALSE)

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

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

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

=VLOOKUP(SMALL(B6:B15,ROW()-ROW(E5)),B6:C15,2,FALSE)

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

=VLOOKUP(ROW()-ROW(E5),CHOOSE({1,2},COUNTIF(C6:C15,"<="& C6:C15),C6:C15),2,0)

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

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

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

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

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

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

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