如何在 Excel 中對儲存格內的數字進行排序?
在 Excel 中,對一系列儲存格或整欄的數字進行排序是常見又簡單的操作。然而,有時您可能需要對「單一儲存格內的所有數字」進行排序——例如,當您收到匯入資料、整合報表或匯出檔案時,多個數字可能被合併儲存在同一個儲存格中,而非分散於不同儲存格。若手動逐一為每個儲存格內的數字排序,在處理大量資料或包含多位數字的儲存格時,不僅效率低落,還容易出錯。透過特定技巧,您就能快速重新排列單一儲存格中的數字,輕鬆滿足資料整理與分析的需求。
本文將介紹幾種在 Excel 中對儲存格內數字進行排序的實用方法,包括公式法、使用者自訂函數(UDF)以及 VBA 程式碼。每種方法各具優勢,適用於不同情境,助您輕鬆選出最符合需求的解決方案。
使用 Excel 的「快速填滿」功能對儲存格內的數字進行排序
使用公式對儲存格內的數字進行排序
對於簡單情況(例如儲存格內所有數字均為個位數且不含任何分隔符),您可運用陣列公式自動將儲存格中的數字排序。此方法適用於處理代碼、識別碼,或任何需將儲存格內個位數重新排序的場景。
請依照以下詳細步驟操作:
1. 在資料旁插入新欄。例如,若您的數字位於 A1 儲存格,請點選 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 確認輸入。成功輸入後,公式列中的公式將自動加上大括號,表示已作為陣列進行運算。
接著,向下拖曳填滿控點,將公式複製至其他需要排序功能的儲存格,每個儲存格內的數字將自動依升冪順序排列,如下方範例所示:

為確保順利使用,請再次確認您引用的儲存格正確無誤,且原始資料僅包含數字;若混入文字或其他字元,可能會導致錯誤。
注意事項:
-若儲存格包含超過 15 位數,此公式可能因 Excel 預設的數值精確度限制而無法正確運作。針對較長字串或更複雜的數字組合,建議改用 VBA 解決方案或使用者自訂函數。
-若要按降冪順序排序數字,可將公式中的 SMALL 替換為 LARGE,並使用下列公式:
=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)))
此公式運作方式相同,但會將數字由大到小排序。
-在這些公式中,A1 指的是您要排序數字所在的儲存格。若您的資料位於其他儲存格,只需相應更新參照即可。
-若出現 #VALUE! 錯誤,請確認該儲存格僅包含個位數字,且不含空格或其他字元。
-將此方法套用至大型資料集時,請務必確認系統的計算選項設為「自動」,以確保在複製或修改資料後,公式結果能正確更新。

透過 KUTOOLS AI 解鎖 Excel 的神奇功能
- 智慧執行:透過簡易指令,輕鬆執行儲存格操作、分析資料,並建立圖表!
- 自訂公式:打造專屬公式,讓您的工作流程更順暢!
- VBA 編碼:輕鬆撰寫並套用 VBA 程式碼,立即提升工作效率!
- 公式解析:輕鬆掌握複雜公式!
- 文字翻譯:輕鬆打破試算表中的語言隔閡!
使用使用者自訂函數對儲存格內的數字進行排序
在某些情況下(例如處理超過 15 位數的數字,或需要更高彈性),使用者自訂函數(UDF)提供了一種穩健的替代方案,能自動化儲存格內的排序作業,特別適用於標準 Excel 公式無法滿足的需求。
此解決方案極適合經常處理匯入資料欄位,或需將程式碼壓縮至單一儲存格的使用者,尤其當儲存格內容較長且須反覆對數字進行排序時。
實作步驟如下:
1. 按住 ALT + F11,即可開啟 Microsoft Visual Basic for Applications (VBA) 視窗。
2. 在 VBA 視窗中,點選插入> 模組,然後將下列程式碼複製並貼上至新建的模組視窗中:
VBA 程式碼:對儲存格內的數字進行排序
Function SortNumsInCell(pNum As String, Optional pOrder As Boolean) As String
'UpdatebyExtendoffice
Dim xOutput As String
For i = 0 To 9
For j = 1 To UBound(VBA.Split(pNum, i))
xOutput = IIf(pOrder, i & xOutput, xOutput & i)
Next
Next
SortNumsInCell = xOutput
End Function
3. 貼上程式碼後,請儲存並關閉 VBA 編輯器。返回工作表,在資料旁的空白儲存格(例如 B1 或 C1)中輸入:
=sortnumsincell(A1)

4. 向下拖曳填滿控點,即可將函數套用至其他所需儲存格。完成後,所有目標儲存格內的數字將依升冪順序排序,如下所示:

注意:若要按降冪順序排序數字,請改用下列公式:
=sortnumsincell(A1,1)
額外參數(1)用於指示函數執行降冪排序。
此基於 UDF 的解決方案在處理更大或更複雜的資料集時,不僅提供更高的彈性與精確度,更能有效避免因位數限制所導致的常見公式錯誤。
若遇到編譯錯誤,請再次確認模組程式碼已正確貼上,且函數名稱與工作表中的公式完全一致。
使用 VBA 程式碼對以逗號分隔的儲存格內數字進行排序
當儲存格內的數字以特定分隔符(例如逗號、分號,甚至句點)分隔時,內建公式可能無法適用。此時可運用自訂 VBA 程式碼,無論處理多少儲存格,皆能高效完成排序。
適用情境包括從資料庫匯出的清單、收集到的問卷回覆,或任何數值儲存在單一儲存格並以固定字元分隔的資料集。
執行 VBA 程式碼進行排序的步驟如下:

