Hello,大家好!今天和大家分享,Excel的一个排序小技巧。

我们知道,Excel是按照大小来对数值进行排序的。比如数值“200、20、1、10、100、2”,按照升序排序,排序结果为“1、2、10、20、100、200”。

但如果我们想得到的排序结果为“1、10、100、2、20、200”,应该如何操作呢?本文就和大家分享如何解决这种排序问题。

一、问题描述

如下图所示,当对A2:A10区域的数值按升序排序后,得到的结果C2:C10所示。

但是如果我们想要按“1、10、100、2、20……”进行排序,如下图所示。应该如何操作呢?

二、操作步骤

1、在B列构建辅助列,并在B2单元格输入公式“=TEXT(A2,0)”,拖动填充柄向下复制公式。

2、选中数据区域A1:B10任意单元格,单击【数据】-【排序】,打开【排序】对话框,如下图所示。

(1)【主要关键字】选择“辅助列”;
(2)【排序依据】选择“单元格值”;
(3)【次序】选择“升序”。

单击确定后,会弹出【排序提醒】对话框,如下图所示。选择“分别将数字和以文本形式存储的数字排序”。

单击确定即可得到想要的排序结果。

具体操作如下图所示:



三、原理解析

将数值按照“1、10、100、2、20、200……”排序,其排序规则可总结为,先按各数值的第1个数字排序,第1个数字相同的,再看第2个数字。

比如,“200、20、1、10、100、2”,第1个数字分别为“2、2、1、1、1、2”,那么排序结果就是“1、10、100、2、20、200”。

对于数值来说,如果直接进行排序,是按照数值大小排序的,Excel并不会依据各数值的第1位数字的大小来排序

想要按照“1、10、100、2、20、200……”进行排序,就要将数值转化为文本对于文本的排序,Excel会一个字符一个字符的进行比较来排序。

例如下图中对B2:B7中的英文单词按升序排序,排序结果如D2:D7所示。

从排序结果可以看到,英文单词第1个字母为“a”的排在前面,其次是第1个字母为“b”的,最后是第1个字母为“c”的。如果第1个字母相同,则比较第2个字母,比如“about”第2个字母为“b”,排在单词“and”之前。

本文使用TEXT函数将数值转化为文本。公式“=TEXT(A2,0)”表示将A2单元格的数值转换为文本,参数“0”表示格式代码,可以将A2单元格的数值转换为整数,转化后的数据虽然看上去是一个整数的数值,但其实是文本。

当使用转化为文本的数据作为排序依据后,Excel弹出的【排序提醒】对话框实际是让我们再次确定,对于这种以文本形式存储的数值,在排序时是按照数值大小排序,还是按照文本排序规则排序

当我们选择“分别将数字和以文本形式存储的数字排序”,就是告诉Excel按照文本规则排序。那么Excel就会根据第1位数字在“0、1、2、3、4、5、6、7、8、9中出现的顺序进行排序,第1位数字相同的,再看第2位数字,以此类推。
举报/反馈

初风Excel表格教学

4163获赞 5040粉丝
学好Excel,提高工作效率
关注
0
0
收藏
分享