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