• 更新日 : 2025年9月22日

スプレッドシートで文字列を結合するには?改行を含む場合まで徹底解説

Googleスプレッドシートで文字列を結合すると、氏名や住所の整形、商品コードの生成など幅広い業務に役立ちます。&演算子、CONCATENATE関数、CONCAT関数、TEXTJOIN関数といった複数の方法があり、それぞれに適した使い分けがあります。

本記事では、基本的な結合方法から改行を含むテクニック、トラブルシューティングまで解説し、日常業務ですぐに活用できる知識を整理します。

目次

スプレッドシートで文字列を結合する方法

スプレッドシートで文字列を結合する方法は、&演算子、CONCATENATE関数、CONCAT関数、TEXTJOIN関数の4つが主要な選択肢となり、それぞれに適した使用場面があります。 各方法の特徴を理解することで、効率的なデータ処理が可能になります。

文字列結合が必要になる典型的なシーン

文字列結合は様々な業務場面で活用されています。

実務での活用例
  • 氏名の結合:姓と名を結合してフルネームを作成
  • 住所の統合:都道府県、市区町村、番地を一つの住所に
  • コード生成:複数の要素から製品コードや管理番号を作成
  • メッセージ作成:定型文と変動要素を組み合わせた文書生成
  • URLの構築:ベースURLとパラメータを結合して動的URL作成

各結合方法の概要と選択基準

