在 Excel 中排序文字代表將一欄儲存格值依照特定順序排列,最常見的是字母 A 到 Z 或反向的 Z 到 A,但也可以是自然數值順序(file2 在 file10 之前),或是你自訂的序列。Excel 在「資料」分頁內建的「排序」對話框可處理單欄與多欄範圍,支援偵測標題列,並可選擇遞增或遞減方向,以及是否區分大小寫。實際的限制在於 Excel 是在活頁簿內進行排序,因此任何針對貼上文字的清理動作——多餘的空格、空白的列、重複的項目、混用的換行字元——都必須透過公式或獨立的工具來處理。對於你已經從工作表複製出來的、以行為導向的文字(一欄姓名、一份檔案名稱清單、一疊標籤),像 Text Sorter 這樣的專用瀏覽器排序工具,能在你把結果貼回 Excel 之前,提供可預期、確定性的排序結果。

Excel 內建的排序功能實際做了什麼
Excel 會依據一或多個欄位,對所選的範圍或表格進行排序,使用方式是從「資料 > 排序與篩選 > 排序」開啟排序對話框。對話框提供「排序依據」、「排序對象」(儲存格值、儲存格色彩、字型色彩、設定格式化的條件圖示)以及「順序」(A 到 Z、Z 到 A、最小到最大、最大到最小,或自訂清單)。當 Excel 偵測到標題列時,會改用欄位名稱來排序,而不是用標題儲存格的文字。每個欄位的方向是獨立的,因此你可以在同一趟排序中,把部門設為 A 到 Z、薪資設為最大到最小。
對於文字欄位,Excel 會使用與活頁簿地區設定相關的區域感知比較。這表示安裝在德國、使用德文地區設定的 Excel,對 ß 與 ä 的排序結果,可能與安裝在英語系地區的 Excel 不同。區分大小寫是「選項」對話框中一個明確的核取方塊。如果沒有勾選該核取方塊,Excel 在排序時會把 Apple 與 apple 視為相等。
Excel 的排序是就地執行:它會重新排列所選範圍內的列。如果你在排序時沒有選取所有相關欄位,Excel 會警告說周圍的資料將不會被納入,並提供自動擴充選取範圍的選項。通常接受這個警告是正確的選擇;拒絕的話,可能會把一列切成兩半。
何時應該把文字移出 Excel、改在本地排序
在以下四種情況下,把一欄資料從 Excel 複製出來、在別處排序、再貼回去,會比在工作表中硬做來得更快或更可靠:
- 你手上有一欄沒有公式的值——姓名、檔案名稱、標籤、產品標示——而且你只想進行一次性的 A 到 Z 或數值排序,不想動到工作表的其他部分。
- 文字是從其他來源貼進來的,夾帶了看不見的空格、空白的列,或你希望在排序時一併移除的重複項目。
- 你需要自然數值順序(file2 在 file10 之前),卻不想為了這個而寫一欄輔助公式,搭配 VALUE() 與 LEFT()。
- 你需要具確定性、可重現的排序結果,能夠對同一份輸入重新執行,每次都得到相同的輸出——這對易於 diff 的清單與稽核紀錄很有用。
針對上述每一種情況,在本地執行、絕不上傳原始資料的瀏覽器工具,就是正確的選擇。排序一欄貼上文字,正是 Text Sorter 的設計目的。
使用 Text Sorter 排序文字:逐步說明
Text Sorter 有三個明確的操作步驟,正好對應到 Excel 工作流程中的複製出來、清理、貼回去。
- 貼上要以行為導向進行排序的文字。在 Excel 中,選取你想要排序的欄位,複製它(Ctrl+C),然後貼到輸入區域。Text Sorter 最多接受 1,000,000 個 UTF-16 程式碼單位,以及最多 50,000 行邏輯行數。超過這些上限的輸入會在排序開始前就被拒絕,不會產生部分輸出。
- 選擇方向、大小寫與數值比較方式,然後只啟用你需要的清理選項。挑選遞增或遞減順序,決定比較是否區分大小寫,如果希望數字部分以數值方式排序,則開啟「自然」數字順序。獨立切換「修剪每一行」、「移除空白行」與「移除完全重複的行」。每個切換鈕各自影響行為;三者全部關閉時,就是單純的行重排。
- 排序各行,比對排序前後的行數與精確預覽,然後下載 TXT 結果。執行排序,比較原本的邏輯行數與最終的行數(若有差異代表有空行或重複被移除,絕不是排序造成重排),複製預覽內容,或把結果下載為 UTF-8 TXT 檔。只要輸入或選項一變更,舊的輸出會立即被清除,如此一來舊的數字就不會與新設定混淆。
檔案下載完成後,用 Ctrl+V 把結果貼回 Excel。由於輸出使用 LF 換行字元,Windows 上的 Excel 會把它顯示為單一儲存格內含換行;若要讓每個值各自佔一列,請使用「選擇性貼上 > 文字」,讓 Excel 的「文字匯入精靈」依 LF 分行,或者把值逐個用 Alt+Enter 分隔貼到同一欄。
方向、大小寫與數值選項比較
| 選項 | 它改變了什麼 | 適用時機 |
|---|---|---|
| 遞增 | 依排序器的規則由小到大排列 | 預設;用於 A 到 Z 或由小到大 |
| 遞減 | 反轉比較結果,但保留相等項目的穩定順序 | 反向排序的清單,且相等項目必須維持原本順序 |
| 區分大小寫 | 大小寫會參與排序比較 | 當 Apple 與 apple 不應該被視為相等時 |
| 自然數字順序 | 數字段落以數值方式比較 | 檔案名稱、版本標籤、發票編號 |
這四個選項可以組合:即使關閉區分大小寫,只要開啟「自然數字順序」,file2 仍然會排在 file10 之前,因為自然順序的套用與大小寫摺疊無關。瀏覽器的英文 Intl.Collator 由 MDN 文件記載,是背後的比較器,而排序演算法遵循標準的 Array.sort 規範,並以原始索引作為穩定的平手決勝依據。
清理選項:修剪、空白行、完全重複
| 清理選項 | 執行順序 | 移除或保留的內容 |
|---|---|---|
| 修剪每一行 | 第一步 | 前導與尾端的 Unicode 空白字元;不會壓縮行內的空格 |
| 移除空白行 | 在可能的修剪之後 | 修剪後為空白的行;若未啟用修剪,則只含空格的行不算空白 |
| 移除完全重複的行 | 在修剪與移除空白行之後,排序之前 | 僅限 JavaScript 字串完全相等時的重複;保留第一個出現的項目 |
「完全」指的是 JavaScript 的字串相等。即使開啟了不分大小寫的比較,Apple 與 apple 在排序時仍會視為相等,但「移除完全重複的行」並不會把它們合併為一筆——只有逐字元完全相符的才會被移除。這裡沒有模糊比對,也沒有 Unicode 正規化,所以 café 與 cafe 仍會分開保留。保留的是第一個出現的項目;後續完全相同的複本會被刪除,而存活下來那一行的字元內容,除非同時啟用修剪,否則不會改變。
換行字元、穩定性與限制
Text Sorter 能識別 CRLF、單獨的 CR,以及 LF 作為行分隔符號,並在排序後的各行之間輸出 LF。輸入中混用的換行字元在結果中會變得一致,這在你即將貼回 Windows 上的 Excel 時特別重要——因為 CRLF 是 Windows 原生的儲存格換行——在 Excel 中開啟下載的 TXT 檔時,Text Import 階段會將 LF 視為列分隔;但直接貼上時,LF 仍會留在同一個儲存格內。排序是穩定的,因此無論方向是遞增或遞減,相等的行都會保持原本的相對順序。遞減只是反轉比較的結果,而非反轉最終陣列,所以平手項目不會翻轉。
這些硬性上限約束了整個流程的每個環節:分割、加上裝飾的穩定排序、預覽算繪,以及 Blob 建立。最多接受 1,000,000 個 UTF-16 程式碼單位與 50,000 行;超出上限的輸入會在任何排序開始之前就被拒絕。格式錯誤的 UTF-16 代理對序列也會在校驗階段被拒絕。不會上傳任何資料;清理、排序、預覽與下載檔案的產生全部在本地進行,用於下載的暫時性 Blob URL 會在瀏覽器開始傳輸檔案後立即撤銷。
何時 Text Sorter 並非合適的工具
Text Sorter 並不是能識別 CSV 的排序工具。一個 CSV 記錄的儲存格內可能包含引號包起來的換行,若依照實體換行來排序,可能會破壞記錄結構。當引號、標題列或多個欄位都很重要時,請改用具備格式感知的表格工具。Text Sorter 同樣不會把十進位數量、日期、版本、單位或帶正負號的數學運算式解析為結構化資料——「自然數字順序」只會把數字段落當作數字來解讀。排序結果可能與資料庫的 ORDER BY、作業系統的檔案名稱排序,或其他程式語言的排序不同;因此,如果排序後的輸出會成為具合約效力或需可重現的機器產出,請先確認英文瀏覽器的排序規則以及所選的數值與大小寫選項,是否與目的端系統一致。
快速對照:從 Excel 欄位到排序完成的清單
在 Excel 中複製該欄(Ctrl+C)。開啟 Text Sorter 並貼上。選擇遞增或遞減,設定大小寫與自然數字順序以符合你的目標。只有在你需要時,才切換「修剪」、「移除空白行」與「移除完全重複的行」。執行排序,比較原本與最終的行數,然後複製預覽結果或下載 TXT。透過「選擇性貼上 > 文字」貼回 Excel,或經由「文字匯入精靈」處理,讓每個值落入自己的列。若需要對貼上的清單進行相關的清理,Remove Duplicate Lines 頁面詳細說明了 Text Sorter 內部所使用的同一套完全相等規則。
相關閱讀:Excel 超連結網址:公式、限制與本地清理。
相關閱讀:如何在 Excel 儲存格中安全地移除空白字元。