タグ: CONCATENATE

  • CONCATENATE関数の使い方|&演算子との違いと使い分け

    CONCATENATEは、複数の文字列をつなげる関数です。

    「姓」と「名」を結合してフルネームにする、住所の各項目をつなげる、といった処理に使います。

    ただし実務では、& 演算子か TEXTJOIN を使うほうが多いのが実情です。この記事では使い分けまで整理します。

    書式

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

    基本の使い方

    A B
    1 山田 太郎
    =CONCATENATE(A1, B1)      → 山田太郎
    =CONCATENATE(A1, " ", B1) → 山田 太郎

    区切り文字を入れたいときは、間に文字列を挟みます。

    &演算子との違い

    同じことが & でも書けます。

    =A1 & B1
    =A1 & " " & B1

    結果はまったく同じです。 どちらを使うかは好みの問題ですが、実務では次のような使い分けが一般的です。

    CONCATENATE &
    短い連結 冗長 簡潔
    項目が多い 見やすい & だらけで読みにくい
    数式内での可読性 括弧が必要 直感的

    2〜3個なら &、それ以上なら関数、というのが目安です。

    範囲を渡したときの挙動

    ここが最大の注意点です。

    =CONCATENATE(A1:A5)

    この書き方は、期待通りに動きません。 スプレッドシートでは範囲を渡すと、最初のセルだけ、または配列として展開されるなど、環境によって挙動が不安定です。

    範囲をまとめて連結したいなら、TEXTJOIN を使ってください。

    =TEXTJOIN(", ", TRUE, A1:A5)

    区切り文字を指定でき、空欄を無視でき、範囲をそのまま渡せます。CONCATENATEの上位互換と考えて構いません。

    CONCATとの違い

    CONCAT という似た関数もあります。

    =CONCAT(A1, B1)

    引数を2つしか取れません。 3つ以上つなげたい場合はCONCATENATEか & を使ってください。

    Excelでは CONCAT が範囲に対応していますが、スプレッドシートの CONCAT は2引数専用です。同名でも挙動が違うので注意してください。

    日付や数値が崩れる原因

    日付をそのまま連結すると、内部の数値(シリアル値)が出てしまいます。

    =CONCATENATE("更新日:", A1)   → 更新日:46113

    TEXT で書式を指定してから連結してください。

    =CONCATENATE("更新日:", TEXT(A1, "yyyy/m/d"))   → 更新日:2026/4/1

    金額も同様です。

    =CONCATENATE("合計:", TEXT(A1, "¥#,##0"))   → 合計:¥1,234,567

    桁区切りやゼロ埋めは、連結すると消えます。 表示形式はセルの設定であって、値そのものではないためです。ここは実務で頻繁に起きるトラブルです。

    改行を入れる

    CHAR(10) が改行です。

    =CONCATENATE(A1, CHAR(10), B1)

    セルの書式で「折り返し」を有効にしないと、改行が見えません。 数式は正しくても表示されないので、書式を確認してください。

    全行に適用する

    ARRAYFORMULA と組み合わせられますが、& のほうが確実に動きます。

    =ARRAYFORMULA(IF(A2:A="", "", A2:A & " " & B2:B))

    CONCATENATEは配列に対する挙動が安定しないため、ARRAYFORMULA の中では & を使ってください。

    使い分けのまとめ

    やりたいこと 使うもの
    2〜3個のセルをつなぐ &
    項目が多く、可読性を上げたい CONCATENATE
    範囲をまとめて連結 TEXTJOIN
    区切り文字を入れて連結 TEXTJOIN
    空欄を飛ばして連結 TEXTJOIN
    ARRAYFORMULA の中 &

    迷ったら TEXTJOIN を検討してください。 CONCATENATEでしかできないことは、実質ありません。

    Excelとの違い

    CONCATENATE・&TEXTJOIN はすべて共通です。

    違いは CONCAT です。

    Excel スプレッドシート
    CONCAT の引数 範囲も可 2つまで
    CONCATENATE 非推奨(CONCAT 推奨) 現役

    ExcelではCONCATENATEは互換性のために残されている扱いですが、スプレッドシートでは普通に使えます。ただしどちらの環境でも、&TEXTJOIN を使うのが現代的です。

    まとめ

    • – 書式は =CONCATENATE(文字列1, 文字列2, ...)
    • & とまったく同じ結果。2〜3個なら & が簡潔
    • 範囲を渡すと期待通りに動かないTEXTJOIN を使う
    • – 日付・金額は TEXT で書式を指定してから連結する
    • – 改行は CHAR(10)。セルの折り返し設定も必要
    • ARRAYFORMULA の中では & を使う

    関連する関数

    • TEXTJOIN — 区切り文字付き・空欄無視で範囲を連結
    • TEXT — 日付や数値の書式を指定する
    • SPLIT — 逆に文字列を分割する
    • SUBSTITUTE — 文字列を置き換える
    • 関数一覧に戻る