用countif实现对文本排序的效果

小伙伴们,大家好。今天来学习下如何用函数实现对文本的排序,主要用的是countif函数。还是看一个例子。

1.以姓名为关键字进行升序排序

如下图所示,将左表变为右表,F列是姓名的首字母,是我自己添加的,为了方便大家比较。如果用基础操作来完成,十分简单,点下排序就可以了。如果用函数来实现呢?还是有点小小的困难。我们之前的文章说过对数字的排序,今天就在那个的基础上说说对文本的排序。首先要把文本变为数字,并且数字要代表文本的排名大小,然后再按对数字排序的思路完成就可以了。

在D3单元格输入公式=INDEX(A:A,MOD(SMALL(COUNTIF($A$3:$A$12,"<="&$A$3:$A$12)/1%+ROW($3:$12),ROW(A1)),100)),按ctrl+shift+enter三键结束,向右向下填充,完成。

先来看=COUNTIF($A$3:$A$12,"<="&$A$3:$A$12)这部分,返回的结果如下图C列所示,意思就是在$A$3:$A$12这个区域中统计,小于等于"吴云"的有几个;小于等于"吴力杰"的有几个;小于等于"曾海山"的有几个,...以此类推。因为第2参数是个数组,所以就相当于对每个姓名计算一次。得到的结果是按最小值的顺序排序的,比如8代表的是第8个最小值,1代表的就是第1个最小值。因为我们是按升序排序,所以要得到的第1个姓名是1对应的"曾海山"。

=COUNTIF($A$3:$A$12,"<="&$A$3:$A$12)/1%+ROW($3:$12)这部分是用上一步排名的结果乘以100再加上对应的行号,结果如下图C列所示。这样的话就把排名和行号结合起来了,比如"曾海山"对应的105代表的意思是第1个最小的姓名在第5行。接下来我们就要依次提取第1个最小值,第2个最小值,。。。一直提取完。

=SMALL(COUNTIF($A$3:$A$12,"<="&$A$3:$A$12)/1%+ROW($3:$12),ROW(A1))这部分就是用small提取出上一步的第1个最小值105,公式下拉,提取第2个最小值210;再下拉提取第3个最小值307,。。。一直提完。这样的话姓名就是按从小到大的顺序排列的。接下来就是从名次和行号组合的数字中取出行号,也就是后2位数字。

=MOD(SMALL(COUNTIF($A$3:$A$12,"<="&$A$3:$A$12)/1%+ROW($3:$12),ROW(A1)),100)这部分就是用mod除以100取出行号,当然你也可以用right从右边取出2位。再下来就是用index返回对应行列的内容。

=INDEX(A:A,MOD(SMALL(COUNTIF($A$3:$A$12,"<="&$A$3:$A$12)/1%+ROW($3:$12),ROW(A1)),100))这部分就是用index返回A列对应的内容。如下图C列所示,这样就得到了升序排序的姓名。公式右拉得到了B列对应的部门。

还有一点要说明的是,它不能识别出多音字,比如"曾海山"应该是读zeng,它识别为ceng。手工点击排序也不能识别多音字,大家可以通过手工排序的方式来验证下公式的结果是否正确。另外,如果以姓名为关键字进行降序排序又该如何做呢?大家可以想一下。

文件链接:

https://pan.baidu.com/s/18Ja1IDz0OcP8cAMiTIer5Q

提取码:s6l2

(0)

相关推荐

  • 【总结篇】序列问题其实很简单

    动手操作是熟练掌握EXCEL的最快捷途径! 序列在EXCEL中有着非常重要的作用.那么,构建序列是否有章可循呢? 01 构建正循环序列 例如,我们需要构建一个开始值为1,循环周期为4的循环序列. 在单 ...

  • LOOKUP函数的使用方法

    Lookup函数一共有两种形式一种是向量形式一种是数组形式,我主要介绍其向量形式 向量形式 Lookup函数:在单行区域或单列区域(向量)中查找数值,然后返回第二个单行区域或单列区域中相同位置的数值 ...

  • 用函数实现排序的效果(降序排序)

    小伙伴们好,昨天分享了如何用函数实现升序排序的效果.今天再来说下降序排序的方法.数据源和昨天的一样,如下图所示.以分数为关键字对左表降序排序,结果如右表所示.分数相同的按先后顺序排序. 思路和昨天的基 ...

  • 用函数实现排序的效果(升序排序)

    小伙伴们好,今天要分享的内容是如何用函数实现排序的效果.先来看下数据源和排序后的效果.下图左表是数据源,分数以乱序排序.右表是以分数为关键字升序排序后的效果. 如何用函数来实现呢?在E2单元格输入公式 ...

  • 这个小功能可以快速搞定文本排序,很多人却没注意到!

    经常有朋友问,当把文本字段放到坐标轴或者切片器上,显示的顺序都乱了,完全不是自己想要的,就像下面这些, ↑月份坐标轴 ↑星期切片器 ↑奖牌切片器 以上这些都是文本类的数据,文本数据默认是按照字母来排序 ...

  • 跟李锐学Excel:COUNTIF函数统计文本数据个数

    跟李锐学Excel:COUNTIF函数统计文本数据个数

  • word表格排序操作视频:表格转换分列文本的方法

    word表格排序操作视频|word表格排序方法视频|word文本分列方法视频|word表格文本转换视频 本视频教程由部落窝教育分享.

  • 【前端开发】文本阴影:如何使用text-shadow实现首字线索引效果?

    文本阴影 text-shadow 语法 /* color | offset-x | offset-y | blur-radius */text-shadow: #fc0 1px 0 10px;/* c ...

  • C# 处理PPT水印(三)—— 在PPT中添加多行(平铺)文本水印效果

    在PPT幻灯片中,可通过添加形状的方式,来实现类似水印的效果,可添加单一文本水印效果,即幻灯片中只有一个文本水印:也可以添加多行(平铺)文本水印效果,即幻灯片中以一定方式平铺排列多个文本水印效果.本文 ...

  • 排序技巧2:对文本进行升序排序

    你好,我是刘卓.欢迎来到我的公号,excel函数解析.对于数字,我们可以用small或large等函数进行排序:而对于文本,很多小伙伴可能不清楚哪个函数可以对其排序,那么今天来分享下对文本排序的方法和 ...

  • 对一列文本取不重复值并且结果按升序排序

    大家好,昨天说了对文本的排序,今天再来升级一下难度.从一列文本中取出不重复值,并且结果要按升序排序.还是通过一个例子说明. 如下图所示,A列的数据源是一些费用名称,其中有重复的.现在的要求是提取出不重 ...