【スプレッドシート】縦のデータをカンマ区切りで横一行に結合する方法

カンマ区切りで横1行に結合
カンマ区切りで横1行に結合

たとえば会員一覧から40代男性をフィルタリングして、会員IDを抽出してカンマ区切りで結合して横一行のデータにする場合があります。多くの場合はメールなどを発信するためです。

今回はこのような作業をスプレッドシートで行う場合の方法について説明します。

カンマ区切りで結合する方法

テストデータ

以下の会員データをテストデータとして使用します。

会員ID
A123456
A654321
B123456
B654321
C123456
C654321
テストデータ

TEXTJOINとJOIN

文字列を区切り文字とともに結合する関数には「TEXTJOIN」と「JOIN」の2つがあります。それぞれの構文は次の通りです。

TEXTJOIN

=TEXTJOIN(区切り文字,空のセルを無視, テキスト1, [テキスト2, …])
区切り文字:区切りに使用する文字列
空のセルを無視:TRUEの場合は空のセルは無視されます。
テキスト1:文字列また文字列の配列
テキスト2:追加のテキスト(省略可)

JOIN

=TEXTJOIN(区切り文字, テキスト1, [テキスト2, …])
区切り文字:区切りに使用する文字列
テキスト1:文字列また文字列の配列
テキスト2:追加のテキスト(省略可)

違いは空のセルの扱いのみです。

TEXTJOINとJOINの使用例

下記がTEXTJOINとJOINで数式を入れてみた結果です。

TEXTJOINとJOINの使用例
TEXTJOINとJOINの使用例

TEXTJOINは空のセルを無視する引数を入れています。どちらも結果は同じです。
次にデータの途中に空白を入れてみます。実際の業務でも名簿データがうまく整備されていない場合は会員IDの記入漏れがありますので、そのような場合にどのような結果になるかは知っておく必要があります。

空白セルがある場合のTEXTJOINとJOIN関数の挙動
空白セルがある場合のTEXTJOINとJOIN関数の挙動

4行目に空白セルを挿入すると、TEXTJOINは空白を無視するため結果は変わらず、JOINは「,,」と空白セルにも区切り文字を付加しています。
このような「,,」をメール送信システムがどのような挙動になるかはシステムに依存しますがリスクはさけて「,,」が発生しないTEXTJOINの方が安全でしょう。

さらに、汎用的な数式として100行までのデータを受け入れる数式にすると以下の様になります。

100行目まで範囲を広げた場合の挙動
100行目まで範囲を広げた場合の挙動

上記の結果からTEXTJOIN関数の方が今回のようなケースでは適しているかと思われます。

まとめ

縦のデータを区切り文字とともに横1行にする方法を解説しました。今回のようにTEXTJOINとJOINのように同じような関数がある場合は違いを確認して業務に適した関数を使うようにして下さい。

コメント