COUNTIF函数在文本排序中的应用

我们知道 , COUNTIF函数通常用于查找指定单元格区域中满足条件的单元格数量 。然而 , COUNTIF函数有一个比较有用的用法 , 它可以统计指定区域中大于或小于指定值的单元格数量 。例如 , 公式:
COUNTIF({a,b,c,d,e,f,g,h},”<c”)
返回值2 , 表示数组中比c小的字母有2个 , 那么如果由小到大排的话 , c应该排在第3位 。
因此 , 使用COUNTIF函数 , 我们可以找到单元格区域中任意单元格中值的顺序 。当我们知道这些顺序后 , 就可以使用VLOOKUP函数来查找对应的单元格中的值 , 从而实现按顺序对这些单元格中的值排序 。
简单地说 , 使用COUNTIF函数 , 我们可以对单元格区域中的文本排序 。
如下所示 , 在单元格B6中 , 使用公式:
=COUNTIF($C$6:$C$15,”<=”&C6)
得到单元格C6中的文本在单元格区域C6:C15的文本中 , 由小到大排在第10位 。
将公式下拉至单元格B15 , 得到相应的列C中文本在单元格区域C6:C15中文本的排序位置 。

COUNTIF函数在文本排序中的应用

文章插图
在单元格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)
【COUNTIF函数在文本排序中的应用】下拉至单元格E15 , 得到同样的结果 。

    推荐阅读