要点 —
CONCATはCONCATENATEの現代的な置き換えです。先代にできなかった 唯一のこと——範囲をまるごと一度に取る=CONCAT(A1:A10)。セルをA1, A2, A3, …と手で並べる必要がありません。一方でしないこと——区切り文字を入れる、空白を飛ばす。 ただ文字をくっつけるだけです。構文は=CONCAT(テキスト1, [テキスト2], …)。区切り 文字が要る、または空白を飛ばしたいなら、CONCATを&で継ぎ接ぎせず、最初からTEXTJOINへ。Excel 365 / 2019 以降。
=CONCAT(A1:A10)
=CONCAT(A2, " — ", B2)
CONCATENATE は何十年も存在し、今も動きます——が、Microsoft 自身のドキュメントが
「互換性のために残されている」関数と呼び、CONCAT に置き換えられたとしています。
日常の違いは小さいが本物です。CONCAT は1つの参照で範囲をまるごと飲み込み、
CONCATENATE は各セルを個別に指させます。
この記事でわかること
CONCATENATEに対する唯一の本当の改善——セルごとではなく範囲- なぜ
CONCATENATEはもう書かなくてよい過去の遺物なのか CONCATが2次元範囲をどう読むか——意外な「行優先」- 数値書式の罠(日付がシリアル値に、通貨が記号を失う)
CONCATを飛ばしてTEXTJOINを使うべき場面
考え方の軸:ついに範囲を取る CONCATENATE
CONCATENATE はいつも少し滑稽でした。10個のセルを結合するのに
=CONCATENATE(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10) と打つ。CONCAT はまさに
そこを直します——範囲を受け取るので、同じ結合が =CONCAT(A1:A10)。あとは同じ。値の
あいだに区切りはなく、空白セルは見えるものを何も足しません(飛ばすも何も——空白は
文字を1つも足さない)。
' 旧来——各セルを手で列挙:
=CONCATENATE(A1, A2, A3, A4, A5)
' CONCAT——範囲1つ:
=CONCAT(A1:A5)
すべての鍵となるルール:区切りが無い=たいてい欲しいのは TEXTJOIN
ここが多くの人の判断を誤らせます。CONCAT は値のあいだに何も入れずにくっつけます。
カンマ・空白・改行を値のあいだに入れたい瞬間——または空白を飛ばしたい瞬間——CONCAT
の守備範囲を越えています。人は区切りを後付けしようとします。
=CONCAT(A2, ", ", B2, ", ", C2) ' 数セルなら動くが、区切りをまた手で打っている
' ——昔の苦痛
…これは名前を変えた CONCATENATE です。答えに区切りが絡むなら、
TEXTJOIN が引数1つでやり
(=TEXTJOIN(", ", TRUE, A2:C2))、空白も飛ばします。CONCAT は本物の「区切りなしで
くっつける」場合だけに——部品から ID を組む、コードを組み立てる、値に接頭辞を貼る。
CONCATが2次元範囲を読む順:行優先
長方形の範囲を CONCAT に渡すと、読む順が意外です。列ごとではなく、行ごと(左から
右、上から下)に進みます。
' A1=a B1=b
' A2=c B2=d
=CONCAT(A1:B2) ' -> "abcd" (a, b, それから c, d——まず各行を横に)
"acbd" を期待したなら、それが罠です。順序が大事な場面では、ブロックの読み順に頼らず、
並びを明示的に書き出しましょう。
数値書式の罠
CONCAT は画面表示ではなく内部の値を連結します。日付はシリアル値、通貨は ¥ と
小数を失い、パーセントは生の小数になります。
=CONCAT("期限: ", B2) ' -> "期限: 46204" B2 が日付なら
=CONCAT("期限: ", TEXT(B2, "yyyy/mm/dd")) ' -> "期限: 2026/06/17"
数値・日付・通貨が CONCAT(や TEXTJOIN、&)に入るときは必ず、明示的な書式の
TEXT() で包みます。連結の出力が「おかしく見える」最も多い原因です。同じ1セルあたり
32,767文字の上限が効き、あふれると #VALUE! を返します。
判断:CONCAT・CONCATENATE・TEXTJOIN のどれ?
新しい式で CONCATENATE を書くのはやめましょう——CONCAT はその全部をこなし、範囲も
取ります。残る2つのうち——区切りなしなら CONCAT、区切りまたは空白スキップが
欲しい瞬間に TEXTJOIN。決めることはこれだけ。避けるべき失敗は、CONCAT に手を伸ばし、
& や SUBSTITUTE で支えて、TEXTJOIN がただでくれるものを作り直すことです。
ExcelMaster の使いどころ
「これをつなげて」の依頼の多くは、隠れた書式ルールを含みます:カテゴリ・ハイフン・
ゼロ埋めの番号から SKU を組んで。ExcelMaster は正しい関数を選び——生の結合なら
CONCAT、区切りや空白スキップが絡むなら TEXTJOIN——数値と日付を正しい TEXT() 書式
で包み、あなたの説明から式を書きます。出力がどう読めるべきかをあなたが言い、機構は
任せられます。
よくある質問
CONCATとCONCATENATEの違いは?
CONCAT は範囲をまるごと取れます(=CONCAT(A1:A10))。CONCATENATE は各セルを手で
列挙させます。それ以外は同じ——区切りなし、空白スキップなし。CONCATENATE は互換性の
ためだけに残っているので、新しい作業では CONCAT を使います。
Excelでセルの範囲を連結するには?
=CONCAT(A1:A10) を使います。値のあいだに区切りが要る、または空白セルを飛ばしたい
なら、代わりに =TEXTJOIN(", ", TRUE, A1:A10) を——CONCAT には区切りの選択肢が
ありません。
CONCATで区切り文字を入れるには?
きれいにはできません——CONCAT は値のあいだに何も入れずにくっつけます。区切りを手で
打つ(=CONCAT(A2, ", ", B2))のは数セルなら動きますが、目的を外しています。区切り
つきのリストには TEXTJOIN を。
CONCATで日付が数値になるのはなぜ?
CONCAT は表示書式ではなく内部の値を連結するため、日付がシリアル値で現れます。TEXT
で包みます:=CONCAT("期限: ", TEXT(B2, "yyyy/mm/dd"))。
CONCATはExcel 2016で使える?
使えません。CONCAT は Excel 2019 / 365 から。2016では CONCATENATE か & 演算子に
戻ります。
検証環境
検証環境: Excel 365(Windows 11)— 最終確認 2026-06-17。
関連ガイド: ExcelのTEXTJOIN関数 · ExcelのTEXTSPLIT関数 · ExcelのFILTER関数 · VBAの文字列連結
