CONCAT関数の読み方が分からないまま業務が始まり、会議で恥をかいた経験はありませんか。
本記事は読み方の正解と通じる発音のコツから、Excelと各種SQLでの使い分け、よくある落とし穴までを一気に整理します。
似た機能であるTEXTJOINや&演算子、STRING_AGGとの比較もまとめ、現場で迷わない判断基準を提示します。
実務でのトラブル回避に直結する最新情報です。
目次
CONCAT関数の読み方と発音の正解
英語の発音はおおむねコンキャットに近く、現場でも広く通じます。
一方でコンカットと呼ぶ人も一定数おり、プロジェクトやチームで揺らぎが出やすい用語です。
まずは背景を理解し、チーム内の表記を整えることが重要です。
英語発音とカタカナ表記
英語のconcatはconとcatの連結で、音としてはコンキャットに近い響きになります。
アクセントは後半に置かれがちで、早口ではコンキャトにも聞こえます。
日本語カタカナにするとコンキャットが最も原音に近い説明になります。
一方でカタカナ変換の簡便さからコンカットと表記されることもあります。
この表記でも意思疎通は取れることが多いですが、初学者には別物に見えやすいため、読み方を統一した周知が望ましいです。
コンキャットとコンカット どちらが通じるか
結論としてはどちらも通じます。
ただしドキュメントや議事録ではコンキャットを推奨すると誤読が減ります。
会話中に相手がコンカットと言っても、修正を強要せずに文脈で受け取りましょう。
呼称を統一する場合は関数名をそのままアルファベットでCONCATと書くのが確実です。
発音の揺れを避け、ツール横断でも意味がぶれません。
CONCATENATEの読み方との違い
古いExcelで使われたCONCATENATEは語源上はコンカチネイトやコンカテネートと読まれます。
機能は文字列連結で同系統ですが名称も読みも異なります。
Excelの新しい環境ではCONCATに置き換えが進んでいます。
現場では旧新が混在するケースがあるため、式を共有するときは対象バージョンと関数名を明記しましょう。
読み方だけでなく互換性の観点でも事故を防げます。
ExcelのCONCAT関数と従来のCONCATENATEの違い

ExcelのCONCATは複数セルや範囲をまとめて連結でき、旧来のCONCATENATEより柔軟です。
さらに区切りを自動で挿入したい場合はTEXTJOINが有効です。
それぞれの使い分けを理解することが実務効率化の第一歩です。
基本の使い方と引数
CONCATは引数を順に連結します。
例としてA2とB2を結合するには次のように書きます。
=CONCAT(A2,B2)
区切り文字を入れたい場合、文字コード関数を使えば定数の二重引用符を避けて表現できます。
例としてハイフンを入れる場合はCHAR(45)を使います。
=CONCAT(A2,CHAR(45),B2)
CONCATとCONCATENATEの互換性
CONCATENATEは旧式で、範囲指定が弱く、将来の非推奨対象です。
既存ブックでは動作しますが、新規設計ではCONCATかTEXTJOINを選びましょう。
変換の目安は、連結対象が二つ以上の列にまたがるかどうかです。
複数列を一括で扱うならCONCAT、区切りが必要ならTEXTJOINが適しています。
TEXTJOINとの使い分け
コンマやスペースなど同じ区切りを各要素の間に自動挿入したいならTEXTJOINが便利です。
空セルを無視するフラグもあり、住所やタグの連結に向きます。
=TEXTJOIN(CHAR(32),TRUE,A2:C2)
一方で要素間の区切りが一定でない、特定の位置だけ記号を入れたいなどのケースではCONCATの方が制御しやすいです。
セル参照と範囲指定のコツ
CONCATは範囲をそのまま渡せます。
ただし並び順は左から右、上から下の順序に依存します。
ソートやフィルタで順序が変わると結果も変化する点に注意が必要です。
確定した順序で連結したい場合は、ヘルパー列で連番を付与し、SORTBYなどで固定してからCONCATするのが堅実です。
改行や区切り文字の扱い
セル内改行はCHAR(10)を挟み、セルの折り返しを有効にします。
複数行の整形にはTEXTJOINと組み合わせると見通しが良くなります。
=TEXTJOIN(CHAR(10),TRUE,A2:A6)
区切りにタブを使いたい場合はCHAR(9)を用います。
用途に応じてASCIIコードを使い分けると、二重引用符なしで安全に共有できます。
SQLでのCONCAT関数の挙動の違いと注意点

