日々の業務で扱うデータは、きれいに整ったものばかりではありません。CSVやメール本文、シートに貼り付けられた値など、文字列を分割して必要な情報を取り出す場面は頻繁に訪れます。Google Apps Script(GAS)のsplit関数を使えば、文字列をルールに従って分割し、配列に整理することができます。本記事では、基本的な使い方から正規表現を使った応用、改行や後ろからの切り出しまで、業務効率化に役立つテクニックを詳しく解説します。
split関数の基本を理解して正しく使う方法
split関数の基本構文
GASで文字列を分割する基本はsplit()
メソッドです。
たとえばカンマ区切りの文字列を分割したい場合は以下のように書きます。
let text = "営業部,人事部,総務部";
let result = text.split(",");
Logger.log(result); // ["営業部","人事部","総務部"]
このように、指定した区切り文字を基準にして文字列を配列へ変換します。配列とは、複数のデータを順番に並べて管理できる入れ物のようなものです。
実際の業務現場での事例
ある企業では、毎朝メールで届く「売上データ」がカンマ区切りの文字列として送信されていました。これをそのままでは扱えませんが、splitで配列に変換することでシートに整形して記録できるようになり、担当者が手作業でコピー&ペーストしていた時間を毎日20分以上削減できました。
他業種・海外での利用例
海外の開発チームでは、顧客レビューのテキストを「.split(” “)」で単語ごとに分割し、頻出単語を分析してマーケティングに活かすケースもあります。splitは日本語の業務データだけでなく、多言語のテキスト解析にも応用できるのです。
メリットとデメリット
- メリット
- データを効率よく扱える
- プログラムがシンプルに書ける
- デメリット
- 区切り文字の選び方を間違えると意図しない分割になる
- 空文字列が混ざる場合がある
たとえば「,,」のようにカンマが連続すると空の要素が生まれます。この場合はフィルター処理で除去するなど工夫が必要です。
注意点と失敗例
splitを使った際、半角スペースと全角スペースを区別せずに処理してしまうと分割がうまくいかないことがあります。特に日本語データでは全角スペースが混ざっていることが多いので、事前に置換してからsplitすることをおすすめします。
正規表現を使って柔軟に分割する方法
正規表現を利用する背景
通常のsplitは1つの固定した文字を基準にしますが、実際のデータは必ずしも単純ではありません。カンマやタブ、スペースなど複数の区切り文字が混ざっていることもあります。そのときに活躍するのが正規表現です。正規表現とは「文字列のパターンを表現する特別な記法」で、複雑なルールで分割や検索を行えます。
実践例
例えば、カンマまたはセミコロンで区切られた文字列を分割する場合は以下のように書けます。
let text = "東京,大阪;名古屋,福岡";
let result = text.split(/[,;]/);
Logger.log(result); // ["東京","大阪","名古屋","福岡"]
これで複数の区切り文字に対応できます。
ビジネス現場での活用事例
経営企画部門が使う外部システムでは、出力されるCSVにカンマとセミコロンが混在していました。従来は担当者がExcelで手作業で修正していましたが、正規表現を使ったsplitで一括処理できるようになり、作業工数が削減されただけでなく人的ミスも減少しました。
海外事例との比較
海外の開発では、正規表現を活用して「空白が1つ以上続いた場合に分割」といった高度な処理をすることも一般的です。例えば「split(/\s+/)」と書くと、スペースやタブなどの空白類すべてに対応できます。
メリットとデメリット
- メリット
- 複数条件に対応可能
- データが汚れていても処理しやすい
- デメリット
- 書き方を覚えるのが難しい
- 複雑にしすぎると可読性が落ちる
注意点と失敗例
正規表現を使いすぎて誰も理解できないコードになることがあります。以前、開発チームで正規表現を使ったsplitを導入したものの、新人が読めず修正できなくなる問題が発生しました。ドキュメントにルールを残しておくことが必須です。
splitで配列を扱う実践手順と注意点
配列としての利用方法
splitで得られる結果は配列です。配列は「0番目、1番目…」という番号で要素にアクセスできます。
let text = "A,B,C,D";
let arr = text.split(",");
Logger.log(arr[0]); // A
Logger.log(arr[2]); // C
この仕組みを使えば、分割したデータの特定の要素を取り出すことが可能です。
実務での利用事例
営業リストに「名前,部署,メールアドレス」といったデータが1行で並んでいた場合、splitで配列に変換し、必要な要素だけを使って自動的にメールを送る処理を作ることができます。実際にとある企業では、この仕組みを導入したことで営業担当が1日で送れるメール数が2倍以上になりました。
配列処理のメリットとデメリット
- メリット
- 必要な部分だけ抜き出せる
- ループ処理と組み合わせやすい
- デメリット
- インデックス(番号)を間違えると誤ったデータを取得する
- 元データが欠けていると想定外の動作になる
注意点と失敗例
「名前,部署,メール」という形式を想定していたのに、外部システムの更新で「名前,部署」しか出力されなくなった事例がありました。splitの結果が想定より短いとエラーになります。対策として、配列の長さを確認するif (arr.length >= 3)
のような条件を必ず入れることが重要です。
他業種での利用例
教育現場では、テストの回答データを「回答者名,解答番号,スコア」の形式で扱い、splitで配列に変換した後、自動採点や統計処理に使う例があります。業務の効率化だけでなく、分析スピードの向上にも直結します。
splitで複数条件を扱う方法
背景と必要性
日常業務では、1種類の区切り文字だけでデータが構成されているとは限りません。カンマやタブ、スペースなどが混在するケースは非常に多いです。手作業なら気付けても、システム処理では意図せず1列にまとまってしまい、後続の工程に支障をきたすことがあります。こうしたとき、splitを複数条件に対応させることが重要になります。
実践例
以下のコードは、カンマとタブの両方で文字列を分割する方法です。
let text = "田中\t営業部,大阪";
let result = text.split(/[\t,]/);
Logger.log(result); // ["田中","営業部","大阪"]
このように、正規表現を活用して複数の区切り文字をまとめて扱うことで、汚れたデータも一度に整形できます。
ビジネスでの事例
マーケティング部門では、外部ベンダーから取得するデータがタブ区切りだったりカンマ区切りだったりとバラバラでした。従来はそれぞれに応じて別のスクリプトを作っていましたが、正規表現による複数条件splitを導入したことで、1つの処理で全て対応可能に。これにより運用の一貫性が保たれ、メンテナンスコストも削減されました。
メリットとデメリット
- メリット
- 1つの処理で複数パターンのデータを扱える
- 外部データの差異に強くなる
- デメリット
- 正規表現の知識が必要
- 想定外の区切り文字が混ざると誤分割が発生する
注意点
複数条件を入れすぎると「何でも分割」されてしまい、必要な文字まで分割されることがあります。業務で使う場合は、対象となるデータのサンプルを必ず確認し、テストを重ねてから本番運用に移すことが欠かせません。
改行で分割する方法
改行分割の背景
メール本文やアンケート回答データなど、1行ごとに意味を持つ文字列を扱う場面は多いです。この場合は改行を基準に分割するのが最も効率的です。
実践例
以下のように改行文字を指定することで、行ごとに配列へ変換できます。
let text = "商品A\n商品B\n商品C";
let result = text.split("\n");
Logger.log(result); // ["商品A","商品B","商品C"]
Windows環境から持ち込んだデータでは「\r\n」が使われていることがあるため、両方に対応するには以下のように書きます。
let result = text.split(/\r?\n/);
ビジネス現場での事例
カスタマーサポートでは、お問い合わせメールの本文を行ごとに分割し、問い合わせ種別を自動分類するシステムに活用しています。行単位でデータを整理することで、自動化の精度が大幅に向上しました。
海外事例との比較
海外の開発環境ではCRLF(\r\n)とLF(\n)の違いがよく議論されます。特にWindowsとLinux環境をまたいだデータ処理で問題が起きやすいため、正規表現で両方に対応する手法は国際的にも共通のベストプラクティスです。
注意点
改行コードを統一していないと、意図通りに分割されないことがあります。実際に、ある企業でアンケートデータを自動処理した際、Windowsで作られたファイルとMacで作られたファイルで結果が異なり、大量のデータを修正する事態になりました。運用前に改行コードを正規化する処理を挟むと安心です。
文字列を切り出す実践例
背景
splitは文字列を分割するための関数ですが、その応用として「必要な部分だけ切り出す」処理にも活用できます。
実践例
例えば「商品番号:12345」という形式の文字列から商品番号だけを抜き出したいときは以下のように書きます。
let text = "商品番号:12345";
let result = text.split(":")[1];
Logger.log(result); // 12345
このように、splitで配列に変換し、必要な要素を取り出すだけで簡単に切り出せます。
実務での活用
バックオフィス業務では、システムから出力される「顧客ID:氏名:メールアドレス」といった文字列から顧客IDだけを切り出して社内の台帳に記録する事例があります。以前はExcel関数で対応していましたが、GASで一括処理することで担当者の作業が半日から数分に短縮されました。
メリットとデメリット
- メリット
- シンプルで分かりやすい
- 短いコードで済む
- デメリット
- 区切り文字が変更されると使えなくなる
- データが欠損していると誤動作する
注意点
splitを使った切り出しは便利ですが、外部システムからの出力形式が変更された途端に動かなくなるリスクがあります。そのため、必ず「arr.length >= 2」のように要素数をチェックしてから値を取り出すようにしましょう。
後ろから文字列を切り出す方法
背景と必要性
データ処理では「末尾の要素だけを取り出したい」場面がよくあります。たとえばファイルパスから拡張子を取りたい、URLから最後のパラメータを取得したい、といったケースです。splitを使うと、前から順に切り出すだけでなく、後ろからのアクセスも簡単にできます。
実践例
let filePath = "report/2025/summary.pdf";
let parts = filePath.split("/");
let last = parts[parts.length - 1];
Logger.log(last); // summary.pdf
このように配列の「長さ」を利用すれば、後ろからの要素にアクセスできます。さらに拡張子を取りたい場合は「.」でsplitし、末尾を取得すればOKです。
let filename = "summary.pdf";
let ext = filename.split(".").pop();
Logger.log(ext); // pdf
ビジネス現場での事例
経理部門では、毎月アップロードされる請求書ファイルのファイル名末尾に年月が含まれています。splitを活用して「2025-08」などの年月を自動で切り出す仕組みを導入し、毎回手入力していた作業を完全自動化しました。
海外事例との比較
海外の開発現場でも、URLの最後のディレクトリ名やファイル名を取得する処理は頻出です。JavaScriptやPythonでも「split(‘/’).pop()」はよく使われるイディオムであり、GASでも同様に使えます。
注意点と失敗例
URLやファイル名が「/」や「.」で終わっている場合、最後の要素が空文字になってしまうことがあります。以前、外部システムから渡されるURLが「/」で終わっていて、意図した値が取れずシステムが停止するトラブルがありました。これを防ぐには、値が空でないか確認する処理を追加しておくことが大切です。
エラーが出るときの原因と解決法
よくあるエラーの背景
splitは便利ですが、想定通りの動作をしないこともあります。エラーが出る、または結果がおかしい場合には、データそのものに原因があるケースが多いです。
主な原因と対処法
- 改行コードの違い
WindowsとMac/Linuxで改行コードが異なるため、思ったように分割されない。
→ 解決法:/\r?\n/
を使って両方に対応する。 - データに想定外の区切り文字が含まれる
例: 商品名にカンマが入っているため、正しく分割できない。
→ 解決法: データの整形処理を事前に追加、または別の区切り文字を利用。 - 配列の要素数不足
期待した位置にデータがなく、undefined
になる。
→ 解決法:if (arr.length > 2)
のように安全に取り出す。 - 正規表現の誤用
特殊文字をエスケープせずに書いてしまう。
→ 解決法: 区切り文字が「.」「|」「?」などの場合はバックスラッシュでエスケープする。
ビジネス現場でのトラブル事例
人事部門が外部ベンダーから受け取ったCSVをsplitで処理した際、社員の住所データにカンマが含まれており、データがズレてしまいました。これにより給与明細の宛先が誤送信されそうになったのです。急遽、住所フィールドはダブルクォーテーションで囲むルールを追加し、エラーを回避しました。
注意点
splitのトラブルは一見プログラムの問題に見えても、実際はデータ設計や運用ルールに起因することが多いです。そのため、コード側だけでなく「入力データの仕様確認」も必ず行いましょう。
まとめ
Google Apps Scriptのsplit関数は、単純な文字列分割から正規表現を使った複雑な処理、改行や複数条件への対応、さらには後ろからの切り出しまで幅広く活用できます。
この記事で紹介したポイントを整理すると次の通りです。
- 基本のsplit関数でカンマ区切りなどを分割できる
- 正規表現を使えば複数条件や空白処理に対応可能
- 配列として扱うことで必要な要素を自在に取り出せる
- 後ろから要素を切り出すことでファイル名や拡張子を取得できる
- エラーや不具合はデータ仕様の違いによることが多く、事前の確認が必須
実務の中で「データが扱いにくい」と感じたら、まずsplitを思い出してみてください。少しの工夫で、業務の効率が飛躍的に改善されるかもしれませんよ。