若想在 Word 中以比內建「排序」對話框更精細的控制來排序文字,可將最多 50,000 行貼到瀏覽器型的排序工具、設定大小寫敏感度與自然數字排序,再把排序結果複製回文件。Word 的「排序」對話框能處理選取清單的簡單 A 到 Z 字母排序,但有其為人熟知的限制:沒有內建去重、排序前不會去除多餘空白、沒有明確的自然數字排序,而且排序後可能會打亂原本套用於各行的段落樣式或清單編號。對於從 Word 文件抽出的清單——檔名清單、引文清單、字詞清單、標籤集或聯絡人資料——這些缺少的控制項就很重要。一個專注的瀏覽器工具可在本地端以穩定的英文 collation 排序最多 50,000 行,支援可選的自然數字排序、去除空白、移除空行與完全重複項目,並產生可直接貼回 Word 的純 TXT 檔。所有過程都在你的瀏覽器中進行,不會上傳任何內容,原來的 Word 文件也保持原樣。

Word 的「排序」對話框何時力有未逮
Microsoft Word 的「排序」對話框適用於單一文件中的單一清單。但當你想對已從 Word 複製出來、要在其他地方重複使用的文字進行排序時,這個對話框反而成了阻力,而非解方。
有三個反覆出現的限制,會讓使用者轉向瀏覽器型的替代方案。第一,Word 是就地排序,這表示當順序改變時,帶樣式的段落或編號清單可能會被套上不想要的格式變更。第二,Word 依地區設定的排序結果可能與你在英文 collation 下所預期的不同,特別是當內容帶有腔調符號或大小寫混合的詞彙時。第三,Word 不會在排序過程中自動去除重複、修剪空白或套用自然數字排序——這些處理必須另外執行,或根本無法執行。
這些都不是放棄 Word 來處理日常編輯的理由。它們是這樣的理由:把你需要排序的各行抽取出來,丟到一個專門打造的工具中跑過,再把整理過、排序好的結果貼回原本的位置。
可在排序同時套用的清理控制
Text Sorter 提供四個彼此獨立的控制項,各自對應前述的一個缺口。下表顯示它們的執行順序,以及每一項對保留下來的文字行做了什麼。
| 控制項 | 執行時機 | 對保留下來文字行的效果 |
|---|---|---|
| 修剪每行 | (第一個) | 移除行首與行尾的 Unicode 空白。內部空白不會被合併。 |
| 移除空行 | 修剪之後 | 移除修剪後為空的行。僅含空白的行只有在「修剪」與「移除空行」同時啟用時才會被移除。 |
| 移除完全重複項 | 上述兩項之後 | 保留第一筆出現的內容,並移除後續以完整字串相等為依據的重複項。「Apple」與「apple」會被視為相異。 |
| 排序 | 所有清理之後 | 使用穩定的英文 collation,依升冪或降冪套用排序。 |
你可以任意啟用其中幾項。三項清理控制全部關閉時,就是一次不改動任何字元的純排序。三項全開時,則可在單一流程中同時完成清理、去重與排序。
去重規則嚴格是有原因的。「移除完全重複項」代表 JavaScript 的字串相等,因此即使在不區分大小寫的比較下會被視為等價,「Apple」與「apple」依然會分開。它不做模糊比對,也不做 Unicode 正規化,這代表你原本的大小寫以及任何未正規化的形式都會原封不動地保留下來。當結果要貼回 Word 並被用作大小寫具有意義的人名、產品名或識別碼清單時,這一點很重要。
針對檔名與編號清單的自然數字排序
字典式排序會產生熟悉的「file10 排在 file2 之前」陷阱,因為在文字層級上,字元「1」會排在字元「2」之前。自然數字排序可修正這個問題:連續數字會以數值方式比較,因此 file2 會排在 file10 之前,report_v3 也會在相同的英文 collator 下排在 report_v20 之前。
這是工具中一項有明文記載、可控制的選項。開啟自然數字排序時,純數字連續片段會以其數值比較。關閉時,同樣的數字片段會以一般文字比較,這會讓「10」排在「2」之前,因為第一個字元「1」排在第一個字元「2」之前。對於任何混合短編號與長編號的清單,這兩種輸出可能差異極大,而這項差異正是 Word 內建排序在不同版本與地區設定下不一定能穩定提供的。
數值比較並不會嘗試解析更複雜的結構。像「3.14」這種小數、ISO 日期、「1.10.0」這種語意化版本、「5kg」這種單位,以及帶正負號的數學運算式,在同一個 collator 下仍然會以純文字方式比較。對大多數檔名與標籤的使用情境而言,這個差別並不重要;但凡涉及需要結構化解讀的情況,你需要的會是解析器,而非排序器。
如何使用 Text Sorter 在 Word 中排序文字
以下是完整的端對端工作流程。跑過一次之後,無論清單為何,步驟都一樣。
- 在 Word 中選取要排序的清單並複製。如果清單就是整份簡短文件的本文,請用 Ctrl+A 全選後再複製。如果清單是表格中的單一欄,請只選取該欄,以免影響標題列或其他欄位。
- 在瀏覽器中開啟 Text Sorter。把複製的文字貼到輸入欄位。
- 選擇排序方向(升冪或降冪)、決定是否進行大小寫敏感比較,並決定是否套用自然數字排序。
- 只啟用你想要的清理控制:修剪每行、移除空行、移除完全重複項。如果不希望套用某項行為,就關掉它。
- 執行排序。工具會同時顯示原本的邏輯行數與最終行數,因此你能立刻看到清理流程移除了多少行。
- 檢視精準預覽面板,然後複製排序後的文字,或下載為 UTF-8 TXT 檔。下載的檔案一律使用 LF 換行,與輸入使用的換行格式無關,這就是為何混合的輸入換行在結果中會變得一致。
- 回到 Word,選取原本的清單,將排序後的結果就地貼回。在你按下貼上之前,原本的文件都不會被更動。
工具會在排序前拒絕超過 1,000,000 個 UTF-16 字碼單位或超過 50,000 行的輸入,且不會回傳部分結果。在上限之內的輸入,其完整結果會渲染於預覽中,方便你在下載前先行驗證。預覽中的視覺換行不會產生額外的邏輯行,因此預覽看到的內容與下載檔案中的內容完全一致。
穩定排序、大小寫敏感度與相等項目
此排序使用瀏覽器的英文 Intl.Collator,套用你所選擇的大小寫敏感度與數字選項,並作用於一個經過裝飾的陣列,使等價項目維持原本的相對順序。無論升冪或降冪,都會保留穩定性。
這個穩定性規則會產生一個細微的結果。降冪排序會反轉比較結果,但並非單純反轉最終陣列——後者同樣會反轉等價項目,破壞穩定性保證。因此,在降冪排序下比較為相等的兩行,會維持它們在輸入時的相對順序,而非該順序的反向。
大小寫敏感度是第二個決策點。關閉大小寫敏感時,只有大小寫差異的字母會被視為等價,因此「Apple」與「apple」會排序到同一個位置,並由原本的相對順序決定誰排前面。開啟大小寫敏感時,大小寫會參與比較,因此在英文 collation 規則下,「apple」會排在「Apple」之前。MDN 上的 Intl.Collator 參考文件說明了瀏覽器如何實作此比較。
穩定性與大小寫敏感度都會影響輸出是否可重現。同樣的輸入文字、同樣的瀏覽器 collation 實作,以及同樣的選項,每次都會產生相同的行序,這讓結果具有可稽核性。更動任何輸入或選項會立即清空先前的輸出,因此新組態的結果不會與先前的行數混淆。
什麼時候該留在 Word 中處理
瀏覽器方案對少數特定工作並不適合,那些工作由 Word 的「排序」對話框處理反而更理想,或需要完全不同的工具。
帶有引號換行的 CSV 資料就是一種。CSV 的一列可以在引號字串中包含真正的換行符號,此時若以個別物理行來排序,會破壞該筆紀錄的結構。對於 CSV,請使用能理解引號、標題與多欄位的表格工具。
帶標題的多欄表格是另一種。對單一欄獨立排序會喪失各欄之間的對應關係。在 Word 中,能同時處理標題與欄位關係的表格排序才是正確做法;同樣的注意事項也適用於你把單一欄複製出來、排好序、貼回去而未重新對齊其他欄位的狀況。
瀏覽器的英文 collation 與你的資料庫 ORDER BY 行為、作業系統的檔名排序,或試算表的地區設定並不相同。若排序後的輸出會成為合約性或可重現的機器產出物——例如 CSV 摘要、資料庫匯入檔、版本控管的設定檔。請先確認英文瀏覽器 collation 以及你所選擇的數字與大小寫選項與目的地系統一致,再依賴其結果。對一次性使用的 Word 文件而言,這種對齊通常並不重要。
針對日常情況——也就是把從 Word 抽出的清單依字母排序,特別是同時需要自然排序、修剪與去重的編號檔名、標籤集與字詞清單——前述的 Text Sorter 工作流程是最直接的路徑。試算表文字的另一個瀏覽器工作流程,請參閱在 Excel 中排序文字:本地瀏覽器工作流程。