【Googleスプレッドシート】TEXTJOIN関数で文字列を区切り文字で連結!CONCATENATEとの違い

【Googleスプレッドシート】TEXTJOIN関数で文字列を区切り文字で連結!CONCATENATEとの違い
🛡️ 超解決

TEXTJOIN関数は、複数の文字列を指定した区切り文字で連結できる強力な関数です。CONCATENATE関数では実現しにくかった、区切り文字の挿入や空白セルの無視が簡単に行えます。この記事では、TEXTJOIN関数の基本的な使い方から、CONCATENATEとの違いまでを詳しく解説します。

【要点】TEXTJOIN関数はCONCATENATEより柔軟な文字列連結が可能

  • =TEXTJOIN(区切り文字, 空セルの処理, 範囲1, 範囲2, …): 区切り文字を指定して複数セルを連結します。第2引数で空白セルを無視するかどうかを制御できます。
  • CONCATENATE関数: セルを単純に連結しますが、区切り文字の自動挿入や空白セルのスキップはできません。手作業で区切り文字を追加する必要があります。
  • TEXTJOINのメリット: 区切り文字を一度指定するだけで、すべての連結箇所に自動的に挿入されます。空白セルを無視することで、余計な区切り文字が連続するのを防げます。

ADVERTISEMENT

TEXTJOIN関数とCONCATENATE関数の基本仕様

TEXTJOIN関数の構文は「=TEXTJOIN(区切り文字, 空セルの処理, 文字列1, [文字列2, …])」です。第1引数に区切り文字を指定し、第2引数には空白セルを無視するかどうかをTRUEまたはFALSEで指定します。TRUEを指定すると、空白のセルをスキップして連結します。第3引数以降に連結したいセルや文字列を指定します。CONCATENATE関数の構文は「=CONCATENATE(文字列1, [文字列2, …])」で、単純に文字列をつなげます。区切り文字を挿入するには、引数に「、」や「/」などの文字列を含める必要があります。

例えば、A1に「りんご」、B1に「みかん」、C1に「バナナ」と入力されている場合、=CONCATENATE(A1, “、”, B1, “、”, C1)とすると「りんご、みかん、バナナ」となります。一方、TEXTJOINでは=TEXTJOIN(“、”, TRUE, A1:C1)と書くだけで同じ結果が得られます。しかも、B1が空白の場合、TEXTJOINでは「りんご、バナナ」と空白をスキップしますが、CONCATENATEでは「りんご、、バナナ」と区切り文字が2つ連続してしまいます。このような場合、TEXTJOINのほうが柔軟に対応できます。

また、TEXTJOINは第2引数にFALSEを指定すると空白セルもそのまま連結するため、CONCATENATEと同じ動作をさせることも可能です。用途に応じて使い分けると良いでしょう。

TEXTJOIN関数の具体的な使用手順

  1. 関数の入力場所を決める
    TEXTJOIN関数の結果を表示したいセルを選択します。
  2. 「=TEXTJOIN(」と入力する
    半角で「=TEXTJOIN(」と入力します。Googleスプレッドシートが数式の候補を表示しますので、そのままTabキーで選択しても構いません。
  3. 第1引数に区切り文字を指定する
    ダブルクォーテーションで囲んで区切り文字を指定します。例えば「,」や「 / 」などです。
  4. 第2引数に空セルの処理を指定する
    空白セルを無視する場合はTRUE、無視しない場合はFALSEと入力します。通常はTRUEを指定すると便利です。
  5. 第3引数以降に連結範囲を指定する
    連結したいセル範囲をドラッグして指定します。複数範囲を指定する場合はカンマで区切ります。最後に閉じ括弧「)」を入力してEnterキーを押します。

具体例として、A1からE1に「東京」「大阪」「名古屋」「福岡」「札幌」が入力されている場合、=TEXTJOIN(“、”, TRUE, A1:E1)と入力すると「東京、大阪、名古屋、福岡、札幌」と連結されます。もしB1が空白なら「東京、名古屋、福岡、札幌」となります。

CONCATENATEではできないTEXTJOINの便利な機能

区切り文字を自動挿入できる

CONCATENATEでは、引数ごとに区切り文字を手動で指定する必要があります。例えば、セルA1、B1、C1を「/」で連結する場合、=CONCATENATE(A1, “/”, B1, “/”, C1)としなければなりません。TEXTJOINでは=TEXTJOIN(“/”, TRUE, A1:C1)だけで済みます。範囲が大きくなればなるほど、TEXTJOINのほうが簡潔に記述できます。

空白セルを無視できる

TEXTJOINの第2引数にTRUEを指定すると、空白のセルをスキップして連結します。これにより、余計な区切り文字が連続するのを防げます。CONCATENATEでは空白セルもそのまま連結されるため、意図しない区切り文字の重複が発生しやすくなります。

範囲を直接指定できる

TEXTJOINではセル範囲を直接指定できるため、複数のセルを一つずつ引数に指定する手間が省けます。CONCATENATEは単一セルごとに引数が必要なため、範囲が広いと数式が長くなります。また、TEXTJOINは配列数式にも対応しているため、条件に合うセルのみを連結するといった高度な使い方も可能です。

他の関数との組み合わせ例

TEXTJOINはFILTER関数やQUERY関数と組み合わせると非常に便利です。例えば、=TEXTJOIN(“, “, TRUE, FILTER(A1:A10, B1:B10=”完了”))とすることで、条件を満たすセルのみを連結できます。CONCATENATEではこのような処理は難しいため、TEXTJOINの強みが発揮されます。

ADVERTISEMENT

TEXTJOINとCONCATENATEの比較表

機能 TEXTJOIN CONCATENATE
区切り文字の自動挿入 可能。第1引数で指定 不可能。手動で挿入
空白セルの無視 可能。第2引数で制御 不可能。空白もそのまま連結
範囲指定の可否 可能。範囲を直接指定 不可能。個別のセル指定が必要
最大引数数 最大50個の引数 最大255個の引数
文字数制限 結果の文字数に制限なし 結果の文字数に制限なし

まとめ

TEXTJOIN関数は、CONCATENATE関数よりも柔軟で効率的に文字列を連結できます。区切り文字の自動挿入や空白セルのスキップ機能により、数式が簡潔になり、メンテナンスも容易です。特に大量のデータを連結する場合や、データに空白が含まれる可能性がある場合には、TEXTJOINの使用をおすすめします。ぜひ、TEXTJOIN関数を活用して、スプレッドシートの作業を効率化してください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。