跳到主要內容跳到頁尾

GOOGLETRANSLATE 與 DETECTLANGUAGE:在試算表裡翻譯和判斷語言

5 分鐘閱讀Lv.3 中級摘要與日期

GOOGLETRANSLATE 的語法、auto 自動偵測來源語言、常用語言代碼表,DETECTLANGUAGE 判斷文字是哪國語言,以及兩個函式搭配、只翻譯不是中文的留言的做法。依官方說明整理。

發布 更新

文章目錄

茶飲店的線上留言,有英文、法文、日文、韓文、西班牙文,我看不懂又不想一則一則複製到翻譯網站。這種時候用 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:

Google 試算表公式
fx

判斷 A2 是哪國語言

=DETECTLANGUAGE(A2)

來看看結果:

列AB
2Thank you, the tea was greaten
3Merci, le thé était très bonfr
4ありがとう、お茶はとてもおいしかったですja
5감사합니다, 차가 정말 맛있었어요ko
6Gracias, el té estuvo muy buenoes

字太短的時候,判斷容易不準。像單獨一個 "Bonjour" 大概猜得到是法文,但如果是兩三個字的店名、品名,就不太可靠,這點要記得。

GOOGLETRANSLATE

語法

  • 文字:要翻譯的內容,用雙引號包住,或指向儲存格。
  • 來源語言:選填,語言代碼。不填就是自動偵測,也可以明確寫 "auto"。
  • 目標語言:選填,語言代碼。不填就用你的系統語言。

有一個規則:來源語言不填的時候,目標語言也要一起不填。要指定目標語言,來源語言就得跟著寫(寫 "auto" 也算)。

範例

官方說明的範例:

Google 試算表公式
fx

英文翻成西班牙文

=GOOGLETRANSLATE("Hello World", "en", "es")

結果是 Hola Mundo。

我自己最常用的寫法是來源 "auto"、目標繁體中文:

Google 試算表公式
fx

自動偵測來源語言,翻成繁體中文

=GOOGLETRANSLATE(A2, "auto", "zh-TW")

A2 的英文留言可能會得到像「謝謝,茶很好喝。」這樣的結果。翻譯是機器翻的,同一句每次文字不一定完全相同,這邊的結果就當參考,用在需要精準的地方(合約、公告)要人工看過。

來源語言和目標語言也可以放在儲存格。例如 C 欄放代碼,D 欄放目標語言:

Google 試算表公式
fx

來源語言與目標語言都來自儲存格

=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 寫:

Google 試算表公式
fx

中文原樣保留,其他語言翻成繁體中文

=IF(LEFT(B2, 2) = "zh", A2, GOOGLETRANSLATE(A2, B2, "zh-TW"))

LEFT(B2, 2) 取語言代碼的前兩個字母,這樣不管偵測到的是 zh、zh-TW,還是繁體中文實際會回的 zh-Hant,都算中文。如果 A 欄有一則中文留言,C 欄就會原樣照抄。

多列翻譯:用 MAP 逐筆翻

只會回「你好」,不會逐列展開。

要明確逐筆翻譯,可以使用 MAP,先擋住空字串:

Google 試算表公式
fx

逐筆翻譯並保留空白,得到你好、再見與空字串

=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)把結果貼成值,讓這次確認過的譯文固定下來;貼值後來源更新不會自動重翻,原始留言應另外保留。

練習

1

翻成日文

A2 的留言語言不確定。請在 B2 寫一條公式,自動偵測語言,翻成日文。

留言翻完,看起來沒問題再整理成報表,搭配 QUERY 篩選更方便。

我是喜特先生,Mr. Sheet,我們下個教學見!

分享:
#GOOGLETRANSLATE#DETECTLANGUAGE#翻譯#語言代碼
喜特先生 Mr. Sheet

喜特先生 Mr. Sheet

數據分析師/商業分析師

八年工作經驗,跨不同業界解決數據需求。做過的案例都整理在作品集。

接下來可以

相關文章

查看所有文章

留言討論

共 0 則留言

訂閱電子報,新文章上線就通知你

免費,隨時可取消。

送出即表示同意服務條款與隱私權政策。