茶飲店的線上留言,有英文、法文、日文、韓文、西班牙文,我看不懂又不想一則一則複製到翻譯網站。這種時候用 GOOGLETRANSLATE 直接在儲存格翻譯,再用 DETECTLANGUAGE 先判斷每一則是哪國語言。
這兩個函式的參數都很少,語法相當單純。順帶一提,Microsoft 365 版本的 Excel 也有 TRANSLATE 和 DETECTLANGUAGE(使用 Microsoft 翻譯服務,僅限 Microsoft 365),不是 Google 試算表獨有的。
先看資料
留言放在 A1:A6,B 欄之後等一下放結果:
| 留言 |
|---|
| Thank you, the tea was great |
| Merci, le thé était très bon |
| ありがとう、お茶はとてもおいしかったです |
| 감사합니다, 차가 정말 맛있었어요 |
| Gracias, el té estuvo muy bueno |
DETECTLANGUAGE
DETECTLANGUAGE 意思是「偵測語言」,回傳語言代碼。
語法
- 文字或範圍:可以是雙引號包住的文字,也可以是儲存格。給範圍的話必須是單一欄的一維範圍。
官方說明另外提到,如果範圍裡有好幾種語言,只會判斷找到的第一段文字。所以每則留言語言都不同的時候,我習慣一格一格對,不要整欄丟進去。
範例
B2 輸入,往下拉到 B6:
判斷 A2 是哪國語言
=DETECTLANGUAGE(A2)來看看結果:
| 列 | A | B |
|---|---|---|
| 2 | Thank you, the tea was great | en |
| 3 | Merci, le thé était très bon | fr |
| 4 | ありがとう、お茶はとてもおいしかったです | ja |
| 5 | 감사합니다, 차가 정말 맛있었어요 | ko |
| 6 | Gracias, el té estuvo muy bueno | es |
字太短的時候,判斷容易不準。像單獨一個 "Bonjour" 大概猜得到是法文,但如果是兩三個字的店名、品名,就不太可靠,這點要記得。
GOOGLETRANSLATE
語法
- 文字:要翻譯的內容,用雙引號包住,或指向儲存格。
- 來源語言:選填,語言代碼。不填就是自動偵測,也可以明確寫
"auto"。 - 目標語言:選填,語言代碼。不填就用你的系統語言。
有一個規則:來源語言不填的時候,目標語言也要一起不填。要指定目標語言,來源語言就得跟著寫(寫 "auto" 也算)。
範例
官方說明的範例:
英文翻成西班牙文
=GOOGLETRANSLATE("Hello World", "en", "es")結果是 Hola Mundo。
我自己最常用的寫法是來源 "auto"、目標繁體中文:
自動偵測來源語言,翻成繁體中文
=GOOGLETRANSLATE(A2, "auto", "zh-TW")A2 的英文留言可能會得到像「謝謝,茶很好喝。」這樣的結果。翻譯是機器翻的,同一句每次文字不一定完全相同,這邊的結果就當參考,用在需要精準的地方(合約、公告)要人工看過。
來源語言和目標語言也可以放在儲存格。例如 C 欄放代碼,D 欄放目標語言:
來源語言與目標語言都來自儲存格
=GOOGLETRANSLATE(A2, C2, D2)常用語言代碼
| 語言 | 代碼 |
|---|---|
| 繁體中文 | zh-TW |
| 簡體中文 | zh-CN |
| 英文 | en |
| 日文 | ja |
| 韓文 | ko |
| 法文 | fr |
| 西班牙文 | es |
| 德文 | de |
| 泰文 | th |
| 越南文 | vi |
| 印尼文 | id |
官方說明寫的是兩個字母的語言代碼,像 "en"、"ko"、"ja"。中文要分繁簡的時候,我用的是 "zh-TW" 和 "zh-CN",這兩個不是兩個字母,官方頁面沒列出,是 Google 翻譯一直以來的代碼。完整的支援語言清單,到 Google 翻譯支援的語言列表查最準,這邊只列我常看到的。
兩個函式一起用
只想翻譯不是中文的留言,中文的留言原樣保留,可以先用 DETECTLANGUAGE 判斷,再決定要不要翻。
先在 B 欄放語言代碼(),再於 C2 寫:
中文原樣保留,其他語言翻成繁體中文
=IF(LEFT(B2, 2) = "zh", A2, GOOGLETRANSLATE(A2, B2, "zh-TW"))LEFT(B2, 2) 取語言代碼的前兩個字母,這樣不管偵測到的是 zh、zh-TW,還是繁體中文實際會回的 zh-Hant,都算中文。如果 A 欄有一則中文留言,C 欄就會原樣照抄。
多列翻譯:用 MAP 逐筆翻
只會回「你好」,不會逐列展開。
要明確逐筆翻譯,可以使用 MAP,先擋住空字串:
逐筆翻譯並保留空白,得到你好、再見與空字串
=MAP(
{"hello";"goodbye";""},
LAMBDA(t, IF(t="", "", GOOGLETRANSLATE(t, "en", "zh-TW")))
)結果是三列:「你好」「再見」「空字串」。套回自己的資料時,把陣列換成有限的實際資料範圍,語言代碼依需求調整;先確認輸出區有空間,再從少量資料開始。機器翻譯的措辭每次可能不同。
來源裡的錯誤值會原樣保留:上游是 #N/A,翻譯結果仍是 #N/A,MAP 裡的空字串判斷不會處理錯誤。應該先追查來源原因,不要把錯誤當成某種語言。
翻完之後,我習慣用 Ctrl + Shift + V(Mac:Cmd + Shift + V,在 Chrome)把結果貼成值,讓這次確認過的譯文固定下來;貼值後來源更新不會自動重翻,原始留言應另外保留。
練習
翻成日文
A2 的留言語言不確定。請在 B2 寫一條公式,自動偵測語言,翻成日文。
留言翻完,看起來沒問題再整理成報表,搭配 QUERY 篩選更方便。
我是喜特先生,Mr. Sheet,我們下個教學見!
接下來可以
相關文章
查看所有文章Google 試算表常用進階函式導覽:QUERY、IMPORTRANGE、GOOGLEFINANCE、SPARKLINE 怎麼選,Excel 有沒有
從 Excel 轉到 Google 試算表,哪些函式要先學、Excel 又有沒有對應?依「解決什麼問題」分組介紹 QUERY、IMPORTRANGE、IMPORTHTML、IMPORTXML、ARRAYFORMULA、SPLIT、REGEX 系列、GOOGLEFINANCE、GOOGLETRANSLATE、DETECTLANGUAGE、IMAGE、SPARKLINE、AI,每個附語法、Excel 對照表與詳細教學連結。
收款訊息、收據編號與月份分組:用 TEXT 把日期金額組成文字
用 TEXT 把日期和金額組成一句話的訊息範本、產生 INV-2026-0012 這種補零的收據編號、做出依月份分組的鍵來加總,再加上不看語系的中文星期寫法。
拆字串與合字串:SPLIT、TEXTJOIN、JOIN、CONCATENATE 與 CONCAT
整理一格拆多格的 SPLIT(split_by_each、remove_empty_text、數字和日期自動轉換)與多格合一格的 TEXTJOIN、JOIN、CONCATENATE、CONCAT,包含 ignore_empty、JOIN 只吃一維、CONCAT 只有兩個參數,以及和 & 運算子的差別。
留言討論
共 0 則留言
