JOIN関数の基本的な使い方(スプレッドシート)
Googleスプレッドシートで「配列やセル範囲をカンマ区切りのテキストにまとめたい」と思ったことはありませんか?
CONCATENATE関数や&演算子でも結合はできます。でもセルが増えるほど数式が長くなって読みにくくなりますよね。
そんなときに便利なのがJOIN関数です。区切り文字と配列を指定するだけで、サッと1つの文字列にまとめてくれます。この記事ではJOIN関数の基本から、FILTER関数との応用、TEXTJOIN・SPLITとの関係まで解説しますよ。
読み方と語源
JOIN関数の読み方は「ジョイン」です。英語で「結合する・つなぐ」という意味があります。名前のとおり「配列を結合する関数」と覚えてください。
なおJOIN関数はGoogleスプレッドシート独自の関数です。Excelには搭載されていません。Excelで同様の処理をするにはTEXTJOIN関数を使ってくださいね。
構文と引数の説明
JOIN関数の構文はこちらです。
=JOIN(区切り文字, 値または配列1, [値または配列2, ...])
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 区切り文字 | 必須 | 値の間に挿入する文字列(”,”や” “など) |
| 値または配列1 | 必須 | 結合したい値、セル参照、またはセル範囲 |
| 値または配列2, … | 省略可 | 追加で結合したい値や配列 |
第1引数の区切り文字には空文字””も指定できます。区切りなしで結合したいときに使ってくださいね。
基本的な書き方の例
A1からA4に「東京」「大阪」「名古屋」「福岡」と入っている場合を見てみましょう。
=JOIN(", ", A1:A4)
→ 「東京, 大阪, 名古屋, 福岡」
区切り文字にカンマ+スペースを指定するだけで、きれいなリストが完成します。セルが何個あっても数式は変わりません。
セル範囲ではなく個別のセルを指定することもできます。
=JOIN("-", A1, B1, C1)
→ 「東京-大阪-名古屋」
引数を複数並べても結合できますが、セル範囲のほうがスッキリ書けますよ。
JOIN関数の実務パターン集
カンマ区切りリストを作る
タグ一覧やメール宛先リストを作るときに便利です。A列にメールアドレスが入っている場合はこう書きます。
=JOIN("; ", A1:A5)
→ 「user1@example.com; user2@example.com; user3@example.com; ...」
セミコロン+スペースで区切れば、メールのCC欄にそのまま貼り付けられる形になりますよ。
改行コードで結合してセル内改行を作る
CHAR(10)を区切り文字に使うと、セル内で改行した文字列を作れます。
=JOIN(CHAR(10), A1:A4)
結果のセルに「折り返して全体を表示する」を設定すると、各値が1行ずつ表示されます。セル内に箇条書きのようなリストを作りたいときに重宝しますよ。
FILTER関数と組み合わせて条件付き結合
FILTER関数で絞り込んだ結果をJOIN関数で結合する方法です。A列に名前、B列に部署が入っているとします。
「営業部」のメンバーだけをカンマ区切りで結合する数式です。
=JOIN(", ", FILTER(A2:A10, B2:B10="営業部"))
→ 「田中, 佐藤, 高橋」
FILTER関数が条件に合う名前の配列を返します。JOIN関数がその配列をカンマ区切りで結合します。2つの関数を組み合わせるだけで条件付き結合が完成しますよ。
FILTER + JOIN の活用場面
部署別の名前リスト、カテゴリ別の商品一覧、ステータス別のタスク一覧など、「条件で絞り込んでからリスト化する」パターンに幅広く使えます。
TEXTJOIN関数との違い・使い分け
JOIN関数とTEXTJOIN関数はどちらも区切り文字で結合する関数です。似ているようで大きな違いがあります。
比較表
| 項目 | JOIN | TEXTJOIN |
|---|---|---|
| 空白セルのスキップ | 不可(空白もそのまま結合) | 第2引数でTRUE/FALSE制御 |
| 引数の並び | 区切り文字, 配列… | 区切り文字, 空白無視, テキスト… |
| Sheets対応 | 対応(独自関数) | 対応 |
| Excel対応 | 非対応 | 対応(Microsoft 365 / Excel 2019以降) |
| IF配列との相性 | FILTER関数経由で対応 | 直接IF配列を渡せる |
どちらを使うべきか
次の基準で選んでみてください。
- 空白セルが混じるデータ → TEXTJOIN(空白スキップ機能あり)
- 空白セルがない配列・セル範囲 → JOIN(引数がシンプル)
- FILTER関数の結果を結合 → JOIN(相性が良い)
- Excelとの互換性が必要 → TEXTJOIN(Excel側でも動作する)
空白セルを含むデータなら迷わずTEXTJOINです。空白のないデータやFILTER関数の結果を結合するなら、引数がシンプルなJOINが便利ですよ。
SPLIT関数との逆関数関係
JOIN関数とSPLIT関数は「結合」と「分割」の逆の関係にあります。セットで覚えておくと便利です。
| 操作 | 関数 | 例 |
|---|---|---|
| 結合 | JOIN | 3つのセル → 「東京,大阪,名古屋」 |
| 分割 | SPLIT | 「東京,大阪,名古屋」→ 3つのセルに分割 |
実際に相互変換してみましょう。
結合(JOIN):
=JOIN(",", A1:C1)
→ 「東京,大阪,名古屋」
分割(SPLIT):
=SPLIT("東京,大阪,名古屋", ",")
→ A1:「東京」, B1:「大阪」, C1:「名古屋」
同じ区切り文字(カンマ)を使えば、元の形に戻せます。データの結合と分割を行き来する場面で活躍しますよ。
よくあるエラーと対処法
JOIN関数で発生しやすいエラーをまとめます。
| エラー・症状 | 原因 | 対処法 |
|---|---|---|
| 区切り文字が連続する | 空白セルが含まれている | TEXTJOIN関数に切り替えてTRUEを指定 |
| #N/A エラー | FILTER関数が条件に合うデータを見つけられない | FILTER結果をIFERROR関数で囲む |
| 数値がシリアル値になる | 日付セルをそのまま渡した | TEXT関数で書式変換してから結合 |
| 結果が空になる | 指定範囲のセルがすべて空 | データの入力範囲を確認する |
いちばん多いのが「区切り文字が連続する」ケースです。JOIN関数には空白セルをスキップする機能がありません。データに空白が混じるときはTEXTJOIN関数を使ってくださいね。
日付の書式変換はこう書きます。
=JOIN("/", TEXT(A1, "yyyy"), TEXT(B1, "m"), TEXT(C1, "d"))
→ 「2026/3/21」
日付の表示形式は結合時に失われます。TEXT関数で事前に変換するのを忘れないようにしましょう。
まとめ
スプレッドシートのJOIN関数の使い方を振り返りましょう。
| 項目 | 内容 |
|---|---|
| 読み方 | ジョイン |
| 機能 | 配列やセル範囲を区切り文字で結合して1つの文字列にする |
| 構文 | =JOIN(区切り文字, 値または配列1, [値または配列2, …]) |
| TEXTJOIN との違い | JOINは空白スキップ機能なし。シンプルな引数構造 |
| 対になる関数 | SPLIT(分割) |
| 注意点 | Excelには非搭載(スプレッドシート独自関数) |
配列やFILTER関数の結果を手早くテキストにまとめたいなら、JOINがいちばんシンプルです。空白セルが混じるデータにはTEXTJOIN関数、逆に文字列を分割したいときはSPLIT関数も合わせてチェックしてみてくださいね。
文字列を区切りなしで単純に結合したい場合はCONCAT関数もおすすめです。
