スプレッドシートでデータを扱っていると、1つのセルにカンマ区切りで複数の値が入っているケースはよくあります。例えば、氏名や商品タグ、住所などがまとめて1セルに格納されていると、後で集計やフィルタリングが難しくなります。そんなときに便利なのがSPLIT関数です。SPLIT関数を使えば、カンマやスペースなどの区切り文字を指定して、値を別々の列に自動で分割できます。この記事では、SPLIT関数の基本的な使い方から実践的な応用方法までを詳しく解説します。
【要点】SPLIT関数でセルの値を分割する3つのポイント
- =SPLIT(A2, “,”) の基本構文: 第1引数に分割したいセル、第2引数に区切り文字を指定します。カンマで区切られた文字列を瞬時に列に展開できます。
- 複数の区切り文字を指定する方法: 第2引数に文字列を連結して指定します。例えば”, “と指定するとカンマとスペースの両方で分割します。
- 空白の扱いと分割の制御: 区切り文字が連続した場合の空白セルを削除するには、SPLIT関数の第3引数でTRUEを指定します。
ADVERTISEMENT
目次
SPLIT関数とは? その仕組みと基本的な構文
SPLIT関数は、指定した区切り文字でテキストを分割し、結果を横方向(列)に展開する関数です。分割された各要素は、元のセルの右隣から順に配置されます。構文は「=SPLIT(テキスト, 区切り文字, [空白の扱い])」です。
第1引数「テキスト」には、分割したい文字列が入力されたセルを指定します。第2引数「区切り文字」には、カンマやスペースなどの区切り文字を文字列として指定します。第3引数は省略可能で、TRUEを指定すると区切り文字が連続した場合に空白セルを自動で削除します。デフォルトはFALSEで、連続した区切り文字があると空白セルが残ります。
例えば、セルA1に「リンゴ,バナナ,オレンジ」と入力されている場合、「=SPLIT(A1, “,”)」と入力すると、B1に「リンゴ」、C1に「バナナ」、D1に「オレンジ」と表示されます。区切り文字はカンマだけでなく、スペースやハイフンなど任意の文字列が使えます。
SPLIT関数でカンマ区切り文字列を分割する具体的な手順
では、実際にSPLIT関数を使ってデータを分割する手順を説明します。サンプルとして、以下のようなカンマ区切りの商品リストがあるとします。
セルA2: りんご,みかん,ぶどう
- 分割結果を表示するセルを選択する
分割結果を表示したい最初のセル(B2など)をクリックします。SPLIT関数は結果を横方向に展開するため、結果を書き出す範囲に他のデータが入っていないことを確認します。 - SPLIT関数を入力する
選択したセルに「=SPLIT(A2, “,”)」と入力します。関数の引数は直接入力してもよいですが、セルをクリックして指定することもできます。今回はカンマが区切り文字なので、第2引数にダブルクォーテーションで囲んだカンマ「”,”」を指定します。 - Enterキーで確定する
Enterキーを押すと、B2に「りんご」、C2に「みかん」、D2に「ぶどう」と自動的に表示されます。結果が横に3列に分割されました。
このように、基本的な使い方は非常にシンプルです。ただし、区切り文字が複数ある場合や、空白を制御したい場合には、少し応用的な書き方が必要です。
複数の区切り文字を指定して分割する
例えば「りんご, みかん, ぶどう」のように、カンマの後にスペースがある場合、区切り文字を「, 」と指定することで、カンマとスペースの両方で分割できます。「=SPLIT(A2, “, “)」と入力すると、各要素の前後のスペースも取り除かれた状態で分割されます。
さらに、カンマとスペースを別々の区切り文字として扱いたい場合は、区切り文字を「,」と「 」の2つ指定する必要があります。SPLIT関数では、第2引数に複数の区切り文字を連結して書くことで対応できます。「=SPLIT(A2, “, “)」と書くと、カンマとスペースの両方が区切り文字として認識されます。ただし、この書き方だと「,」と「 」の両方が区切り文字になるため、連続した区切り文字があると空白が生じる可能性があります。
空白セルを自動で削除する
区切り文字が連続している場合、デフォルトでは空白セルが残ります。例えば「りんご,,みかん」と入力されている場合、カンマが2つ連続するため、分割結果は「りんご」「(空白)」「みかん」となります。この空白セルを削除したい場合は、第3引数にTRUEを指定します。「=SPLIT(A2, “,”, TRUE)」と入力すると、連続する区切り文字による空白が無視され、結果は「りんご」「みかん」だけになります。
数式をドラッグでコピーして一括適用する
複数のセルに同じ分割処理を適用するには、入力した数式をオートフィルでコピーします。SPLIT関数は相対参照を使っているため、セルをコピーすると自動的に参照先が変わります。ただし、分割結果が横に複数列にわたるため、コピー先の列に既存のデータがある場合は上書きされる可能性があります。そのため、事前に十分な空白列を確保しておくことをおすすめします。
SPLIT関数を使うときの注意点とよくある失敗
SPLIT関数は便利ですが、使い方を誤ると意図しない結果になることがあります。ここでは代表的な注意点を紹介します。
日付や数値が文字列として扱われる
SPLIT関数はテキストを分割する関数です。分割結果はすべてテキスト形式になります。そのため、日付や数値が含まれている場合、数式として認識されず、文字列として保存されます。数値として扱いたい場合は、VALUE関数やDATEVALUE関数を使って変換する必要があります。例えば、セルに「2024/01/15」と日付が入っている場合、SPLITで分割するとテキストになります。日付シリアル値に変換するには、分割後に「=DATEVALUE(分割結果)」などを使用します。
区切り文字に正規表現は使えない
SPLIT関数は、区切り文字を単純な文字列として解釈します。正規表現(パターンマッチング)はサポートしていません。複雑なパターンで分割したい場合は、REGEXEXTRACT関数やREGEXREPLACE関数と組み合わせる必要があります。例えば、数字の後に文字列が来るような分割は、SPLIT関数だけでは難しいです。
分割結果が範囲を超えるとエラーになる
SPLIT関数の結果が横に展開される際、その列の範囲に他のデータが入力されていると、エラーになるか上書きされます。特に、隣接する列に他のデータが存在する場合は注意が必要です。事前に分割結果を出力する領域を確保するか、新しいシートで作業することをおすすめします。
区切り文字が空文字の場合の動作
第2引数に空文字「””」を指定すると、すべての文字が1文字ずつ分割されます。これは、URLやファイルパスを分解する際に便利です。ただし、大量のデータで実行すると列数が膨大になるため、データ量に注意してください。
ADVERTISEMENT
SPLIT関数と「データ→テキストを列に分割」機能の比較
スプレッドシートには、SPLIT関数以外にも「データ」メニューから「テキストを列に分割」という機能があります。どちらも似た目的で使えますが、用途によって使い分けると便利です。以下の表で違いをまとめます。
| 比較項目 | SPLIT関数 | テキストを列に分割 |
|---|---|---|
| 自動更新 | 元データを変更すると自動で再計算されます | 一度分割すると元データとリンクしません |
| 分割場所 | 数式を入力したセルから右方向に展開します | 選択したセルまたはその右方向に分割結果を出力します |
| 区切り文字の柔軟性 | 複数の区切り文字や空白制御が可能 | カンマ、スペース、セミコロンなどあらかじめ用意された区切り文字から選択 |
| データ型の保持 | すべてテキストになるため、数値は変換が必要 | 自動的に数値や日付として認識されます |
| 大量データの処理 | 数式が再計算されるため、重くなる場合があります | 一度の処理で完了するため、高速です |
このように、動的な分割が必要な場合はSPLIT関数、静的な分割でデータ型を保持したい場合は「テキストを列に分割」が適しています。状況に応じて使い分けてください。
まとめ
SPLIT関数を使えば、カンマ区切りなどの文字列を簡単に列に分割できます。基本的な構文は「=SPLIT(セル, 区切り文字)」で、第3引数で空白の扱いも制御できます。ただし、分割結果はすべてテキストになるため、数値や日付として扱うには変換が必要です。また、大量データの処理や動的な更新が必要な場面では、SPLIT関数と「テキストを列に分割」機能を適宜使い分けるとよいでしょう。応用として、ARRAYFORMULAと組み合わせて複数セルを一括で分割したり、QUERY関数と連携して分割後のデータをそのまま加工したりすることも可能です。ぜひ実際のデータで試してみてください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】複合グラフで棒と折れ線を同時表示!2軸グラフの作り方
- 【Googleスプレッドシート】FILTER関数で条件に合う行だけ抽出!数式1つで動的な絞り込み
- 【Googleスプレッドシート】フィルタ表示で他の人の表示を変えずに絞り込み!共有時の使い分け
- 【Googleスプレッドシート】重複データを抽出して表示!COUNTIFと条件付き書式の併用
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】ARRAYFORMULAで列全体に数式を一括適用!セル分の入力を不要に
- 【Googleスプレッドシート】データ範囲を動的に伸縮させる!INDIRECTと参照範囲のコツ
- 【Googleスプレッドシート】共有解除と権限の取り消し!アクセスを完全に閉じる手順