SQLのCONCATは製品ごとにNULLの扱いや対応引数数が異なります。
実務ではこの差異が不具合の主要因になります。
代表的なRDBMSの挙動を把握し、ポータビリティを確保しましょう。
MySQLのNULLの扱い
MySQLのCONCATは引数のいずれかがNULLだと結果がNULLになります。
NULLを空文字として扱いたい場合はIFNULLやCOALESCEで前処理するか、区切りを伴うならCONCAT_WSを使います。
SELECT CONCAT(IFNULL(first_name,''), ' ', IFNULL(last_name,'')) AS full_name;
SELECT CONCAT_WS(' ', first_name, last_name) AS full_name;
想定外のNULL伝播を避けるため、仕様として常にIFNULLかCONCAT_WSを使う方針にしておくと安全です。
SQL ServerのNULLとCONCAT
SQL ServerのCONCATはNULLを空文字として扱います。
そのためNULL混在でも結果はNULLになりません。
パイプ演算子が無い環境ではCONCATが第一選択になります。
SELECT CONCAT(first_name, ' ', last_name) AS full_name;
一方、演算子での連結(first_name + last_name)は古い互換性設定でNULLが伝播する場合があるため、関数使用を推奨します。
PostgreSQLとOracleの注意点
PostgreSQLのconcatはNULLを空文字扱いにします。
また演算子のパイプ二本である||も利用できます。
SELECT concat(first_name, ' ', last_name);
SELECT first_name || ' ' || last_name;
OracleのCONCATは引数が2つに限定されます。
3つ以上を連結する場合は||演算子を用いるか、CONCATを入れ子にします。
SELECT first_name || ' ' || last_name || ' ' || title FROM employees;
パフォーマンスとインデックスへの影響
SELECT句のCONCAT自体は軽量ですが、WHEREやJOINの条件で関数をかけると索引が効かなくなる場合があります。
検索キーは生の列で保持し、表示時のみ連結するのが基本です。
大量連結は一時領域を圧迫することがあります。
必要な列だけを対象にし、行単位での文字列構築はSTRING_AGGなどの集合関数を併用して効率化します。
安全な文字列連結とSQLインジェクション対策
連結は可読性を上げますが、動的SQLの直接連結は危険です。
プレースホルダーとバインド変数を使い、アプリ側で連結しない方針を徹底しましょう。
ログやメッセージ生成も同様に、サニタイズ処理と長さ上限を設けることで思わぬエラーを防げます。
CONCATの使い方 基本構文と実務サンプル
日常業務で頻出するパターンを、ExcelとSQLそれぞれで示します。
現場の要件に合わせてテンプレート化しておくと再利用が容易です。
氏名の結合
Excelでは姓と名の間にスペースを入れて連結します。
定数の代わりにCHAR(32)を使うと共有時に安全です。
=CONCAT(B2,CHAR(32),C2)
SQLではRDBMSごとのスタイルに合わせます。
MySQLならCONCAT_WSが簡潔です。
-- MySQL
SELECT CONCAT_WS(' ', last_name, first_name) AS full_name FROM t;
-- SQL Server
SELECT CONCAT(last_name, ' ', first_name) AS full_name FROM t;
日付と文字列の連結時の書式
ExcelではTEXTを併用して表示形式を固定します。
ロケール差を避けるため、ISO形式を推奨します。
=CONCAT(TEXT(A2,"yyyy-mm-dd"),CHAR(32),B2)
SQLでは標準的な書式化関数を使います。
例としてPostgreSQLはto_char、SQL ServerはFORMATやCONVERTを使います。
-- PostgreSQL
SELECT to_char(order_date,'YYYY-MM-DD') || ' ' || order_no FROM orders;
CSV行の生成
Excelで複数列をカンマ区切りで連結したい場合、TEXTJOINが適します。
空セルを自動スキップできます。
=TEXTJOIN(",",TRUE,A2:F2)
SQLでは集合単位のCSVはSTRING_AGGが便利です。
カラム間のカンマはCONCAT、行間の結合はSTRING_AGGで処理します。
-- PostgreSQL
SELECT STRING_AGG(col, ',') FROM (
SELECT col1 AS col FROM t
UNION ALL SELECT col2 FROM t
) s;
ログメッセージの生成
Excelでは監査用の行ログを連結で作れます。
固定語はセルに置き、CHARで区切りを表現すると式が共有しやすくなります。
SQLのアプリログでは、長さ上限を超えないようにLEFTやSUBSTRINGで切り詰める保険を入れておきます。
例としてLEFT(CONCAT(…),1000)のように上限を付けます。
似た機能との比較: &演算子やTEXTJOIN、STRING_AGG

