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位數字,以此類推。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!