方法特徴使用場面柔軟性
&演算子最もシンプルで直感的少数のセル結合
CONCATENATE関数複数引数を順番に結合3個以上のセル結合
CONCAT関数2つの値を結合(CONCAT (value1, value2)単純な2要素の結合に適する/範囲指定は不可
TEXTJOIN関数区切り文字と空白スキップ機能大量データの結合最高

&(アンパサンド)演算子による文字列結合

&(アンパサンド)演算子を使うと、2つ以上のセルや文字列を素早く結合できます。 数式が短くシンプルになるため、可読性が高いのが特徴です。

&演算子の基本的な使い方

基本構文:

=セル1&セル2

=セル1&”文字列”&セル2

具体的な使用例:

// 姓名を結合

=A2&B2  // 結果:山田太郎

// スペースを挟んで結合

=A2&” “&B2  // 結果:山田 太郎

// 複数の要素を結合

=A2&”-“&B2&”-“&C2  // 結果:2024-01-15

&演算子の実践的な活用テクニック

&演算子は他の関数と組み合わせることで、より高度な文字列処理が可能になります。

応用例1:条件付き結合

=IF(A2<>””, A2&” 様”, “”)

// A2が空でない場合のみ「様」を付加

応用例2:数値のフォーマット付き結合

=A2&”円(税込”&TEXT(A2*1.1, “#,##0″)&”円)”

// 結果:1000円(税込1,100円)

応用例3:日付との結合

=TEXT(TODAY(), “yyyy年mm月dd日”)&”現在”

// 結果:2024年01月15日現在

&演算子を使う際のメリットとデメリット

メリット
  • 記述が簡潔で理解しやすい
  • 入力が速い(関数名を打つ必要がない)
  • 少数のセル結合には最適
  • 数式の可読性が高い
デメリット
  • 大量のセルを結合する場合は煩雑になる
  • 配列数式での使用に制限がある
  • 区切り文字の一括指定ができない

CONCATENATE関数による文字列結合

CONCATENATE関数は複数の文字列を順番に結合でき、Googleスプレッドシートでは最大30引数まで対応しています。関数名が明確なため、数式の意図が分かりやすいのが特徴です。

CONCATENATE関数の基本構文と使い方

基本構文:

=CONCATENATE(文字列1, [文字列2], …)

基本的な使用例:

// 3つのセルを結合

=CONCATENATE(A2, B2, C2)

// 文字列リテラルを含む結合

=CONCATENATE(“注文番号:”, A2, “-“, B2)

// 空白を含む結合

=CONCATENATE(A2, ” “, B2, ” “, C2)

CONCATENATE関数の実践的な活用例

CONCATENATE関数は、構造化されたデータの結合や、定型フォーマットの作成に適しています。

実装例1:フルアドレスの作成

=CONCATENATE(“〒”, A2, ” “, B2, C2, D2, E2)

// 結果:〒123-4567 東京都千代田区丸の内1-1-1

実装例2:商品コードの生成

=CONCATENATE(

TEXT(A2, “0000”),  // カテゴリコード

“-“,

TEXT(B2, “000”),   // 製品番号

“-“,

TEXT(C2, “00”)     // バージョン)

// 結果:0001-023-05

実装例3:メール本文の作成

=CONCATENATE(

A2, “様”, CHAR (10), CHAR (10),

“お世話になっております。”, CHAR (10),

“ご注文番号”, B2, “の商品を発送いたしました。”)

CONCATENATE関数とCONCAT関数の違い

CONCATENATE関数は従来からある関数ですが、より新しいCONCAT関数との違いを理解することが重要です。

引数の指定方法
  • CONCATENATE:個別指定(CONCATENATE(a, b, c, …))
  • CONCAT:2つのみ(CONCAT (a, b))※範囲指定不可
最大引数数
  • CONCATENATE:最大30個
  • CONCAT:2個

配列/範囲の結合

両者とも不可(大量の結合や範囲結合は TEXTJOIN/JOIN を利用)

補足

区切り文字や空白セルの無視が必要な場合は TEXTJOIN(delimiter, ignore_empty, range) を推奨。

CONCAT関数による文字列結合

CONCAT関数は 2 つの値を結合する単純な関数(=CONCAT (value1, value2))です。多数のセルや範囲を結合する場合は TEXTJOIN(または CONCATENATE)を使用します。

CONCAT関数の基本的な使い方

基本構文: =CONCAT (値1, 値2)(※3つ以上の結合や範囲結合は TEXTJOIN/CONCATENATE を使用)

使用例:

// 範囲指定での結合(区切りなし)

=TEXTJOIN(“”, TRUE, A2:A10)

// 複数範囲を連結

=TEXTJOIN(“”, TRUE, A2:A5, C2:C5)

// 文字列を付けて範囲を結合

=TEXTJOIN(“”, TRUE, “プレフィックス-“, A2:A5)

CONCAT関数の高度な活用テクニック

CONCAT関数は配列数式と組み合わせることで、より柔軟なデータ処理が可能です。

応用例1(条件付き範囲結合):=TEXTJOIN(“”, TRUE, IF(B2:B10>0, A2:A10, “”))

応用例2(フィルタリング結合):=TEXTJOIN(“”, TRUE, FILTER(A2:A20, B2:B20=”承認済”))

CONCAT関数とARRAYFORMULAの組み合わせ

行ごとに A-B を作ってすべて連結(区切りなし):

=TEXTJOIN(“”, TRUE, A2:A10 & “-” & B2:B10)

行ごとに改行区切りで連結:

=TEXTJOIN(CHAR (10), TRUE, A2:A10 & “-” & B2:B10)(※セルの折返しを有効に)

TEXTJOIN関数による高度な文字列結合

TEXTJOIN関数は、区切り文字の指定と空白セルのスキップ機能を持つ最も高機能な文字列結合関数で、大量データの結合に最適です。 CSVデータの作成やリスト生成に特に有用です。

TEXTJOIN関数の基本構文と特徴

基本構文:

=TEXTJOIN(区切り文字, 空白を無視, テキスト1, [テキスト2], …)

パラメータの詳細
  • 区切り文字:結合する文字列間に挿入する文字
  • 空白を無視:TRUE/FALSEで空白セルの扱いを指定
  • テキスト:結合する文字列または範囲

TEXTJOIN関数の実践的な使用例

TEXTJOIN関数を使えば、複雑な文字列結合も簡潔に記述できます。

基本的な使用例:

// カンマ区切りのリスト作成

=TEXTJOIN(“, “, TRUE, A2:A10)

// 結果:りんご, バナナ, オレンジ

// 改行区切りのリスト

=TEXTJOIN(CHAR (10), TRUE, A2:A10)

// パイプ区切りのデータ作成

=TEXTJOIN(“|”, FALSE, A2:D2)

// 結果:東京|営業部|山田|1000000

TEXTJOIN関数の高度な活用方法

応用例1:動的なSQL文の生成

=TEXTJOIN(” AND “, TRUE,

“name='”&A2:A5&”‘”,

“status='”&B2:B5&”‘”)

// 結果:name=’山田’ AND status=’active’ AND …

応用例2:メールアドレスリストの作成

=TEXTJOIN(“; “, TRUE,

FILTER(B2:B100, A2:A100=”営業部”))

// 営業部のメールアドレスをセミコロン区切りで結合

応用例3:階層的なパスの作成

=TEXTJOIN(“/”, TRUE, A2, B2, C2, D2)

// 結果:ルート/カテゴリ/サブカテゴリ/商品

TEXTJOIN関数と他の関数の使い分け

使い分けの指針

シナリオ推奨関数理由
2-3個のセル結合&演算子シンプルで高速
固定数の引数結合CONCATENATE明確で理解しやすい
連続範囲の結合TEXTJOIN(または JOIN範囲指定が簡潔
区切り文字付き結合TEXTJOIN最も柔軟で高機能
大量データの結合TEXTJOIN空白スキップ機能が有用

スプレッドシートで改行を挟んで文字列を結合する方法

改行を含む文字列結合は、CHAR (10)関数を使用することで実現でき、複数行のテキストを1つのセルに収めることができます。 レポートや文書作成において重要なテクニックです。

CHAR (10)を使った改行の基本

改行コードの基礎知識
  • CHAR (10):ラインフィード(LF)- Googleスプレッドシートの標準
  • CHAR (13):キャリッジリターン(CR)- 一部のシステムで使用

基本的な使用例:

// &演算子での改行

=A2&CHAR (10)&B2&CHAR (10)&C2

// CONCATENATE関数での改行

=CONCATENATE(A2, CHAR (10), B2, CHAR (10), C2)

// TEXTJOIN関数での改行

=TEXTJOIN(CHAR (10), TRUE, A2:A10)

改行を含む実践的な文字列結合

住所や説明文など、視認性を重視する場合に改行結合が効果的です。

実装例1:住所の整形

=CONCATENATE(

“〒”, A2, CHAR (10),

B2, C2, CHAR (10),

D2, E2)

// 結果:

// 〒123-4567

// 東京都千代田区

// 丸の内1-1-1

実装例2:商品説明の作成

=TEXTJOIN(CHAR (10)&”・”, TRUE,

“特徴:”,

A2:A5)

// 結果:

// 特徴:

// ・高品質

// ・低価格

// ・即日発送

セル内改行の表示設定

改行を正しく表示するには、セルの書式設定で「折り返し」を有効にする必要があります。

設定手順
  1. 対象セルを選択
  2. 「表示形式」→「テキストの折り返し」→「折り返す」を選択
  3. または、ツールバーの「テキストの折り返し」アイコンをクリック

プログラムでの設定(Google Apps Script):

function setWrapText() {

var range = SpreadsheetApp.getActiveRange();

range.setWrap(true);}

文字列結合時の注意点とトラブルシューティング

文字列結合を行う際は、データ型の違い、特殊文字の扱い、パフォーマンスへの影響など、様々な注意点があります。これらを理解することで、エラーを防ぎ、効率的な処理が可能になります。

データ型に関する注意点

数値、日付、論理値を文字列と結合する際は、適切な変換が必要です。

問題例と解決策:

  1. 数値の書式が失われる問題
    // 問題:小数点が消える=A2&B2  // 1000.50 → 1000.5// 解決策:TEXT関数で書式指定=TEXT(A2, “#,##0.00”)&B2
  2. 日付が数値になる問題// 問題:日付がシリアル値になる=A2&”の売上”  // 44562の売上// 解決策:TEXT関数で日付書式を指定=TEXT(A2, “yyyy/mm/dd”)&”の売上”
  3. 論理値の表示問題// 問題:TRUE/FALSEがそのまま表示=A2&B2  // TRUETRUE// 解決策:IF文で変換=IF(A2, “はい”, “いいえ”)&B2

特殊文字とエスケープ処理

特殊文字を含む文字列結合では、適切なエスケープ処理が必要です。

// ダブルクォートを含む場合

=CONCATENATE(“彼は””こんにちは””と言った”)

// バックスラッシュを 1本→2本 に増やす

=SUBSTITUTE(A2, “”, “”)&B2

(検索文字列は “”=実際は 、置換後は “”=実際は )

// URLパラメータを含む場合(URLエンコード)

=”https://example.com/search?q=”&ENCODEURL(A2)&”&param=”&ENCODEURL(B2)

※HTMLに埋め込むためのエスケープは ENCODEURL ではなく、SUBSTITUTE で <→&lt;、>→&gt; などを置換する等の別処理が必要です。

パフォーマンスとメモリの考慮事項

数千〜数万件のデータを結合すると処理が重くなる場合があります。

最適化のポイント:

  1. 不要な再計算を避ける// 悪い例:各行で同じ計算を繰り返す=CONCATENATE(VLOOKUP(…), VLOOKUP(…))// 良い例:ヘルパー列を使用// C列にVLOOKUP結果を保存してから結合=CONCATENATE(C2, D2)
  2. 配列数式の効率的な使用// 一括処理で高速化=ARRAYFORMULA(A2:A1000&”-“&B2:B1000)
  3. メモリ使用量の削減
    • 不要な空白セルを含めない
    • 範囲を最小限に限定
    • 循環参照を避ける

エラー処理とデバッグ

文字列結合でよく発生するエラーと対処法

エラー原因解決策
#VALUE!データ型の不一致TEXT関数で変換
#REF!参照セルの削除IFERROR関数で保護
#NAME?関数名の誤りスペルチェック
#NULL!範囲指定の誤り範囲を確認

エラー処理の実装例:

=IFERROR(

TEXTJOIN(“-“, TRUE, A2:A10),

“結合エラー”)

国際化とエンコーディングの注意点

多言語データを扱う場合、文字エンコーディングに注意が必要です。

考慮事項
  • UTF-8エンコーディングの使用を推奨
  • 特殊文字(絵文字など)の扱い
  • 右から左に書く言語(アラビア語など)の考慮
  • 文字数制限の確認(特に日本語などのマルチバイト文字)

スプレッドシートの文字列結合を使った応用

動的なレポート作成

文字列結合を活用した月次レポートの自動生成:

=CONCATENATE(

TEXT(TODAY(), “yyyy年mm月度”), ” 売上レポート”, CHAR (10),

“―――――――――――――”, CHAR (10),

“総売上:”, TEXT(SUM(売上範囲), “#,##0円”), CHAR (10),

“前月比:”, TEXT((SUM(売上範囲)/前月売上-1), “0.0%”), CHAR (10),

“最高売上日:”, TEXT(最高売上日, “mm月dd日”))

バッチ処理用コマンドの生成

複数のコマンドを一括生成:

=TEXTJOIN(CHAR (10), TRUE,

“UPDATE users SET status=’active’ WHERE id=”&A2:A100&”;”)

スプレッドシートの文字列結合で業務を効率化する

スプレッドシートでは、&演算子やCONCATENATE関数、CONCAT関数、TEXTJOIN関数を使って柔軟に文字列を結合できます。用途に応じて使い分ければ、氏名や住所の整形、コード生成、リスト作成などが効率的に行えます。

改行にはCHAR (10)を使い、セルの折り返しを設定することで見やすい表示にできます。数千件以上を処理する場合は、再計算による遅延を防ぐ工夫も必要です。

基本操作から応用テクニックまで理解しておくことで、日常業務のデータ整理やレポート作成をスムーズに進められるでしょう。


※ 掲載している情報は記事更新時点のものです。

※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。

関連記事