スプレッドシートで複数のセルの文字列をひとつにつなげたいときに使う、CONCATENATE関数と&演算子について、使い方と内部のしくみを解説します。草野球の成績管理表で「試合日+対戦相手」の試合ラベルを自動生成する場面を例に、初心者向けに丁寧に説明します。
CONCATENATE関数(&)とは
複数のセルの値を、指定した順番でひとつの文字列につなげる関数です。成績管理表では「日付」と「対戦相手」を組み合わせて試合ラベルを作ったり、「選手名」と「守備位置」をまとめて表示したりする場面で登場します。
基本の書式はこの2通りです。どちらも結果は同じになります。
=CONCATENATE(セル1, "区切り文字", セル2) =セル1&"区切り文字"&セル2
CONCATENATE関数はカンマ区切りで値を並べる書き方、&演算子は式の途中に&を挟んでいく書き方です。動作はまったく同じなので、どちらを使うかは好みで構いません(この記事では&を中心に説明します)。
成績管理表での実例:試合ラベルを自動生成する
大阪グーニーズの個人成績シートに、各試合の「試合日」(A列)と「対戦相手」(B列)が入力されているとします。
| 試合日 | 対戦相手 |
|---|---|
| 4/6 | ○○ファイターズ |
| 4/13 | △△ベアーズ |
| 4/20 | □□イーグルス |
| … | … |
このA列とB列を組み合わせて「4/6 vs ○○ファイターズ」のような試合ラベルをC列に自動生成したいとき、式はこうなります。
=A2&" vs "&B2
これで「A2セルの値」+「 vs という文字列」+「B2セルの値」の順につながり、試合ラベルが1つの文字列として作られます。区切り文字の部分(” vs “)は自由に変えられるので、「4/6対○○ファイターズ」のような形にしたい場合は” vs “の部分を”対”に差し替えるだけです。
試合ラベルを表示したいセル(例:C2)をクリックして選択します。
「=」に続けてA2セルをクリックすると、式に「=A2」が入力されます。
続けて&” vs “&と入力してからB2セルをクリックすると、式は「=A2&” vs “&B2」になります。
式を確定すると、その行の試合ラベルがすぐに表示されます。下の行にコピーすれば、参照セルがずれて他の試合のラベルも自動生成されます。
しくみを理解する:&は何をしているのか
&やCONCATENATE関数は、渡された値をすべて「文字列」として扱い、順番に並べてひとつにつなげているだけです。ここでのポイントは、値が数値であっても、いったん文字列に変換してからつなげているという点です。
- 文字列同士なら、そのまま順番に並べるだけ
- 数値が混ざっていても自動的に文字列に変換されてつながる(例:3&”本” → “3本”)
- ただし「見た目上の表示形式」は数値の実体(内部の値)には含まれないため、日付や小数点以下の桁数などは、セルの表示形式どおりにはつながらないことがある
よくあるミス:結合結果が思った表示にならない原因
日付が入ったセルは、画面上は「4/6」と表示されていても、内部的には「45392」のような通し番号(シリアル値)として保存されています。この日付セルをそのまま&でつなげると、「4/6 vs ○○ファイターズ」ではなく「45392 vs ○○ファイターズ」のように、内部の数値がそのまま出力されてしまうことがあります。この対策は、次回解説するTEXT関数で日付を先に文字列化しておくことです。
“&B2″のように区切り文字(” vs “など)を挟まずに直接つなげると、「4/6○○ファイターズ」のように文字同士がくっついて読みにくくなります。区切りたい箇所には必ず”(半角スペース含む文字列)”を挟むようにしましょう。
- &(CONCATENATE関数)は「複数のセルの値を文字列としてひとつにつなげる」しくみ
- 数値は自動的に文字列へ変換されてつながるが、日付はシリアル値のままつながってしまう点に注意
- 読みやすいラベルにするには、区切り文字(” vs “など)を式の中に忘れず挟む
次回予告
次回のテーマは「TEXT関数」です。今回の記事で触れた「日付を結合すると数値になってしまう」問題を解決する関数として、打率を「.320」のような表記に変換する例とあわせて解説していきます。
▶︎ 次回:TEXT関数の使い方としくみ



コメント