Hello,大家好!今天和大家分享,Excel的一个排序小技巧。
我们知道,Excel是按照大小来对数值进行排序的。比如数值“200、100、2”,按照升序排序,排序结果为“100、200”。
但如果我们想得到的排序结果为“100、200”,应该如何操作呢?本文就和大家分享如何解决这种排序问题。
1
问题描述
如下图所示,当对A2:A10区域的数值按升序排序后,得到的结果如C2:C10所示。
但是如果我们想要按“100、20……”进行排序,如下图所示。应该如何操作呢?
2
操作步骤
在B列构建辅助列,并在B2单元格输入公式“=TEXT(A2,0)”,拖动填充柄向下复制公式。
选中数据区域A1:B10任意单元格,单击【数据】-【排序】,打开【排序】对话框,如下图所示。
(1)【主要关键字】选择“辅助列”;
(2)【排序依据】选择“单元格值”;
(3)【次序】选择“升序”。
单击确定后,会弹出【排序提醒】对话框,如下图所示。选择“分别将数字和以文本形式存储的数字排序”。
单击确定即可得到想要的排序结果。
具体操作如下图所示:
3
原理解析
将数值按照“100、200……”排序,其排序规则可总结为,先按各数值的第1个数字排序,第1个数字相同的,再看第2个数字。
比如,“200、100、2”,第1个数字分别为“2”,那么排序结果就是“100、200”。
对于数值来说,如果直接进行排序,是按照数值大小排序的,Excel并不会依据各数值的第1位数字的大小来排序。
想要按照“100、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、9”中出现的顺序进行排序,第1位数字相同的,再看第2位数字,以此类推。
发布评论