業務でGoogleスプレッドシートやフォームを自動化するとき、「文字列をどう結合するか」で悩んだ経験はありませんか。複数のセルの内容を一つにまとめたり、数字と文字を組み合わせて見やすいレポートを生成したりする場面は多いものです。Google Apps Script(略してGAS)を使えば、文字列の結合はもちろん、改行や変数の埋め込みまで自在に扱えます。この記事では、基本から実践テクニックまで徹底的に解説していきますよ。
文字列を結合する基本の方法を理解する
まずは「文字列を結合する」とは何かを整理しておきましょう。文字列とは文字の並びのことです。たとえば「売上」「2024年」といったテキストを組み合わせて「2024年の売上」という一つの文を作ることを「文字列の結合」と呼びます。GASではプラス記号(+)やjoin()
メソッドを使ってシンプルに実現できます。
なぜ文字列結合が必要なのか
業務で文字列を結合するケースは意外に多くあります。営業レポートを作成する際、社員名と売上金額を結合して「田中:100万円」という表現にしたい場面や、システムから出力された複数の列データをひとまとめにして通知メールを送りたい場面などです。Excelやスプレッドシートではセルをそのままつなぐ関数を使いますが、GASなら自動で処理が進むため、大規模なデータ処理にも耐えられるのです。
基本的な結合のコード例
function basicConcat() {
var text1 = "売上は";
var number = 100;
var text2 = "万円です";
var result = text1 + number + text2;
Logger.log(result); // 売上は100万円です
}
この例では文字列と数字を組み合わせています。JavaScriptの特徴として、文字列と数字を「+」でつなぐと自動的に文字列として処理されます。業務で数字を見やすくするレポートを作成するときにとても便利です。
join()を活用する方法
配列(複数の要素を並べて管理するデータ構造)を扱うときはjoin()
が有効です。
function joinExample() {
var items = ["A社", "B社", "C社"];
var result = items.join("、");
Logger.log(result); // A社、B社、C社
}
営業先一覧をまとめるメールを自動送信するときなど、この書き方で「、」や「改行」を使ってきれいに整形できます。
注意点と失敗例
一方で、数値を計算したい場面で誤って文字列と結合すると意図しない結果になります。例えば「10 + 20」は30になりますが、「10」+「20」は「1020」と連結されてしまいます。会計処理の自動化などでは特に注意が必要です。
改行を入れて見やすく結合する方法
文字列結合でよく求められるのが「改行を入れて見やすくしたい」というニーズです。GASでは\n
を使うことで簡単に改行できます。
改行を含めた実践コード
function concatWithLineBreak() {
var line1 = "売上報告";
var line2 = "2024年1月:100万円";
var line3 = "2024年2月:120万円";
var result = line1 + "\n" + line2 + "\n" + line3;
Logger.log(result);
}
このコードを実行するとログには次のように出力されます。
売上報告
2024年1月:100万円
2024年2月:120万円
ビジネスでの利用シーン
メール本文を生成するときや、チャットツールへの通知メッセージを整形するときに欠かせないのが改行です。スプレッドシートのデータをまとめて通知する場合、改行を入れなければ一行で表示されてしまい読みにくいですよね。改行を適切に入れることで、上司やチームメンバーにも見やすい情報共有ができます。
2行改行を入れるテクニック
さらに見やすさを高めたいときには「\n\n」を使います。これは空行を挟むことになり、章立てされたような見栄えになります。例えば報告書の項目ごとに2行改行を入れると、パッと見で区切りがわかりやすくなります。
海外事例との比較
欧米の企業ではチャット通知やSlack連携の自動化で、改行を積極的に活用しています。単に「売上:100万円」と送るよりも、箇条書きや段落分けを駆使して、ビジネス文書のように整った通知を自動で届けています。これにより「読むストレスを減らす」ことができるのです。
数字や変数を組み合わせて結合する方法
次に重要なのが「数字」や「変数」を結合に取り入れる方法です。単純な文字列だけではなく、計算結果や動的に変わる値を組み合わせて使うケースが多いからです。
数字を結合する基本
例えば売上数値を結合するときは次のように書けます。
function concatWithNumber() {
var month = "3月";
var sales = 150;
var result = month + "の売上は" + sales + "万円です";
Logger.log(result);
}
これにより、「3月の売上は150万円です」と表示されます。営業データを動的に差し込みたいときに役立ちます。
変数を埋め込むテンプレートリテラル
よりスッキリとした書き方にしたい場合は「テンプレートリテラル」という方法を使います。これはバッククォート(`
)で囲んで${変数}
を埋め込む書き方です。
function concatWithTemplateLiteral() {
var user = "田中";
var score = 85;
var message = `${user}さんのスコアは${score}点です`;
Logger.log(message);
}
この記述なら変数を簡単に埋め込めるので、コードが見やすくなりますよ。
ビジネスシーンでの具体例
例えば、アンケート結果を集計して「社員A:満足度90点」「社員B:満足度75点」と一覧を作成する自動化処理が考えられます。こうした場面では文字列と数値を結合しながら整形することが不可欠です。GASを使えばデータを一気に結合して、Slackやメールに送信できます。
注意点と失敗事例
数字のフォーマットにも気を配る必要があります。1000を「1,000」とカンマ区切りにしたい場合、単純に結合するだけでは見にくくなります。こうした場合はtoLocaleString()
を使って数字を変換するとよいでしょう。
var sales = 1000000;
Logger.log(sales.toLocaleString()); // 1,000,000
会計報告などで桁区切りがないと、誤解やミスにつながることもあるため注意が必要です。
文字列を変換して形式を整える方法
文字列を結合する際、そのままの形で使うと不便なことがあります。例えばすべて大文字に揃えたい、余計な空白を削除したい、日付の形式を統一したいといったケースです。そこで「文字列の変換」を行うことで、結合した結果を整えられます。
文字列を変換する代表的な方法
toUpperCase()
:すべて大文字に変換するtoLowerCase()
:すべて小文字に変換するtrim()
:前後の空白を削除するreplace()
:特定の文字を置き換える
function convertString() {
var text = " Sales Report ";
var result = text.trim().toUpperCase();
Logger.log(result); // SALES REPORT
}
ビジネスシーンでの実例
営業部門で月次レポートを作成するときに、社員が入力するフォーマットがバラバラだと集計が大変です。例えば「tokyo」「Tokyo」「TOKYO」が混在すると、結合後に一覧が乱れてしまいます。そこで一律に大文字変換してから結合することで、統一感のある資料に仕上がります。
海外事例との比較
アメリカの企業では、メールの件名やレポートの見出しを大文字表記にする文化があります。そのため、自動生成の段階で文字列を大文字に統一するルールを組み込むケースが多いのです。GASでも同じように処理できるので、日本企業が国際的なやり取りをするときにも役立ちます。
注意点
変換を行うと元の文字列のニュアンスが失われることがあります。特に固有名詞(Appleとappleなど)は誤解を生む可能性があるため、業務で使うときは対象をよく見極めてください。
文字列を切り出して部分的に結合する方法
結合する前に、必要な部分だけを切り出して使いたいこともあります。例えば「2024-03-15」という日付から「2024年3月」だけを取り出して結合するといったケースです。
基本的な切り出し方法
substring(start, end)
substr(start, length)
slice(start, end)
function cutAndConcat() {
var dateText = "2024-03-15";
var year = dateText.substring(0, 4);
var month = dateText.substring(5, 7);
var result = year + "年" + month + "月の売上報告";
Logger.log(result); // 2024年03月の売上報告
}
ビジネス現場での応用
人事部で社員の入社年月日から「入社年」と「勤続年数」を算出し、勤続表彰リストを作成する場合が考えられます。入社日の文字列から年だけを切り出して計算・結合すれば、自動でリストを生成できます。
他業種との比較
小売業では商品コードからカテゴリを切り出し、それを結合してレポート化する運用があります。たとえば「A-12345」の文字列から「A」を切り出して「カテゴリA商品:12345」と結合すれば、報告資料にそのまま活用できます。
注意点と失敗例
インデックス(位置番号)の指定を誤ると、想定外の部分が切り出されます。「2024-03-15」で年を取り出したいのに、間違って「-03」を取得してしまうようなミスです。結合結果が不自然になった場合は、切り出し位置を確認してください。
sliceを活用して自在に整形する方法
slice()
は柔軟に文字列を操作できる便利なメソッドです。substring()
と似ていますが、マイナスの値を使って後ろから切り出せる点が特徴です。
sliceの基本的な使い方
function sliceExample() {
var text = "ABCDEFG";
var part = text.slice(-3);
Logger.log(part); // EFG
}
この例では後ろから3文字を取り出しています。業務でコードの末尾部分だけ必要なときに重宝します。
ビジネス利用例
銀行口座番号や社員番号の末尾数桁を結合して、個人情報を伏せつつ通知する仕組みに使えます。例えば「****5678」といった表記を自動生成するイメージです。
二次元配列との組み合わせ
slice()
は文字列だけでなく配列にも使えます。スプレッドシートから取得した大量データの一部だけを取り出し、結合してメール送信する場合にも有効です。
function sliceArrayExample() {
var data = ["田中", "佐藤", "鈴木", "高橋"];
var selected = data.slice(0, 2);
Logger.log(selected.join("、")); // 田中、佐藤
}
注意点
「gas slice 使えない」と検索されることがありますが、それは多くの場合「配列ではなくオブジェクトに対して使っている」などの原因です。sliceは文字列か配列でしか動作しないため、型をしっかり確認してください。
セルを結合してスプレッドシートを操作する方法
スプレッドシート上で「セルを結合」する処理もGASで可能です。文字列結合とは異なり、セルそのものを統合する操作です。見出しを作るときや、デザインを整えるときに役立ちます。
基本的なセル結合コード
function mergeCells() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange("A1:B1").merge();
}
この例ではA1とB1のセルを結合します。報告書のタイトルを中央に配置する際などに利用されます。
文字列結合との違い
セル結合は見た目を整えるだけで、データ処理には関係しません。一方で文字列結合はデータそのものを編集します。業務の目的に応じて使い分けることが重要です。
注意点
セル結合を多用すると、後のデータ処理やソートがしにくくなるというデメリットもあります。数値集計を行う表では、セル結合よりも文字列結合で代替するほうがスムーズな場合もあります。
文字列検索と結合の実践シナリオ
最後に「文字列検索」と組み合わせた結合の実践例を見てみましょう。大量のデータから必要な情報を検索し、それを結合して通知やレポートに使う流れです。
具体的な業務シナリオ
例えば、アンケート結果のスプレッドシートから「満足度が高いコメント」だけを検索してまとめ、経営陣に報告するケースです。
function searchAndConcat() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var values = sheet.getRange("A2:A100").getValues();
var results = [];
for (var i = 0; i < values.length; i++) {
if (values[i][0].includes("満足")) {
results.push(values[i][0]);
}
}
var report = results.join("\n");
Logger.log(report);
}
このようにすれば「満足」というキーワードを含むコメントだけを抽出し、改行で結合して報告書を作成できます。
他業種の応用例
製造業では不良品レポートのキーワード検索に活用できますし、教育業界では学生の提出物から特定の単語を含む感想を抽出して結合することも可能です。
まとめ
文字列の結合は単純に「つなげる」だけではなく、改行や数字の整形、変数の埋め込み、切り出し、検索との組み合わせまで幅広いテクニックがあります。
- 改行を入れることで可読性を高められる
- 数字や変数を組み込むと動的なレポート生成が可能になる
- 変換や切り出しを使えば整形やデータ加工に応用できる
- スプレッドシートのセル結合とは役割が異なる
- 検索と組み合わせると大量データから必要情報だけを抽出できる
GASを使った文字列結合は、業務の自動化や効率化に直結します。ぜひ小さなサンプルから試し、実際の業務フローに組み込んでみてください。作業時間が驚くほど短縮されるはずですよ。