カンマ区切りのデータを素早く加工

業務用のシステムやツールからデータを出力したとき、文字列や数値が「,」(カンマ)で区切られたデータを得られることがよくあります。CSV形式のファイルが代表例です。

こうしたデータをスプレッドシートで扱う場合、「,」で区切られたデータを個別のセルに格納して利用することになりますが、Googleスプレッドシートでは「SPLIT」(スプリット)関数を使うと便利です。「,」などの区切り文字を指定して、文字列を簡単に分割できます。例えば、以下のような形です。

SPLIT関数で文字列を分割。データを「,」や「/」で区切って個別のセルに格納できる

A列に貼り付けたカンマ区切りのデータを、B列に入力したSPLIT関数によって個別のセルに分割しています。

SPLIT関数では「,」に限らず、「/」や「category」といった任意の文字列でデータを分割できるので、使い方を見ていきましょう。なお、Excelではマクロ(VBA)でSplit関数が使えますが、通常のワークシートでは使えません。

SPLIT関数で文字列を分割する

SPLIT関数の構文はこちらです。

SPLITテキスト, 区切り文字, 各文字での分割, 空のテキストを削除

1つめの引数[テキスト]では、分割したい文字列があるセルを指定します。

2つめの引数[区切り文字]では、分割の基準となる文字を「"」(ダブルクォーテーション)で囲んで指定します。例えば「","」といった具合です。

3つめ、4つめの引数は省略でき、詳細は後述します。いずれも論理値(TRUEまたはFALSE)で指定し、省略した場合はTRUEが指定されたものと見なされます。

まずはカンマ区切りのデータを個別のセルに分割する例で解説しましょう。

1SPLIT関数を入力する

SPLIT関数で文字列を分割。データを「,」や「/」で区切って個別のセルに格納できる

ここではA列に元データをコピペしました。セルB1に「=SPLIT」と入力します。途中で表示される候補をクリックしてもOKです。

21つめの引数を指定する

SPLIT関数で文字列を分割。データを「,」や「/」で区切って個別のセルに格納できる

「(」を入力し、1つめの引数[テキスト]を指定します。ここではA1セルをクリックして指定しました。最後に「,」を入力しましょう。

32つめの引数を指定する

SPLIT関数で文字列を分割。データを「,」や「/」で区切って個別のセルに格納できる

2つめの引数[区切り文字]を指定します。ここでは「","」と入力しました。3つめ、4つめの引数は省略し、「)」を入力して[Enter]キーを押します。

4データが分割された

SPLIT関数で文字列を分割。データを「,」や「/」で区切って個別のセルに格納できる

セルB1より右側のセルに、分割されたデータが格納されました。関数の結果が複数のセルに入力されるため、Excelでいう「配列」を返す関数といえます。

5数式をコピーする

SPLIT関数で文字列を分割。データを「,」や「/」で区切って個別のセルに格納できる

セルB1の右下に表示されるフィルハンドルをダブルクリックすると、B列に数式がコピーされます。あっというまに分割したデータを得ることができました。

区切り文字を単語として扱うには、3つめの引数を使う

今度は違う例で解説しましょう。「https://dekiru.net/category/apple/iphone/」というURLを「category」という文字列で区切って、前後の文字列を個別のセルに格納したいとします。

SPLIT関数で文字列を分割。データを「,」や「/」で区切って個別のセルに格納できる

ここまでと同じ方法でSPLIT関数を入力しました。しかし......

SPLIT関数で文字列を分割。データを「,」や「/」で区切って個別のセルに格納できる

期待した結果にはなりませでした。これは「category」という単語ではなく、「c」「a」「t」「e」「g」「o」「r」「y」という文字それぞれでデータが区切られてしまうためです。

SPLIT関数で文字列を分割。データを「,」や「/」で区切って個別のセルに格納できる

期待した結果を得るには、3つめの引数[各文字での分割]で「FALSE」を指定します。

SPLIT関数で文字列を分割。データを「,」や「/」で区切って個別のセルに格納できる

各文字で分割されず、「category」という単語で分割されるため、期待通りの結果が得られました。

区切り文字が連続する場合は、4つめの引数で動作を指定

さらに別の例として、「https://dekiru.net/category/apple/iphone/」を「/」で区切るケースを見てみます。4つめの引数によって、得られる結果が変わります。

SPLIT関数で文字列を分割。データを「,」や「/」で区切って個別のセルに格納できる

SPLIT関数を2つめの引数まで指定すると......

SPLIT関数で文字列を分割。データを「,」や「/」で区切って個別のセルに格納できる

「/」で分割されたデータが得られました。これでもOKですが、4つめの引数[空のテキストを削除]で「FALSE」を指定してみます。

SPLIT関数で文字列を分割。データを「,」や「/」で区切って個別のセルに格納できる

同じく「/」で分割されていますが、「https:」の隣が空のセルになっています。これは4つめの引数によって「空のテキストを削除しない」動作となり、「//」の間が空のセルとして返されたためです。

3つめ、4つめの引数まで指定すると、細かい意図まで反映したデータが得られることがわかったと思います。Googleスプレットシートならではの関数として、覚えておくといいでしょう。

関連リンク

関連記事

翻訳を関数で! GOOGLETRANSLATE関数を使って日本語のテキストをまとめて英語にする方法

Googleドライブで表計算ができる「Googleスプレッドシート」にはExcelにはない独自の関数があり、「GOOGLETRANSLATE関数」もその1つ。指定したセルにある日本語のテキストを英語に翻訳し、別のセルに一気に表示できます。使い方を見ていきましょう。

Webページの表やリストを自動抽出。IMPORTHTML関数でサイトの更新や資料への引用がラクになる

「IMPORTHTML関数」は、Excelでは使えない「Googleスプレッドシート」ならではの関数です。引数としてURLを指定すると、そのWebページにある表やリストの内容をテキストとして抽出します。サイトの更新や資料への引用などの用途で便利に使えます。