ExcelのDETECTLANGUAGE関数の使い方|セルの言語を自動判定する

スポンサーリンク

「海外の顧客から届いたメール、英語なのかスペイン語なのか見分けるだけでもひと苦労」「多言語アンケートの自由記述欄を言語別に集計したい」。グローバル業務を担当していると、こんな場面が増えていますよね。

1件ずつ目視で判定するのは現実的ではありません。数百件のリストを前にため息が出てしまうのが正直なところです。

そんなときに頼りになるのがExcelのDETECTLANGUAGE関数です。セルに入っている文字列を解析して、使われている言語を自動で判定してくれます。

この記事では、ExcelのDETECTLANGUAGE関数の使い方を基本から実務の応用例まで解説します。SWITCH関数との組み合わせやTRANSLATE関数との連携、エラー対処やFAQまでまとめましたので、ぜひ参考にしてください。

  1. ExcelのDETECTLANGUAGE関数とは?
    1. どんなときに使う関数か
    2. 利用条件(Microsoft 365が必須)
    3. 似ている関数との違い
  2. DETECTLANGUAGE関数の構文と戻り値
    1. 基本構文
    2. 引数:テキスト
    3. 戻り値:ISO 639-1 言語コード
    4. スピル機能でまとめて判定
  3. Excel DETECTLANGUAGE関数の基本的な使い方
    1. 1つのセルの言語を判定する
    2. 複数セルの言語を一括判定する
    3. IF関数と組み合わせて日本語か判定する
    4. 直接文字列を渡してテストする
    5. 判定結果と元の文字列を並べて確認する
  4. 実践的な使い方・応用例
    1. グローバル顧客リストを言語別に分類する
    2. 多言語アンケートを言語別に振り分ける
    3. FILTER関数と組み合わせて英語の行だけ抽出する
    4. TRANSLATE関数と連携して自動翻訳する
    5. IFERRORでエラー時のラベルを付ける
    6. 条件付き書式で言語を色分けする
    7. Power Queryと組み合わせて定期処理を自動化する
    8. ピボットテーブルで言語別の傾向分析
    9. XLOOKUPで言語コード→言語名の変換テーブルを引く
  5. 短文・空白・数字のみセルでの挙動
    1. 空白セルを渡した場合
    2. 数字だけのセル
    3. 短すぎる文字列
    4. 複数言語が混在した文字列
    5. 記号や絵文字だけのセル
  6. よくあるエラーと対処法
    1. Text Too Long エラー
    2. Error in Value エラー
    3. Request Throttled エラー
    4. #NAME? エラー
    5. #BUSY! / #CONNECT! エラー
    6. #VALUE! エラー
  7. DETECTLANGUAGE関数を使う際の注意点
    1. クラウド経由でデータが送信される
    2. 大量呼び出しはパフォーマンスに影響する
    3. 判定結果は完全ではない
    4. Mac版・Web版の挙動差
    5. 共有ブックでの再計算挙動
    6. バックアップを取ってから一括判定を流す
  8. よくある質問(FAQ)
  9. まとめ

ExcelのDETECTLANGUAGE関数とは?

DETECTLANGUAGE関数は、セルの文字列を解析して使われている言語を判定するExcelの関数です。読み方は「ディテクトランゲージ」で、判定結果はISO 639-1形式の2文字の言語コードで返ります。

内部ではMicrosoft Translation Services(クラウドの翻訳サービス)を利用しているため、インターネット接続が必須です。簡単な単語から長文まで幅広い言語を判定してくれますよ。

比較的新しい関数ですが、使い方はとてもシンプルです。引数は1つだけなので、初めてでも迷いません。

どんなときに使う関数か

ExcelのDETECTLANGUAGE関数は次のような場面で活躍します。

  • グローバル顧客リストを言語別に分類したいとき
  • 多言語アンケートの自由記述を言語別に振り分けたいとき
  • 海外からの問い合わせメールを担当者別にアサインしたいとき
  • TRANSLATE関数(指定した言語に翻訳する関数)と組み合わせて多言語データを一括翻訳したいとき
  • SNSコメントやレビュー本文を地域別に集計したいとき
  • 海外取引先から届くExcelシートの言語をチェックして自動仕分けしたいとき