同じ連結でも目的により最適解が変わります。
以下の表で得意領域を確認し、設計に反映しましょう。
Excelでの比較表
| 機能 | 特徴 | 得意な用途 |
|---|---|---|
| CONCAT | 範囲も引数も可、柔軟 | 可変個の連結、部分的な記号挿入 |
| TEXTJOIN | 区切り自動挿入、空白無視可 | リスト結合、住所やタグ |
| &演算子 | 直感的、簡易 | 少数要素の一時的連結 |
| CONCATENATE | 旧式、互換目的 | 既存ブックの保守 |
SQLでの比較表
| 機能 | NULLの扱い | 主な用途 |
|---|---|---|
| CONCAT(MySQL) | NULL混在で結果NULL | 列の単純結合 |
| CONCAT(SQL Server) | NULLは空文字 | 安定した連結 |
| concat(PostgreSQL) | NULLは空文字 | 関数または||演算子で柔軟 |
| CONCAT(Oracle) | 引数2つのみ | 簡易な二項結合 |
| STRING_AGG | 集合の集約 | 複数行を区切りで結合 |
選定の指針
- 区切りが一定で要素数が多いならTEXTJOINやSTRING_AGG
- 要素数が可変で位置ごとに記号が違うならCONCAT
- SQLでNULL混在が予想されるならCONCAT_WSやCOALESCEの併用
- 将来の互換性を重視して旧式関数は新規採用しない
これらの原則をテンプレート化して設計標準に含めると、案件ごとの判断ブレを小さくできます。
よくあるエラーとトラブルシューティング
連結は簡単に見えて、文字コード、型、NULLなどの罠が潜みます。
再発防止の観点でチェックリスト化しておきましょう。
文字コードと文字化け
SQLで異なるエンコーディングが混在すると文字化けが起こります。
接続の文字コードと列の照合順序を統一し、連結前にCASTで整えます。
ExcelからCSV出力する場合は区切りと改行コードも合わせます。
タブ区切りやCHAR(10)の扱いは先方の取り込み仕様に合わせることが重要です。
数値と文字の型変換
ExcelではTEXTにより数値を文字列化し、桁や小数点を固定します。
意図せず地区設定に依存した表記にならないよう、明示的にフォーマット指定します。
SQLでは暗黙の型変換が行われますが、性能や可搬性のために明示的なCASTを推奨します。
小数や日付は特に誤差や文化差に注意します。
空白や空文字の扱い
見た目が同じでも、空白、空文字、NULLは意味が異なります。
ExcelではTRIMやCLEANで前処理し、SQLではCOALESCEで標準化してから連結します。
MySQLのNULL伝播、Oracleの二項制限など、製品固有の仕様は早めに共通関数で吸収しておくと保守性が上がります。
計算量が増えたときの対処
大量の連結は計算負荷が増します。
Excelでは揮発性関数を避け、参照範囲を必要最小限に限定します。
SQLでは集合演算でまとめ、行ごとの反復処理を減らします。
ログや一時連結の列は生成列として保持する選択肢もあります。
更新頻度と参照頻度のバランスを見て、事前計算か都度計算かを決めましょう。
現場でのコミュニケーションのコツ: 読み方の統一とドキュメント表記
用語の読み方が揺れると認識齟齬やレビュー漏れが発生します。
チームでの表記ルールを決め、テンプレートに組み込みましょう。
読み方の推奨スタイルガイド
読みはコンキャット、記述はCONCATの英字表記を基本とします。
初回出現時に括弧で読みを補足すると親切です。
関数名は英字、読みは最初だけ補足、以降は英字のみで統一。
資料横断での検索性が上がります。
略称とコメントの書き方
略称は混乱のもとになるため避けます。
式やクエリの近くに役割コメントを添え、連結意図や区切りの仕様を明示します。
特にNULLや空白の扱いは明文化が必須です。
例として仕様書に空白は半角、NULLは空文字に正規化などのルールを書きます。
チームでの共通ルール策定例
- 関数名は英字表記で統一
- ExcelはCONCATかTEXTJOINを原則採用し、旧関数は保守のみ
- MySQLはCONCAT_WSを優先、NULL許容列はCOALESCEを義務化
- 表示用連結はSELECT句のみ、検索条件では列そのままを使用
上記をチェックリスト化し、レビュー時に形骸化しないよう運用に落とし込むことが成功の鍵です。
まとめ
CONCAT関数の読み方はコンキャットが無難で、文書では英字表記CONCATを基本にすれば揺らぎを抑えられます。
ExcelではCONCATとTEXTJOINを使い分け、二重引用符を避けたい共有環境ではCHARによる区切り指定が有効です。
SQLは製品ごとのNULL挙動が最大の落とし穴です。
MySQLはCONCAT_WSやCOALESCEで対策し、SQL ServerやPostgreSQLでは素直にCONCATを用いつつ、Oracleは||演算子も併用します。
設計段階で選定指針と命名ルールを定め、レビューで担保することで、実務のトラブルは大幅に減らせます。
コメント