SPLIT関数の基本的な使い方(スプレッドシート)
Googleスプレッドシートで「カンマ区切りのデータを列ごとに分けたい」「名前を姓と名に分割したい」と思ったことはありませんか?
ExcelならCtrl+Eのフラッシュフィルや区切り位置機能が使えます。でもスプレッドシートにはその機能がなくて困りますよね。
そんなときに便利なのがSPLIT関数です。区切り文字を指定するだけで、文字列をパッと分割してくれますよ。この記事ではSPLIT関数の基本から、ARRAYFORMULAとの一括処理やTEXTJOINとの相互変換まで解説します。
読み方と語源
SPLIT関数の読み方は「スプリット」です。英語で「分割する」という意味があります。名前のとおり「文字列を分割する関数」と覚えてください。
なおSPLIT関数はGoogleスプレッドシート独自の関数です。Excelには搭載されていません。Excel(Microsoft 365)ではTEXTSPLIT関数が同様の機能を持ちます。古いバージョンでは使えないので注意してくださいね。
構文と引数の説明
SPLIT関数の構文はこちらです。
=SPLIT(テキスト, 区切り文字, [各文字で分割], [空のテキストを削除])
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| テキスト | 必須 | 分割したい文字列またはセル参照 |
| 区切り文字 | 必須 | 分割の基準となる文字(”,”や”/”など) |
| 各文字で分割 | 省略可 | TRUE(デフォルト): 各文字で分割 / FALSE: 文字列全体で分割 |
| 空のテキストを削除 | 省略可 | TRUE(デフォルト): 空の結果を除外 / FALSE: 空セルも保持 |
SPLIT関数は結果を右方向に自動展開します。分割後の値が隣のセルに順番に入る仕組みです。
SPLIT関数の基本的な使い方
まずはシンプルな例から見てみましょう。A1に「東京,大阪,名古屋,福岡」と入っているとします。
=SPLIT(A1, ",")
結果はこうなります。
| B1 | C1 | D1 | E1 |
|---|---|---|---|
| 東京 | 大阪 | 名古屋 | 福岡 |
カンマを区切り文字に指定しただけで、4つの都市名がB1からE1に分割されました。数式を入れたセルから右に向かって結果が展開されるのがポイントです。
スペース区切りのデータも同じ要領で分割できます。
=SPLIT("田中 太郎", " ")
→ 「田中」と「太郎」が2つのセルに分かれる
フルネームを姓と名に分けたいときに便利ですよ。
第3引数の使いどころ(各文字で分割するか)
SPLIT関数でいちばん分かりにくいのが第3引数です。ここをしっかり押さえておきましょう。
TRUE(デフォルト)の動作
第3引数がTRUEのとき、区切り文字の1文字ずつが区切りとして扱われます。
=SPLIT("2026/03-19", "/-")
この場合「/」と「-」のどちらでも分割されます。
| 結果1 | 結果2 | 結果3 |
|---|---|---|
| 2026 | 03 | 19 |
複数の区切り文字を一度に指定できるので便利ですよ。データの形式がバラバラなときに重宝します。
FALSEにした場合の動作
第3引数をFALSEにすると、区切り文字の文字列全体を1つの区切りとして扱います。
=SPLIT("りんご::みかん::ぶどう", "::", FALSE)
| 結果1 | 結果2 | 結果3 |
|---|---|---|
| りんご | みかん | ぶどう |
「::」という2文字の文字列で分割されました。FALSEを指定しないと「:」1文字ずつで分割されて意図しない結果になります。
使い分けの目安をまとめます。
| 場面 | 第3引数 | 理由 |
|---|---|---|
| カンマ・スラッシュなど1文字の区切り | TRUE(省略可) | デフォルトで問題なし |
| 「, 」(カンマ+スペース)で区切り | FALSE | 「,」と「 」が別々に扱われるのを防ぐ |
| 「::」「->」など2文字以上の区切り | FALSE | 文字列全体を1つの区切りにする |
実務で使える活用例
ここからは仕事で使える具体的な例を紹介します。
カンマ区切りデータの分割
CSVデータを貼り付けたとき、1つのセルに「商品A,100,個」のように入ることがあります。
=SPLIT(A2, ",")
これだけで「商品A」「100」「個」が別々のセルに分かれます。大量のCSVデータを整理するときの第一歩ですよ。
スラッシュ区切りの日付を年月日に分解
「2026/03/19」のような日付文字列を年・月・日に分けたい場合です。
=SPLIT(A2, "/")
| 年 | 月 | 日 |
|---|---|---|
| 2026 | 03 | 19 |
分割後の値は文字列になります。数値として使いたい場合はVALUE関数(文字列を数値に変換する関数)で変換してください。
メールアドレスから@より前を取り出す
「user@example.com」からユーザー名だけを取り出すケースです。
=SPLIT(A2, "@")
1つ目のセルに「user」、2つ目に「example.com」が入ります。FIND関数とLEFT関数を組み合わせる方法もありますが、SPLIT関数のほうがシンプルですね。
ARRAYFORMULAとの組み合わせで一括処理
SPLIT関数は1つのセルに対して処理を行います。「複数行のデータを一括で分割したい」と思うかもしれませんね。
実はSPLIT関数は直接ARRAYFORMULAに対応していません。複数行を一括処理するには、各行にSPLIT関数をコピーするのがいちばん確実です。
B2セルに以下の数式を入れて、下方向にコピーしてください。
=SPLIT(A2, ",")
A2からA10にデータがあるなら、B2からB10にコピーするだけです。スプレッドシートはCtrl+Dで下方向にコピーできますよ。
ただし行数が多い場合は、ARRAYFORMULA + MID + FIND を組み合わせた方法や、Google Apps Scriptを使う方法もあります。シンプルな用途ならコピーで十分です。
TIP
分割結果の列数がバラバラだと、隣のセルにあるデータを上書きすることがあります。右方向に十分な空きセルを確保しておきましょう。
TEXTJOINとの相互変換(分割と結合)
SPLIT関数とTEXTJOIN関数は「分割」と「結合」の逆の関係にあります。セットで覚えておくと便利ですよ。
| 操作 | 関数 | 例 |
|---|---|---|
| 分割 | SPLIT | 「東京,大阪,名古屋」→ 3つのセルに分割 |
| 結合 | TEXTJOIN | 3つのセルを → 「東京,大阪,名古屋」に結合 |
実際に相互変換してみましょう。
分割(SPLIT):
=SPLIT("東京,大阪,名古屋", ",")
→ B1:「東京」, C1:「大阪」, D1:「名古屋」
結合(TEXTJOIN):
=TEXTJOIN(",", TRUE, B1:D1)
→ 「東京,大阪,名古屋」
同じ区切り文字(カンマ)を使えば、元の形に戻せます。データの分割と結合を行き来する場面で活躍しますよ。
なお、区切り文字なしで単純に結合したいだけならCONCAT関数がシンプルです。用途に応じて使い分けてくださいね。
よくあるエラーと対処法
SPLIT関数で発生しやすいエラーをまとめます。
| エラー | 原因 | 対処法 |
|---|---|---|
| #VALUE! | 区切り文字が空文字(””) | 区切り文字に1文字以上を指定する |
| #REF! | 分割結果が隣のセルのデータを上書きしようとした | 右方向に十分な空きセルを確保する |
| 分割されない | 全角・半角の不一致(「,」と「,」など) | 区切り文字の全角・半角を確認する |
| 余分な空白が残る | 区切り文字の前後にスペースがある | TRIM関数で前後の空白を削除してからSPLITする |
特に多いのが全角・半角の不一致です。データの入力元によって全角カンマ「,」と半角カンマ「,」が混在していることがあります。第3引数をTRUEにして両方を区切り文字に指定するのがおすすめですよ。
=SPLIT(A2, ",,")
これで全角カンマと半角カンマのどちらでも分割できます。
まとめ
スプレッドシートのSPLIT関数の使い方を振り返りましょう。
| 項目 | 内容 |
|---|---|
| 読み方 | スプリット |
| 機能 | 文字列を区切り文字で分割して複数セルに展開 |
| 構文 | =SPLIT(テキスト, 区切り文字, [各文字で分割], [空のテキストを削除]) |
| 第3引数 | TRUE: 各文字で分割 / FALSE: 文字列全体で分割 |
| 対になる関数 | TEXTJOIN(結合) |
| 注意点 | Excelには非搭載(スプレッドシート独自関数) |
カンマ区切りデータの分割から日付の分解、メールアドレスの分離まで使える場面はたくさんあります。TEXTJOIN関数との相互変換もセットで覚えておくと、文字列操作の幅がグッと広がりますよ。
文字列を途中から取り出したいときはMID関数、特定の文字の位置を調べたいときはFIND関数も合わせてチェックしてみてください。
