ExcelのTRANSLATE関数の使い方|自動翻訳を関数1つで

スポンサーリンク

海外のクライアントから届いた資料、英語のデータベース。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 TRANSLATESheets GOOGLETRANSLATE
翻訳エンジンMicrosoft Translation ServicesGoogle Translate API
対応環境Microsoft 365(サブスクリプション)Googleスプレッドシート(無料)
言語自動検出第2引数を省略するだけ“auto”を明示指定
中国語コードzh-Hans / zh-Hantzh-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") を試してみてください。翻訳サイトとの往復がなくなるだけで、作業効率がぐっと上がりますよ。


関連記事

タイトルとURLをコピーしました