
如何在Excel中對單元格中的數字進行排序?
對我們而言,在列列表中對數字進行排序很容易并且很常見,但是您是否曾經嘗試在單個單元格中對數字進行排序? 也許除了將它們一一排列之外,沒有什么好辦法供您使用。在這里,我將討論如何在Excel的單元格中對數字進行排序。
用公式對單元格中的數字排序
使用用戶定義的功能對單元格中的數字進行排序
使用VBA代碼對單元格中用逗號分隔的數字進行排序
用公式對單元格中的數字排序要對工作表中單元格中的數字進行排序,您可以應用以下長公式,方法如下:
1。 在您的數據旁邊,請輸入以下公式,在此示例中,我將其鍵入到單元格C1中,請參見屏幕截圖:
=TEXT(SUM(SMALL(--MId(A1,ROW(INDIRECT("1:"&LEN(A1))),1),ROW(INDIRECT("1:"&LEN(A1))))*10^(LEN(A1)-ROW(INDIRECT("1:"&LEN(A1))))),REPT("0",LEN(A1)))
2. 然后按 Ctrl + Shift + Enter 鍵,然后將填充手柄拖到要應用此公式的范圍內,您將獲得數字從小到大的排序。 看截圖:
筆記:
1.如果單元格中數字的位數大于15,則此公式將無法獲得正確的結果。
2.如果要按降序對數字進行排序,可以使用以下公式: =TEXT(SUM(LARGE(--MId(A1,ROW(INDIRECT("1:"&LEN(A1))),1),ROW(INDIRECT("1:"&LEN(A1))))*10^(LEN(A1)-ROW(INDIRECT("1:"&LEN(A1))))),REPT("0",LEN(A1))).
3.在上面的公式中,A1表示包含要排序的數字的單元格,您可以根據需要進行更改。
使用用戶定義的功能對單元格中的數字進行排序由于公式存在一些局限性,因此您可以使用以下公式 用戶定義功能 對長度超過15位的單元格中的數字進行排序。
1。 按住 ALT + F11 鍵,然后打開 Microsoft Visual Basic for Applications窗口.
2。 點擊 插頁 > 模塊,然后將以下代碼粘貼到 模塊窗口.
VBA代碼:對單元格內的數字進行排序
Function SortNumsInCell(pNum As String, Optional pOrder As Boolean) As StringUpdate 20140717Dim xOutput As StringFor i = 0 To 9For j = 1 To UBound(VBA.Split(pNum, i))xOutput = IIf(pOrder, i & xOutput, xOutput & i)NextNextSortNumsInCell = xOutputEnd FunctionCopy3. 然后保存并關閉此代碼,返回到工作表,然后輸入此公式 = sortnumsincell(A1) 放入數據旁邊的空白單元格,請參見屏幕截圖:
4。 然后將填充手柄拖到要包含此公式的單元格上,并且單元格中的所有數字都已按升序排序,如下所示的屏幕截圖:
備注:如果要按降序對數字進行排序,請輸入此公式 = sortnumsincell(A1,1)。
使用VBA代碼對單元格中用逗號分隔的數字進行排序如果您的數字被某些字符分隔,例如逗號,分號,句號等(如以下屏幕截圖所示),那么如何在單元格中對它們進行排序? 現在,我介紹一個VBA代碼供您對它們進行排序。
1。 按住 ALT + F11 鍵打開 Microsoft Visual Basic for Applications窗口。