「どの言語か分からないけどとりあえず仕分けたい」というシーンにぴったりの関数です。Google翻訳やDeepLに1件ずつコピペして調べていた作業が、関数1つで終わってしまいますよ。

利用条件(Microsoft 365が必須)

DETECTLANGUAGE関数を使うには、Microsoft 365のサブスクリプションが必要です。永続ライセンス版のExcel 2019・Excel 2021・LTSC 2024では使えません。

対応環境は次のとおりです。

  • Excel for Microsoft 365(Windows / Mac)
  • Excel for the web
  • Excel Mobile

また、裏側でクラウド翻訳サービスを呼び出す仕組みなので、インターネット接続が必須です。オフライン環境では動きませんので注意してください。

お使いのバージョンが対応しているか、事前に確認しておきましょう。「ファイル → アカウント」で「Microsoft 365 Apps for …」と表示されていれば対応版です。

似ている関数との違い

「言語に関する関数」はいくつかあります。混乱しないように整理しておきましょう。

関数役割戻り値
DETECTLANGUAGE文字列の言語を判定ISO 639-1コード(例: ja
TRANSLATE指定言語に翻訳翻訳後の文字列
PHONETIC漢字のふりがな取得カタカナ・ひらがな
UNICODE / UNICHAR文字コード変換数値・文字

DETECTLANGUAGEは「判定」専用、TRANSLATEは「変換」専用、と覚えておけば使い分けで迷いません。

DETECTLANGUAGE関数の構文と戻り値

基本構文

=DETECTLANGUAGE(テキスト)

引数は1つだけ、判定したいテキストまたはセル参照を指定するだけです。とてもシンプルですね。

引数:テキスト

言語を判定したい文字列、またはセル参照を指定します。

=DETECTLANGUAGE("Hello world")
=DETECTLANGUAGE(A2)

直接文字列を入れる場合はダブルクォーテーションで囲みます。実務ではセル参照を使うのが一般的ですよ。

セル範囲を指定すると、スピル(数式が自動で配列に展開される機能)により一度に複数セルの判定ができます。

=DETECTLANGUAGE(A2:A20)

1つの数式で20件分の判定結果がB2:B20にずらっと表示されます。ループ処理を書く感覚で、しかも数式1つで済むのがうれしいですね。

戻り値:ISO 639-1 言語コード

DETECTLANGUAGE関数の戻り値は、ISO 639-1という国際規格に基づく2文字の言語コードです。代表的なものをまとめました。

言語コード言語名言語コード言語名
ja日本語ptポルトガル語
en英語ruロシア語
zh中国語arアラビア語
ko韓国語thタイ語
esスペイン語viベトナム語
frフランス語idインドネシア語
deドイツ語nlオランダ語
itイタリア語trトルコ語

Microsoft Translation Servicesがサポートする100以上の言語に対応しています。メジャーな言語はほぼカバーされているので、実務で困ることはまずありませんよ。

TIP

中国語の場合、繁体字と簡体字の区別は関数によっては zh-Hans(簡体字)zh-Hant(繁体字)のように細分化されることもあります。基本的には2文字コードで返ると覚えておけば大丈夫です。

スピル機能でまとめて判定

セル範囲を引数に渡せば、1つの数式で複数行の判定結果を一気に取得できます。スピル対応関数の便利さを実感できる場面ですね。

=DETECTLANGUAGE(A2:A100)

B2セルにこの式を入れるだけで、B2:B100に判定結果が自動展開されます。Microsoft 365のスピル機能の真骨頂です。一括処理については Excelのスピル機能|UNIQUE・FILTER・SORT・SEQUENCEで配列を自在に扱う も合わせて読むと理解が深まりますよ。

Excel DETECTLANGUAGE関数の基本的な使い方

それでは実際に数式を組み立ててみましょう。

1つのセルの言語を判定する

もっともシンプルな例です。A2セルの文字列の言語を判定します。

=DETECTLANGUAGE(A2)

A2が「こんにちは」なら ja 、「Hello」なら en 、「Hola」なら es が返ります。一瞬で判定してくれますよ。

複数セルの言語を一括判定する

A2:A10に多言語のテキストが入っている場合、1つの数式で全行を判定できます。

=DETECTLANGUAGE(A2:A10)

B2セルにこの数式を入れるだけで、B2:B10に判定結果がスピルします。数百件あっても1つの数式で済むのが快適ですよ。

IF関数と組み合わせて日本語か判定する

判定結果が日本語かどうかで分岐する例です。

=IF(DETECTLANGUAGE(A2)="ja", "日本語", "その他")

顧客リストから日本語のレコードだけを「日本語」としてマークし、それ以外を「その他」に振り分けます。日本語対応可能な担当者へのアサインに使えますね。

直接文字列を渡してテストする

数式の動作を確認したいときは、直接文字列を渡すと手軽です。

=DETECTLANGUAGE("Bonjour le monde")

この例では fr (フランス語)が返ります。数式の挙動チェックにどうぞ。

判定結果と元の文字列を並べて確認する

判定が正しいかひと目で確認したいときは、元の文字列と判定結果を並べる構成にすると便利です。

A列(本文)B列(コード)
お世話になっておりますja
Thank you for your supporten
감사합니다ko
谢谢您的支持zh
Vielen Dankde
Cảm ơn bạnvi

B2セルに =DETECTLANGUAGE(A2) と入力して下方向にコピーするか、 =DETECTLANGUAGE(A2:A7) でスピルさせれば完成です。

実践的な使い方・応用例

ここからは実務で役立つ応用パターンを紹介します。

グローバル顧客リストを言語別に分類する

海外の顧客から届いたお問い合わせ本文を、言語別に自動分類する例です。

A列に問い合わせ本文、B列に判定結果、C列に日本語の言語名を表示します。

B2セル:

=DETECTLANGUAGE(A2)

C2セル(SWITCH関数で日本語名に変換):

=SWITCH(B2, "ja","日本語", "en","英語", "zh","中国語", "ko","韓国語", "es","スペイン語", "fr","フランス語", "de","ドイツ語", "その他")

SWITCH関数(複数の候補値を順にチェックして一致した値を返す関数)を使うと、言語コードを読みやすい日本語ラベルに変換できます。SWITCH関数の使い方は ExcelのSWITCH関数の使い方|複数条件をスッキリ書く も参考になりますよ。

A列(本文)B列(コード)C列(言語名)
お世話になっておりますja日本語
Thank you for your supporten英語
感谢您的支持zh中国語
Merci beaucoupfrフランス語

IFSの代わりにSWITCHを使うと数式がスッキリしますよ。

多言語アンケートを言語別に振り分ける

アンケートの自由記述欄を言語別にカウントする例です。COUNTIF関数と組み合わせます。

=COUNTIF(B2:B500, "ja")

B列にDETECTLANGUAGE関数の結果を出しておけば、この数式で「日本語回答の件数」を集計できます。言語別の集計レポートがすぐに作れますよ。

集計結果は次のような表になります。

言語件数割合
ja(日本語)31262.4%
en(英語)12424.8%
zh(中国語)387.6%
その他265.2%

割合の計算には =COUNTIF(B2:B500,"ja")/COUNTA(B2:B500) を使えばOKです。

FILTER関数と組み合わせて英語の行だけ抽出する

さらに便利なのがFILTER関数との組み合わせです。英語のレコードだけを別シートに抜き出すイメージです。

=FILTER(A2:C500, DETECTLANGUAGE(A2:A500)="en")

スピルで英語レコードが一気に展開されます。担当者別にシートを分けたいときに威力を発揮しますよ。FILTER関数の応用例は ExcelのFILTER関数の使い方|条件に合うデータだけを抽出する も役立ちますので合わせてどうぞ。

TRANSLATE関数と連携して自動翻訳する

DETECTLANGUAGE関数の真価は、TRANSLATE関数(指定した言語に翻訳する関数)と組み合わせたときに発揮されます。

=TRANSLATE(A2, DETECTLANGUAGE(A2), "ja")

この数式は「A2の言語を自動検出し、日本語に翻訳する」という意味です。送信元の言語が何であれ、すべて日本語に統一できます。

多言語の顧客フィードバックを一括で日本語化するワークフローがこれ1本で完成しますよ。従来はGoogle翻訳やDeepLに1件ずつコピペしていた作業が、数式1つで終わります。詳しいTRANSLATE関数の使い方は ExcelのTRANSLATE関数の使い方|セルの文章を自動翻訳する を参照してください。

実行イメージは次のとおりです。

A列(原文)検出言語TRANSLATE後(日本語)
Thank you for your kind supportenご親切なサポートをありがとうございます
非常感谢您的合作zhご協力に深く感謝いたします
Merci pour votre patiencefrご辛抱いただきありがとうございます

このパターンを応用すれば、社内会議資料の多言語化、海外SNSコメントの翻訳ダッシュボード、海外レビューの感情分析など、活用シーンは無限大ですよ。

IFERRORでエラー時のラベルを付ける

短文や記号だけのセルでは判定に失敗することがあります。エラー時は「判定不可」と表示させましょう。

=IFERROR(DETECTLANGUAGE(A2), "判定不可")

エラーで数式が止まらなくなるので、大量データの処理でも安心ですよ。IFERROR関数の詳しい使い方は ExcelのIFERROR関数の使い方|エラーをスマートに処理する も参考にしてください。

条件付き書式で言語を色分けする

判定結果に応じてセルを色分けすれば、ひと目で言語の分布が見えるダッシュボードが作れます。

  1. B列の判定結果セルを範囲選択
  2. 「ホーム」→「条件付き書式」→「セルの強調表示ルール」→「文字列」を選択
  3. 「ja」と入力し、書式を赤に設定
  4. 同様に「en」を青、「zh」を緑、「ko」を黄など、言語ごとに色を割り当てる

これだけで、シートを開いた瞬間に「英語の問い合わせが多い」「最近スペイン語が増えてきた」といった傾向が直感的につかめます。

Power Queryと組み合わせて定期処理を自動化する

DETECTLANGUAGE関数の結果列をPower Query側で読み込んでおけば、毎月のレポート更新時にワンクリックで言語別集計を最新化できます。

数式のままだとセル数が多くなったときにクォータエラー(後述)に引っかかりやすいので、判定後に値貼り付けして固定 → Power Queryで集計、というフローがおすすめです。

ピボットテーブルで言語別の傾向分析

DETECTLANGUAGE関数で判定済みの列をベースに、ピボットテーブルを作れば月別・言語別のクロス集計が一瞬で出ます。

  • 行: 受信月
  • 列: 言語コード(ja / en / zh / fr / その他)
  • 値: 件数

ピボット化しておけば、「先月から急に韓国語問い合わせが増えた」といった変化点をすぐ拾えますよ。マーケティング会議や四半期レビューで使える生きたデータになります。

XLOOKUPで言語コード→言語名の変換テーブルを引く

SWITCH関数が長くなりすぎるのが気になるなら、別シートに変換テーブルを用意してXLOOKUP関数で引く方法もあります。

別シートに次のような表を作ります。

codename
ja日本語
en英語
zh中国語
ko韓国語
esスペイン語
frフランス語
deドイツ語

C2セルにこの数式を入れれば完成です。

=XLOOKUP(B2, 言語表!A:A, 言語表!B:B, "その他")

新しい言語に対応したくなったら、変換テーブルに1行追加するだけ。数式を全行修正する必要がないので、メンテナンス性がぐっと上がりますよ。

短文・空白・数字のみセルでの挙動

DETECTLANGUAGE関数にはいくつかクセがあります。実務で遭遇しやすいケースを押さえておきましょう。

空白セルを渡した場合

空白セルを渡すとエラーが返ります。IFERRORでラップするか、IF関数で事前にチェックしておきましょう。

=IF(A2="", "", DETECTLANGUAGE(A2))

空白の場合は何も表示せず、値があるときだけ判定する形ですね。

数字だけのセル

「12345」のように数字だけのセルは、言語判定ができず精度が落ちます。場合によっては英語と判定されたりエラーになったりします。

=IF(ISNUMBER(A2), "数値", IFERROR(DETECTLANGUAGE(A2), "判定不可"))

ISNUMBER関数(セルが数値かを判定する関数)で事前にフィルタしておくと、無駄な呼び出しを減らせますよ。

短すぎる文字列

1〜2文字だけのセルは、どの言語か特定しきれず誤判定になりやすいです。たとえば「OK」を渡すと英語と判定されますが、「あ」1文字だと判定がブレることがあります。

実務では最低でも5〜10文字以上の文字列を渡すと安定した結果が得られますよ。

LEN関数で文字数チェックを入れておくと安心です。

=IF(LEN(A2)<5, "判定保留", DETECTLANGUAGE(A2))

5文字未満なら「判定保留」と表示し、それ以外は判定する形ですね。

複数言語が混在した文字列

「Hello こんにちは」のように複数言語が混ざっている場合、文字数の多い方、または先頭側の言語が返る傾向があります。混在データは事前に分割しておくのがおすすめです。

記号や絵文字だけのセル

「!!!」「😀😀😀」のような記号や絵文字オンリーのセルは、ほぼ確実にエラーになります。これらは事前にフィルタしておくか、IFERRORでラップしておきましょう。

=IFERROR(DETECTLANGUAGE(A2), "判定不可")

このひと手間で、大量データの処理がスムーズに進みますよ。

よくあるエラーと対処法

DETECTLANGUAGE関数で表示されるエラーと対処法をまとめました。

Text Too Long エラー

原因: 渡したテキストが長すぎる。Microsoft Translation Servicesが受け付ける文字数上限を超えています。

対処法: LEFT関数で先頭500文字程度に切り詰めてから渡しましょう。

=DETECTLANGUAGE(LEFT(A2, 500))

言語判定は冒頭の文章だけでも十分精度が出るので、この方法で問題ありません。LEFT関数の詳しい使い方は ExcelのLEFT関数の使い方|文字列の先頭から指定文字数を取り出す もチェックしてくださいね。

Error in Value エラー

原因: 空白セルや非テキスト値(エラー値など)を渡した。

対処法: IF関数で空白チェック、またはIFERRORでラップしましょう。

=IFERROR(DETECTLANGUAGE(A2), "判定不可")

Request Throttled エラー

原因: 日次のクォータ(Microsoftが定めるリクエスト回数制限)を超えた。大量のセルに数式を貼り付けると発生しやすいです。

対処法: 一度に処理する行数を分割するか、翌日にリトライしましょう。一括処理するときは値貼り付けで結果を固定しておくと安心ですよ。

判定 → 結果をコピー → 値のみ貼り付け

この流れで再計算を防げます。具体的な手順は次のとおりです。

  1. B列にDETECTLANGUAGE関数を入れて判定実行
  2. B列を選択し、Ctrl+C でコピー
  3. 同じB列で右クリック → 「値の貼り付け」を選択
  4. 数式が消え、結果の文字列だけが残る

これでファイルを開くたびに再計算が走る心配がなくなります。

#NAME? エラー

原因: DETECTLANGUAGE関数に対応していないバージョンのExcelで使っている。またはスペルミス。

対処法: Microsoft 365のサブスクリプションで最新版にアップデートしてください。Excel 2019・2021・LTSC 2024では使えません。

「ファイル → アカウント → 更新オプション → 今すぐ更新」で最新ビルドに上げると、新関数が一気に利用可能になりますよ。

#BUSY! / #CONNECT! エラー

原因: クラウドサービスへの接続が一時的に途切れた、または通信が遅延している。

対処法: 数秒待ってからF9キーで再計算するか、シートを開き直してみましょう。それでも直らない場合はインターネット接続を確認してください。

#VALUE! エラー

原因: 引数の型が想定外(配列の中にエラー値が混在しているケースなど)。

対処法: 元データを見直し、エラー値や予期しない型のセルがないかチェックします。

エラー原因対処法
Text Too Long文字数超過LEFTで切り詰める
Error in Value空白・非テキストIFERRORでラップ
Request Throttled日次クォータ超過分割処理・値貼り付け
#NAME?非対応バージョンMicrosoft 365に更新
#BUSY! / #CONNECT!通信エラー再計算・接続確認
#VALUE!引数の型不一致元データを点検

エラーパターンは限られているので、落ち着いて対処すれば大丈夫ですよ。

DETECTLANGUAGE関数を使う際の注意点

実務で運用するときに気をつけたいポイントをまとめます。

クラウド経由でデータが送信される

DETECTLANGUAGE関数はMicrosoft Translation Services(クラウドサービス)にテキストを送って判定しています。つまり、判定対象の文字列が一度Microsoftのサーバーに送信されるということです。

社外秘の機密文書や個人情報を含むセルにそのまま使うのは避けましょう。社内ポリシーで「クラウド翻訳サービスへのデータ送信禁止」となっている場合は、IT管理者に確認してから使ってくださいね。

大量呼び出しはパフォーマンスに影響する

数千〜数万行に一度に数式を貼り付けると、リクエストが大量発生してExcelが固まることがあります。スピル範囲を絞るか、判定後すぐに値貼り付けで固定するのが安全です。

判定結果は完全ではない

機械判定なので、まれに誤判定が発生します。重要な業務判断(契約書の翻訳など)に使う場合は、必ず人の目でレビューを入れるフローにしましょう。

Mac版・Web版の挙動差

Mac版とWeb版のExcelでもDETECTLANGUAGE関数は使えますが、スピル展開のパフォーマンスやエラーメッセージの表示が微妙に異なることがあります。チーム内で環境が混在する場合は、事前に検証しておくと安心です。

共有ブックでの再計算挙動

OneDrive上の共有ブックでDETECTLANGUAGE関数を使う場合、誰かがファイルを開くたびに再計算が走ってクォータを消費します。共有ブックでは「数式タブ → 計算方法の設定 → 手動」にしておくか、判定結果を値貼り付けで固定してから共有するのがおすすめです。

バックアップを取ってから一括判定を流す

大量データに一気にDETECTLANGUAGE関数を適用すると、再計算が止まらず作業中のブックが固まることがあります。本番データに適用する前に、必ず別ファイルとしてバックアップを取っておきましょう。

Ctrl + S で保存 → ファイル名末尾に _backup を付けて別名保存、というシンプルなルーチンで十分です。万一暴走しても元データに戻れる安心感は大きいですよ。

よくある質問(FAQ)

最後に、DETECTLANGUAGE関数について寄せられるよくある質問をまとめました。

[faq q=”DETECTLANGUAGE関数が #NAME? エラーになるのはなぜ?” a=”お使いのExcelがDETECTLANGUAGE関数に未対応のバージョンの可能性が高いです。永続ライセンス版のExcel 2019・2021・LTSC 2024では使えません。Microsoft 365のサブスクリプション版にアップグレードするか、最新ビルドに更新してください。「ファイル → アカウント」で「Microsoft 365 Apps」と表示されていればOKです。”]

[faq q=”オフライン環境でも使えますか?” a=”使えません。DETECTLANGUAGE関数は裏側でMicrosoft Translation Services(クラウドサービス)を呼び出すため、インターネット接続が必須です。社内のオフラインPCで使う必要がある場合は、別マシンで判定 → 値貼り付けで結果を持ち込む運用にしましょう。”]

[faq q=”判定対象の文字列はクラウドに送信されますか?” a=”はい、送信されます。Microsoftのサーバーに一時的にデータが送られて判定処理が走る仕組みです。社外秘情報や個人情報を含む文字列にそのまま使うのは避け、社内のセキュリティポリシーを確認したうえで使ってください。”]

[faq q=”中国語の繁体字と簡体字は区別できますか?” a=”関数の戻り値は基本的に zh の2文字コードで返ります。場面によっては zh-Hans(簡体字)・zh-Hant(繁体字)のように細分化されることもありますが、確実な区別が必要なら別途文字種チェックを組み合わせるのが安全です。”]

[faq q=”TRANSLATE関数と組み合わせるとクォータを2回消費しますか?” a=”はい、消費します。DETECTLANGUAGE と TRANSLATE は別々にクラウドサービスを呼び出すため、リクエストカウンタとしては別カウントです。大量データを扱う場合は、まずDETECTLANGUAGEで判定 → 結果を値貼り付け → 必要な行だけTRANSLATEで翻訳、という2段階運用がおすすめです。”]

faq q=”Google スプレッドシートにも同じ関数はありますか?” a=”スプレッドシートにはDETECTLANGUAGEと完全一致する関数はありませんが、GOOGLETRANSLATE 関数の補助機能や Apps Script で同等処理を組めます。スプレッドシート派の方は [GoogleスプレッドシートのGOOGLETRANSLATE関数の使い方 も合わせてご覧ください。”]

[faq q=”判定速度を上げる方法はありますか?” a=”数式の再計算が遅い場合は、(1)スピル範囲を必要最小限に絞る、(2)判定後すぐに値貼り付けで固定する、(3)短すぎる文字列はLEN関数で事前に弾く、の3点で大幅に改善します。クォータエラーも減らせるので一石二鳥ですよ。”]

[faq q=”DETECTLANGUAGE関数の結果を他の関数の引数として直接渡せますか?” a=”はい、可能です。=TRANSLATE(A2, DETECTLANGUAGE(A2), ‘ja’) のように、別の関数の引数として入れ子にして使えます。ただし関数を入れ子にするとクラウド呼び出しが2倍発生するため、大量データでは判定結果を別列で固定してから翻訳する2段階運用がパフォーマンス面で有利です。”]

faq q=”判定結果を[IF関数で分岐させる時の典型例は?” a=”日本語以外を「翻訳対象」として振り分けるなら =IF(DETECTLANGUAGE(A2)=’ja’,’日本語のまま’,’要翻訳’) のように書きます。IF関数とDETECTLANGUAGEの組み合わせは「言語別の処理分岐」の入り口として最初に覚えると応用が利きます。複数言語をまとめて判定したいときは =IF(OR(DETECTLANGUAGE(A2)={‘en’,’fr’,’de’}),’欧米’,’その他’) のように配列定数を使うとIFのネストが短くなります。”]

まとめ

ExcelのDETECTLANGUAGE関数は、セルに入っている文字列の言語を自動判定してくれる便利な関数です。

この記事のポイントを整理します。

  • 構文は =DETECTLANGUAGE(テキスト) で引数は1つだけ
  • Microsoft 365のサブスクリプションとインターネット接続が必須
  • 戻り値はISO 639-1の2文字コード(ja en zh など)
  • スピル対応なので範囲を渡して一括判定できる
  • SWITCH関数と組み合わせれば日本語の言語名に変換できる
  • TRANSLATE関数と連携すれば多言語データを一括翻訳できる
  • 短文・空白・数字のみのセルは誤判定やエラーに注意
  • エラー時はIFERRORでラップしておくと安心
  • クラウド経由でデータが送信される点に注意(機密情報は要注意)
  • 大量データは値貼り付けで結果を固定するとクォータエラーを回避できる

まずは =DETECTLANGUAGE("Hello world") のようなシンプルな式から試してみてください。グローバル業務のデータ整理がぐっとラクになりますよ。

慣れてきたら、TRANSLATE関数やFILTER関数と組み合わせて「言語別の自動仕分け+自動翻訳」までワンセットで自動化してみましょう。手作業のコピペから解放されて、本来やるべき分析や提案に時間を使えるようになりますよ。

文字列操作系の関数を一通り押さえておきたい方は、姉妹記事もぜひあわせてどうぞ。

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