1. 按下 ALT + F11,即可開啟 Microsoft Visual Basic for Applications 視窗。
2. 點選插入> 模組,並將下方程式碼貼上至模組視窗中:
VBA 程式碼:對以逗號分隔的儲存格內數字進行排序
Sub SortNumsInRange()
'Update20140717Dim Rng As RangeDim WorkRng As RangeDim Arr As VariantOn Error Resume NextxTitleId = "KutoolsforExcel"
Set WorkRng = Application.SelectionSet WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Set objArrayList = CreateObject("System.Collections.ArrayList")
For Each Rng In WorkRng Arr = VBA.Split(Rng.Value, ",")
For i =0 To UBound(Arr)
xMin = i For j = i +1 To UBound(Arr)
If Arr(xMin) > Arr(j) Then xMin = j End If Next j If xMin <> i Then temp = Arr(i)
Arr(i) = Arr(xMin)
Arr(xMin) = temp End If Next i Rng.Value = VBA.Join(Arr, ",")
NextEnd Sub 3. 按下 F5 執行程式碼,系統將立即顯示提示,讓您選取要排序的儲存格範圍。

4. 按確定後,程式碼會將所有選取儲存格中的數字依升冪順序排序,並直接套用至原儲存格,不會影響其他內容。
注意:若您的數字由其他字元(例如分號或空格)分隔,只需在程式碼中的兩處位置,將逗號「,」替換為您所使用的分隔符即可:即 Split(Rng.Value, ",")與 Join(Arr, ",")。
此程式碼僅支援升冪排序;若需降冪排序,請調整 VBA 程式碼中的排序邏輯。使用 VBA 前,務必先儲存活頁簿,因為變更將立即生效,且無法透過「復原」功能撤銷。
若儲存格包含非數值內容,程式碼可能無法產生預期結果;執行前請務必確認資料未混入其他類型內容。
使用 Excel 的「快速填滿」功能對儲存格內的數字進行排序
對於小型資料集,或當儲存格中的數字呈現可預測的模式時,Excel 的「快速填滿」功能提供了一種高效的手動解決方案。此方法尤其適合僅需對少數儲存格中的數字進行排序,且資料結構簡單的情況。
以下是使用「快速填滿」對儲存格內數字進行排序的方法:
在緊鄰您資料的新欄位中,手動輸入第一個儲存格內數字的排序版本(例如,若 A1 包含)8371,請於 B1 儲存格輸入 1378)。
選取同一欄位中的下一個儲存格,開始輸入排序後的下一個項目。輸入幾個範例後,按下 Ctrl + E(快速填滿快捷鍵),Excel 將自動辨識此模式,並根據您提供的排序範例,迅速填滿剩餘儲存格!
此技巧執行迅速,但最適合用於簡短清單或資料模式高度規律的情境。您必須至少手動輸入幾個排序結果,Excel 才能準確偵測您預期的轉換方式。
若資料模式過於複雜,或數字間夾雜特殊字元,快速填滿功能可能無法穩定運作。務必仔細確認自動產生的結果是否正確無誤。
注意:此方法並非在所有情況下皆有效。
選擇方法時,請考量資料結構(個位數 vs. 含分隔符號的數字)、資料字串長度,以及需處理的儲存格數量。以公式為基礎的做法最適合簡短且不含分隔符號的字串;若面對複雜或冗長的資料排列,則建議採用 VBA 或使用者自訂函數(UDF),以獲得更高的彈性與強大功能。
在套用任何解決方案前,請務必仔細檢查原始資料是否含有隱藏的空格、文字或格式問題。完成數字排序後,建議比對部分樣本與原始輸入資料,以驗證輸出結果的正確性。
若遇到問題,請確認您的 Excel 版本支援陣列公式(Excel 2016 或更新版本可提升相容性),並確保已啟用巨集以順利執行 VBA 方法。若排序結果未達預期,請嘗試調整公式或 VBA 程式碼,使其更貼合您的儲存格結構。
相關文章:
如何在 Excel 中排序資料列,讓空白儲存格出現在最上方?
最佳 Office 生產力工具
| 🤖 | KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行 | 產生程式碼| 建立自訂公式 | 分析資料並產生圖表| 呼叫增強函數…… |
| 熱門功能:尋找、醒目提示或標記重複值 | 刪除空白行 | 合併列或儲存格而不遺失資料 | 不使用公式的四捨五入…… | |
| 高級 LOOKUP:多重條件 VLookup | 多重數值 VLookup | 跨多個工作表 VLookup | 模糊查找…… | |
| 高級下拉列表:快速建立下拉式清單 | 相依式下拉式清單 | 多選下拉式清單…… | |
| 欄位管理員:新增指定數量的欄位|移動欄位|切換隱藏欄位的可見狀態|比較範圍與欄位…… | |
| 精選功能:網格聚焦 | 設計視圖 |增強編輯欄 | 工作簿與工作表管理員 | 資源庫(自動文字)| 日期提取 | 合併工作表 | 加密/解密儲存格 | 依清單傳送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體儲存格/斜體/刪除線……) ...... | |
| 頂尖 15 工具組:12 文字工具(添加文本,刪除特定字符,……)| 50+ 圖表 類型(甘特圖,……)| 40+ 實用公式(基於生日計算年齡,……)| 19 插入工具(插入二維碼,從路徑插入圖片,……)| 12 轉換工具(金額轉大寫,匯率轉換,……)| 7 合併和拆分工具(高級合併行,分割儲存格,……)|……以及更多 |
運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……
Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!
- 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
- 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
- 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!
所有 Kutools 增益集,一個安裝程式
Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!
- 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
- 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
- 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
- 30 天完整功能試用— 無需註冊,無需信用卡
- 超值之選— 比單獨購買各增益集更省費用