Excel 沒有內建的 REVERSE 函數,所以要翻轉儲存格內的字串,通常意味著在輔助欄位中建立 MID 加 CONCATENATE 公式、撰寫 VBA 巨集,或安裝付費外掛。這幾種方式都有各自的摩擦點:當審閱者不了解你的邏輯時,公式會變得難以稽核;VBA 需要在每台開啟檔案的機器上啟用並信任巨集安全性;外掛則會將第三方程式碼注入你的活頁簿。第四種選項使用你已經開啟的瀏覽器:將儲存格內容貼到翻轉頁面,執行該操作,再把結果貼回來。這聽起來很簡單,但如果翻轉步驟本身是透過 JavaScript 的 UTF-16 字碼單元來切割字串而實作,那它可能會悄悄損壞表情符號、組合附加符號,以及 Windows 風格的 CRLF 行尾符號 — 而這正好就是促使我們需要像 Text Reverser 這種具備 Unicode 感知能力工具的失敗模式。接下來的章節會逐步說明準備工作、實際翻轉,以及貼回的流程,並以並列方式比較三種可用的模式,讓你能根據姓名、識別碼、日誌行或貼上的文字區塊挑選最適合的模式。

為什麼 Excel 沒有原生的 REVERSE 函數
Excel 內建了一長串文字函數 — LEFT、RIGHT、MID、LEN、CONCAT、TEXTJOIN、SUBSTITUTE — 但 REVERSE 卻明顯缺席。Microsoft 無論在桌面版、Mac 版或網頁版中都沒有加入它,因此目前要在儲存格內鏡像字串,都必須從基本操作組合而成。經典的做法是從來源字串的末端往前端逐字元走訪,然後以相反順序串接各個片段。
套用該做法時,會立即出現三個實際問題:
- 在較舊的 Excel 版本中,陣列公式必須以 Ctrl+Shift+Enter 輸入,而且輸入行為在 Excel 365 與 Excel 2019 之間並不相同。
- 該公式對每個字元的處理方式都一樣,因此組合附加符號(例如 é 儲存為字母 e 後接組合尖音符)以及代理對表情符號(例如笑臉儲存為兩個 UTF-16 字碼單元)會在叢集中間被切開。
- 結果會放在不同的儲存格中。若要取代原儲存格,你必須複製公式結果、以值的形式貼回,然後刪除輔助欄位 — 每個儲存格都要三個手動步驟。
VBA 巨集能解決陣列公式輸入的問題,但會帶來巨集安全性提示、獨立的 .bas 模組,以及 32 位元與 64 位元 Office 版本之間的版本漂移。Kutools 風格的外掛能一鍵完成工作,但它也會安裝在 Excel 內執行、並讀取你複製到剪貼簿內容的第三方程式碼。
瀏覽器工作流程一覽
把儲存格內容貼到瀏覽器頁面,再把結果貼回來,以剪貼簿往返取代公式,但操作本身更快,Unicode 的處理也更誠實。Text Reverser 完全在你的瀏覽器分頁中執行 — 不上傳、不需帳號、無伺服器端處理 — 因此你貼上的任何內容都會停留在當前頁面上,直到你關閉為止。這使得該方法適用於不應離開你筆電的文字類型:客戶識別碼、內部日誌行、草稿文案、API 金鑰,以及未發表的產品名稱。
工作流程很短,可以對每個儲存格或每個欄位重複執行:
- 使用 Ctrl+C 從 Excel 複製一個或多個儲存格。
- 貼到翻轉頁面的輸入框中。
- 挑選符合你目標的模式 — 字元、單字或行。
- 觸發翻轉並複製結果。
- 使用 Ctrl+V 貼回 Excel,覆寫原儲存格。
困難的部分在步驟 3,因為每種模式會改變「已翻轉」的意義。下一節會說明如何準備你的資料,讓翻轉結果符合你真正想要的內容。
貼上之前先準備 Excel 資料
在動用工具之前,先決定你要翻轉的是什麼:
- 包含姓名、程式碼或識別碼的單一儲存格 → 複製該單一儲存格。
- 包含姓名、識別碼或程式碼的整欄 → 選取整個欄位並複製,工具會將每行視為一個值。
- 包含多欄的矩形區塊 → 只翻轉你在意的該欄,或貼上整個區塊並使用行模式來翻轉列順序。
- 含有前置或尾端空白的儲存格 → 先進行修剪,或留意在單字模式下,連續空白會保持在原位置。
- 含有表情符號、附加符號字母或 CRLF 行尾符號的儲存格 → 保持原樣;具備 Unicode 感知的字元模式正是用來保護它們的。
若你正在處理含有匯出前置空白的姓名欄位,請在貼上之前先執行一次 TRIM,這樣翻轉結果才不會帶有填補空白。若該欄位在各儲存格之間使用 Windows 行尾符號(CRLF) — 例如從 Notepad 貼上後的情況 — 行模式會保留那些換行,而不是悄悄轉換為 LF。我們關於在 Excel 中移除換行但保留間距的指南,涵蓋了同類型資料的反向操作。
在 Text Reverser 中執行翻轉
當輸入準備就緒後,工具本身只需三個步驟:
- 在文字框中輸入或貼上最多 100,000 個字元。
- 選擇 Characters 以處理 Unicode 字符叢集、Words 以處理非空白連續區段,或 Lines 以處理邏輯行順序。
- 選擇 Reverse text,確認產生的順序,並視需要複製結果。
100,000 字元的上限會以明確錯誤的方式強制執行:過大的輸入不會被靜默截斷。空輸入也會產生明確錯誤。一旦你編輯來源或變更模式,先前的輸出與「已複製」確認都會被清除,因此舊的結果絕不會被誤認為新的輸入。產生的文字僅存在於當前頁面狀態中,而複製行為取決於瀏覽器的剪貼簿權限 — 被拒絕的剪貼簿寫入會被回報,而不是被誤標為成功。
輸入中格式錯誤的 UTF-16 代理序列會在任何轉換執行之前被拒絕。
挑選適合工作的字元、單字或行模式
這三種模式並不能互換。快速指南:
| 目標 | 模式 | 保留的內容 |
|---|---|---|
| 以字元方式將「Smith, John」鏡像為「John, Smith」 | Characters | 每個使用者可見的叢集保持完整 |
| 反轉單字清單同時保留空白 | Words | 連續空白保持在原位置 |
| 翻轉貼上的日誌行或檢查清單項目的順序 | Lines | 保留 CRLF、LF 與 CR 分隔符 |
| 翻轉區塊中每一行的字元順序 | 先使用 Lines,再對每行使用 Characters | 執行工具兩次 |
單字模式具有刻意狹窄的定義:單字是指任何連續的非空白字元,而附加在 token 上的標點符號會與該 token 留在一起。該工具不會套用語言特定的 token 化、字典規則、標點移除、詞幹處理,或雙向文字重新塑形。在單字模式下翻轉「café, naïve, résumé」會產生「résumé naïve, café,」,結尾的逗號會附加在 café 上 — 這是可預期的,且在每台機器上都相同。
字元模式使用瀏覽器的 Intl.Segmenter API,在字符叢集邊界處切分輸入,然後反轉所產生的使用者可見叢集。一個笑臉表情符號 😀 即使佔用兩個 UTF-16 字碼單元,也會被視為一個叢集;一個家庭表情符號 👨�👧 即使由數個以零寬連接符連接的碼位組成,也是一個叢集;「é」即使儲存為基底字母加上組合記號,也是一個叢集。以字碼單元進行天真的反轉會切開這些序列並產生明顯損壞的輸出 — 這正是該模式致力避免的失敗。不支援 Intl.Segmenter 的瀏覽器會使用保守的備援方案,該方案仍能保留最常見的序列,而 Unicode Text Segmentation 標準記載了分段器所遵循的邊界規則。
將翻轉後的文字放回 Excel 儲存格
當結果已在你的剪貼簿上後,回到活頁簿並使用 Ctrl+V 貼上。若要就地覆寫原儲存格:
- 選取你複製時的來源範圍(例如 A2:A250)。
- 使用 Ctrl+V 貼上。
- 按下 Esc 關閉貼上選項的工具提示。
如果你的翻轉顛倒了行順序,並希望每個翻轉後的行落在自己的列上,那麼行模式已經產生了「一行對應一行來源」的輸出,直接貼上即可讓每行回到對應的儲存格 — Excel 會依據你保留的換行符進行切分。如果你的輸入是單一儲存格且內部含有換行(儲存格內的 Alt+Enter 字元),那麼 Word 模式會將每個內部行視為一個 token,並且不會在儲存格內保留那些換行;只有在每個邏輯行來自不同儲存格時,才應使用行模式。
一個簡單的實作範例:若儲存格 A1 含有「Excel」,則它包含 5 個字符叢集。在工具中以字元方式反轉會產生「lecxE」,仍然是 5 個字符叢集。將其貼回 A1 後,該儲存格會顯示「lecxE」,長度不變。對於 A2 中一個 12 字元的名稱,翻轉結果也是 12 個字元 — 該工具不會新增或移除字符叢集,只會改變其順序。
一個注意事項:翻轉是一種呈現上的轉換,並非加密或混淆。來源中的雙向控制字元會影響文字的顯示方式,即使儲存的序列是正確的,因此若你的儲存格含有由右至左的文字(阿拉伯文、希伯來文),請在依賴結果之前先以肉眼檢查輸出。該工具也不會對組合與分解的 Unicode 形式進行標準化,或去除不可見字元 — 它只會重新排列你所提供的內容。
何時公式仍是正解
瀏覽器往返方式在一次性清理、混合文字,以及含有大量 Unicode 的內容方面表現優異。當你需要讓翻轉結果隨來源儲存格的變動而即時更新時 — 例如 B 欄是 A 欄即時鏡像的工作表 — 公式仍然是首選。在這種情況下,請在輔助欄位中保留 MID 加 CONCATENATE 陣列公式,並接受 Unicode 方面的限制。這兩種做法並不互斥:許多使用者對即時鏡像保留公式,並對一次性匯出、封存資料,以及含有表情符號或組合附加符號的貼上區塊使用瀏覽器工具。
針對另一種同樣以免公式方式達成最快路徑的情境 — 對整欄進行大寫、小寫與首字母大寫轉換 — 在 Excel 工作表中免公式變更大小寫的指南以不同工具說明了相同的瀏覽器工作流程。