Sheet基本
SPLIT・JOIN 完全ガイド
SPLIT・JOIN 完全ガイド
文字列の分割と結合を自在に操る
「氏名を苗字と名前に分ける」「複数のセルをカンマ区切りで1つにまとめる」。SPLITとJOINはセットで覚えるとデータ整形の幅が一気に広がる。
GASとの関係:str.split() と Array.join() に直接対応
GASの "田中 花子".split(" ") が SPLIT に、["田中","花子"].join("・") が JOIN に対応します。スプレッドシートで動作確認してからGASに移植する手順が確実です。
目次
SPLIT — 区切り文字で分割
=SPLIT(文字列, 区切り文字, [各文字で分割], [空のテキストを削除])
// "田中 花子" をスペースで分割 → 2つのセルに展開
=SPLIT(A2, " ")
// "東京,大阪,名古屋" をカンマで分割
=SPLIT(A2, ",")
// 複数の区切り文字(スペースまたはカンマ)
=SPLIT(A2, " ,") // スペースかカンマのどちらかで分割
SPLITの結果は隣のセルに自動展開
SPLITはスピル(自動展開)するため、隣のセルに結果が表示されます。隣のセルに値があると上書きエラーになるので注意が必要です。
JOIN — 範囲を結合
=JOIN(区切り文字, 範囲または値1, [値2], ...)
// A2:A5 の内容を「、」で結合
=JOIN("、", A2:A5)
// 複数セルをまとめて結合
=JOIN(" / ", A2, B2, C2)
実務でよく使うパターン
パターン1:フルネームを苗字と名前に分ける
// "田中 花子" → B列に"田中"、C列に"花子"(B2に書く)
=SPLIT(A2, " ")
// 苗字だけほしい場合はINDEX+SPLIT
=INDEX(SPLIT(A2, " "), 1, 1) // 1番目の要素(苗字)
=INDEX(SPLIT(A2, " "), 1, 2) // 2番目の要素(名前)
パターン2:カンマ区切りデータを縦展開
// "tag1,tag2,tag3" のようなCSV形式のタグを縦に展開
=TRANSPOSE(SPLIT(A2, ","))
パターン3:複数行のデータを1つのセルに結合
// リスト(A2:A10)を読点区切りで1セルに
=JOIN("・", A2:A10)
// FILTER と組み合わせて条件付き結合
=JOIN("、", FILTER(A2:A100, B2:B100="東京"))
パターン4:URLのパスを分解して取り出す
// "https://example.com/category/post-123" のパスを分解
// "/で分割して3番目("category")を取り出す
=INDEX(SPLIT(A2, "/"), 1, 4)
TEXTJOIN — JOINの進化版(空白を無視できる)
=TEXTJOIN(区切り文字, 空白を無視, 範囲)
// A2:A10 のうち空白でない値だけを「/」で結合
=TEXTJOIN("/", TRUE, A2:A10)
// 複数列を結合しつつ空白はスキップ
=TEXTJOIN(" ", TRUE, A2, B2, C2, D2)
JOINと違いTEXTJOINは空白セルを自動スキップできます。実務ではTEXTJOINの方が使いやすい場面が多いです。
この知識をGASで活かす
GASでCSVや区切り文字形式のデータを扱う際、split()とjoin()は必須の操作です。スプレッドシートでSPLIT/JOINを試してロジックを確認してからGASに移植すると開発が速くなります。
Free Newsletter
AIを業務に活かしたいなら
SMR-Labメルマガ
毎週火曜10時、コピペで使えるChatGPTプロンプト・
GASテンプレートをお届け。登録は1分・完全無料。

