海外のクライアントから届いた資料、英語のデータベース。Excelで翻訳したいと思ったこと、ありますよね。
これまではGoogle翻訳を開いてコピー&ペーストするしかありませんでした。何十行もあるデータだと、気が遠くなります。
そんな悩みを解決するのがTRANSLATE関数です。セルに数式を1つ入れるだけで、テキストを自動翻訳できます。
この記事では、ExcelのTRANSLATE関数の使い方を基本から応用まで解説します。エラー対処法やGoogleスプレッドシートとの違いもまとめました。
ExcelのTRANSLATE関数とは?
TRANSLATE関数は、セル内のテキストを指定した言語に翻訳するExcelの関数です。読み方は「トランスレート」で、英語の「翻訳する」がそのまま名前になっています。
Microsoft Translation Servicesという翻訳エンジンを使っています。133以上の言語に対応しており、精度も実用レベルです。
2024年12月に追加された比較的新しい関数です。従来のExcelにも「校閲」タブの翻訳機能はありましたが、セル数式として使えるのはこのTRANSLATE関数が初めてです。
どんなときに使う関数か
TRANSLATE関数は次のようなシーンで活躍します。
- 海外取引先のデータを日本語に変換したいとき
- 商品名や説明文を多言語に展開したいとき
- 外国語のメールやコメントを素早く理解したいとき
- 大量のテキストデータをまとめて翻訳したいとき
セルに数式を入れるだけなので、翻訳サイトとの往復が不要になりますよ。
利用条件(Microsoft 365・インターネット接続)
TRANSLATE関数を使うには2つの条件があります。
- Microsoft 365のサブスクリプションが必要
- インターネット接続が必須(クラウド翻訳のため)
Excel 2019やExcel 2021などの永続ライセンス版では使えません。Excel LTSC 2024も対象外です。Microsoft 365のWindows版・Mac版・Web版・モバイル版で利用できます。
NOTE
TRANSLATE関数はクラウドの翻訳サービスに接続します。オフライン環境では動作しないので注意してください。
TRANSLATE関数の構文と引数
基本構文
=TRANSLATE(テキスト, [翻訳元の言語コード], [翻訳先の言語コード])
カッコ内に翻訳したいテキストと言語コードを指定します。第2・第3引数は省略可能です。
第1引数:翻訳したいテキスト
翻訳対象の文字列またはセル参照を指定します。
=TRANSLATE("Hello", "en", "ja")
=TRANSLATE(A1, "en", "ja")
直接テキストを入力する場合はダブルクォーテーションで囲みます。セル参照を使うのが一般的です。
1回の翻訳で扱えるのは最大3,000文字です。超えると#VALUE!エラーになります。
第2引数:翻訳元の言語コード
翻訳元の言語をISO 639-1形式のコードで指定します。省略すると自動検出になります。
英語から日本語に翻訳する場合と、言語を自動検出して日本語に翻訳する場合の書き方です。
=TRANSLATE(A1, "en", "ja")
=TRANSLATE(A1,, "ja")
言語がわかっている場合はコードを指定しましょう。自動検出より精度が安定します。
第3引数:翻訳先の言語コード
翻訳先の言語を同じくISO 639-1形式で指定します。省略するとシステムの言語(通常は日本語)になります。
第3引数だけを指定する場合と、英語からフランス語に翻訳する場合の書き方です。
=TRANSLATE(A1, "en")
=TRANSLATE(A1, "en", "fr")
よく使う言語コード一覧
| 言語 | コード | 言語 | コード |
|---|---|---|---|
| 日本語 | ja | フランス語 | fr |
| 英語 | en | ドイツ語 | de |
| 中国語(簡体字) | zh-Hans | スペイン語 | es |
| 中国語(繁体字) | zh-Hant | ポルトガル語 | pt |
| 韓国語 | ko | イタリア語 | it |
| アラビア語 | ar | ロシア語 | ru |
TIP
中国語の言語コードは「zh-Hans」(簡体字)と「zh-Hant」(繁体字)で分かれています。Googleスプレッドシートの「zh-CN」「zh-TW」とは異なるので注意してくださいね。
Excel TRANSLATE関数の基本的な使い方
まずはシンプルな例で動きを確認しましょう。
英語を日本語に翻訳する
もっとも多い使い方です。A列の英語テキストをB列で日本語にします。
=TRANSLATE(A2, "en", "ja")
A2に「Thank you for your inquiry」と入っていれば、「お問い合わせありがとうございます」のように返ります。数式を下にコピーすれば、複数行をまとめて翻訳できますよ。
日本語を英語に翻訳する
海外向けに日本語テキストを英訳するケースです。
=TRANSLATE(A2, "ja", "en")
A2に「本日はお忙しい中ありがとうございます」と入っていれば、英語に翻訳されます。ビジネスメールの下書きにも使えます。
言語を自動検出して翻訳する
何語かわからないテキストを翻訳したいときは、第2引数を省略します。
=TRANSLATE(A2,, "ja")
翻訳エンジンが自動で言語を判別して日本語に変換してくれます。多言語が混在するデータを扱うときに便利です。
実践的な使い方・応用例
海外顧客リストを日本語に変換する
海外拠点から届いた顧客リストを日本語化する例です。
A列に顧客の会社名や所在地が英語で入っているとします。B列に次の数式を入れて下方向にコピーしましょう。
=TRANSLATE(A2, "en", "ja")
| A列(元データ) | B列(翻訳結果) |
|---|---|
| Tokyo International Trading Co. | 東京国際貿易株式会社 |
| 123 Main Street, New York | ニューヨーク、メインストリート123 |
| Logistics and Supply Chain Dept. | 物流・サプライチェーン部門 |
数十行あっても一括で翻訳できます。手作業でのコピー&ペーストから解放されますよ。
商品カタログを多言語に展開する
1つの商品説明を複数の言語に翻訳する例です。
A列に日本語の商品説明が入っているとします。B列を英語、C列を中国語(簡体字)、D列を韓国語にします。
B列(英語)の数式です。
=TRANSLATE(A2, "ja", "en")
C列(中国語・簡体字)の数式です。
=TRANSLATE(A2, "ja", "zh-Hans")
D列(韓国語)の数式です。
=TRANSLATE(A2, "ja", "ko")
言語コードを変えるだけで多言語展開が完了します。カタログや製品データベースの国際化に活用してみてください。
問い合わせメールを翻訳する
海外からの問い合わせ内容をまとめて翻訳する例です。
A列にメール本文が入っている場合、翻訳元の言語が統一されていないこともあります。その場合は自動検出が便利です。
=TRANSLATE(A2,, "ja")
英語、フランス語、スペイン語など、さまざまな言語が混在していても対応できます。
ただし、1セルあたり3,000文字の制限があります。長いメールは分割して翻訳しましょう。
DETECTLANGUAGE関数と組み合わせる
DETECTLANGUAGE関数は、テキストの言語を自動検出してコードを返す関数です。TRANSLATE関数と組み合わせると、より明示的に言語を処理できます。
=TRANSLATE(A2, DETECTLANGUAGE(A2), "en")
DETECTLANGUAGE関数がA2の言語コードを返し、それをTRANSLATE関数の第2引数に渡します。自動検出の省略記法と似ていますが、検出結果を別セルに表示して確認できるのがメリットです。
B列で言語を検出し、C列で翻訳する書き方です。
=DETECTLANGUAGE(A2)
=TRANSLATE(A2, B2, "ja")
この書き方なら、元データが何語だったかを記録に残せます。多言語データの管理に役立ちますよ。
なお、Googleスプレッドシートにも同名のDETECTLANGUAGE関数があります。スプレッドシート版の詳しい使い方はスプレッドシートのDETECTLANGUAGE関数の使い方を参考にしてください。
よくあるエラーと対処法
TRANSLATE関数で表示されるエラーと対処法をまとめました。
#VALUE! エラー
原因: テキストが3,000文字を超えている。またはテキスト以外の値(数値・論理値など)を指定している。
対処法: 文字数を3,000文字以内に収めましょう。数値を翻訳したい場合は、TEXT関数(数値を指定した書式の文字列に変換する関数)で文字列に変換してから渡します。
=TRANSLATE(TEXT(A2, "0"), "en", "ja")
#CONNECT! エラー
原因: インターネットに接続されていない。またはネットワークが不安定。
対処法: ネットワーク接続を確認してください。VPN環境では接続がブロックされることもあります。接続を復旧したら、セルを再計算(Ctrl + Alt + F9)してみましょう。
Request Throttled エラー
原因: 日次の翻訳クォータを超過した。
対処法: 時間をおいてから再実行してください。大量のセルを一度に翻訳すると発生しやすくなります。翻訳対象を分割して少しずつ処理するのがおすすめです。
Invalid Language エラー
原因: サポートされていない言語コードを指定した。
対処法: 言語コードが正しいか確認しましょう。よくある間違いとして、中国語で「zh」だけを指定するケースがあります。Excelでは「zh-Hans」または「zh-Hant」を使ってください。
| エラー | 原因 | 対処法 |
|---|---|---|
| #VALUE! | 3,000文字超過またはテキスト以外の値 | 文字数を削減。TEXT関数で変換 |
| #CONNECT! | オフラインまたはネットワーク不安定 | 接続を確認して再計算 |
| Request Throttled | 日次クォータ超過 | 時間をおいて再実行 |
| Invalid Language | 非対応の言語コード | 正しいコードに修正 |
エラーが出てもコードを確認すればほとんど解決できますよ。
GoogleスプレッドシートのGOOGLETRANSLATEとの違い
Googleスプレッドシートには、同様の機能をもつGOOGLETRANSLATE関数があります。どちらを使うか迷ったときのために、5つの軸で比較します。
| 比較項目 | Excel TRANSLATE | Sheets GOOGLETRANSLATE |
|---|---|---|
| 翻訳エンジン | Microsoft Translation Services | Google Translate API |
| 対応環境 | Microsoft 365(サブスクリプション) | Googleスプレッドシート(無料) |
| 言語自動検出 | 第2引数を省略するだけ | “auto”を明示指定 |
| 中国語コード | zh-Hans / zh-Hant | zh-CN / zh-TW |
| 費用 | Microsoft 365の契約が必要 | 無料で利用可能 |
大きな違いは利用環境と費用です。Microsoft 365を契約していればTRANSLATE関数が使えます。無料で翻訳したい場合はGoogleスプレッドシートのGOOGLETRANSLATE関数が選択肢になります。
言語自動検出の書き方にも違いがあります。ExcelのTRANSLATE関数は引数を省略するだけです。一方、GOOGLETRANSLATEは”auto”を明示的に指定します。
翻訳精度はどちらも実用レベルです。ただし、翻訳エンジンが異なるため、同じテキストでも訳文が微妙に変わることがあります。
スプレッドシート版の詳しい使い方はスプレッドシートのGOOGLETRANSLATE関数の使い方を参考にしてみてください。
まとめ
TRANSLATE関数は、Excelのセル上でテキストを翻訳できる関数です。
この記事のポイントを整理します。
- 構文は
=TRANSLATE(テキスト, 翻訳元言語, 翻訳先言語) - Microsoft 365とインターネット接続が必要
- 133以上の言語に対応。言語コードはISO 639-1形式
- 1回あたり3,000文字まで翻訳できる
- DETECTLANGUAGE関数と組み合わせると多言語データにも対応可能
- #VALUE!や#CONNECT!エラーは文字数と接続を確認する
- Googleスプレッドシートにも同様のGOOGLETRANSLATE関数がある
まずは =TRANSLATE("Hello", "en", "ja") を試してみてください。翻訳サイトとの往復がなくなるだけで、作業効率がぐっと上がりますよ。
