スプレッドシート

スプレッドシートのSPLIT関数で複数セルに分ける | “テキストを列に分割”との違い

スプレッドシートのSPLIT関数

スプレッドシートのSPLIT関数とは

スプレッドシートのSPLIT関数とは、テキストやセルを特定の文字および単語で分割する関数です。この関数は指定した区切り文字で分割して展開するもので、ExcelのTEXTSPLIT関数と同様の機能です。

「テキストを列に分割」と機能としては近しいですが、SPLIT関数はもとのデータを編集しない点、区切り文字を柔軟に設定できる点などが特徴です。

SPLIT関数の構文

=SPLIT(テキスト, 区切り文字, [各文字での分割], [空のテキストを削除])
  • テキスト:分割したいテキスト
  • 区切り文字:テキストを分割する際の文字ないし文字列
  • 各文字での分割(任意):「区切り文字」の各文字で分割したい場合はTRUE。「区切り文字」の文字列全体で分割したい場合にはFALSE
    • デフォルトはTRUE
  • 空のテキストを削除(任意):結果に空白を含めない場合はTRUE。空白を含める場合はFALSE
    • デフォルトはTRUE

SPLIT関数の使い方

[基本]区切り文字1つで分割する

SPLIT関数をシンプルに使う場合は「=SPLIT(A2,”,”)」のように、分割したいセルと分割したい文字の2つを記入しましょう。下図ではA2セルを「,(カンマ)」で区切ってセルに分けています。

[応用1]区切り文字2つ以上をそれぞれで分割する

SPILIT関数の区切り文字は2つ以上の文字も指定できます。下図では「=SPLIT(A2,”,と→”)」とすることで「,」「と」「→」のどれで区切っていても分割してくれるように指定しています。

[応用2]区切り文字2つ以上を1単語とみなして分割する

区切り文字に2文字以上を指定する際には、それぞれで分割するパターンのほかに、区切り文字全体で分割するパターンも可能です。たとえば「=SPLIT(A2,”=>”,FALSE)」とすると、「=>」で区切られている場合のみ分割し、「>」や「=」でのみ区切られている場合はそのままとします。

ちなみに「=SPLIT(A2,”=>”,TRUE)」や「=SPLIT(A2,”=>”)」のようにSPLIT関数の3つめをFALSEとしなかった場合には、「=」「>」それぞれで分割して表示します。

[応用3]空のテキストを残して分割する

区切り文字が連続している場合に空白を出力してほしい場合は、4つめの引数をFALSEにします。たとえば「=SPLIT(A4,”>”,TRUE,FALSE)」のように入力すると、「>>」のような連続した表記に対して空のセルを表示します。

シャワーズ

空のテキストを表示したいときには、必ず4つ目までカンマで区切って指定する必要があります!

「=SPLIT(A4,”>”,TRUE,FALSE)」では4つ目にFALSEを記載していましたが、3つ目のTRUEを端折って「=SPLIT(A4,”>”,FALSE)」のように書くと3つ目がFALSE,4つ目はデフォルトとみなされてしまいます。

SPLIT関数と「テキストを列に分割」の使い分け

スプレッドシートには「テキストを列に分割」というボタンもあり、これを押すことでSPLIT関数と似た挙動でテキストを分割できます。

以下では「テキストを列に分割」とSPLIT関数の違いおよび使い分けについて解説します。

「テキストを列に分割」はシンプルに使える

「テキストを列に分割」は分割したいテキストの範囲を囲った状態で「データ」>「テキストを列に分割」と選択すると使用できます。

「テキストを列に分割」は、もともとテキストの値を入っていたセルを含めてテキスト分割をします。そのため、分割前のテキストが不要な場合や複雑な設定がいらない場合に適しています。

SPLIT関数は値を残せるうえカスタマイズして使える

それに対して、SPLIT関数は分割前のテキストを残したいとき、複雑な設定をしたいときに適しています。下図のように分割前の「フシギダネ,フシギソウ,フシギバナ」がA列に残っていることがわかります。

また「=SPLIT(A2,”,”,TRUE,FALSE)」のTRUEやFALSEのように細かい条件を指定できるのも強みです。

SPLIT関数のエラー・注意点

[#REF]〇〇のデータを上書きするため、配列結果は展開されませんでした。

SPLIT関数を使用していると「[#REF]〇〇のデータを上書きするため、配列結果は展開されませんでした。」のようにエラーの出ることがあります。これはSPLIT関数で展開しようとしていた先のセルに何かしら文字の入っていることが原因です。

「[#REF]〇〇のデータを上書きするため、配列結果は展開されませんでした。」のエラーを解消するには、〇〇に該当するセルの中身を削除しましょう。下図では、C2に含まれていた文字列を削除しました。