CONCATENATE 文字列結合

CONCATENATE 文字列結合 アイキャッチ画像 関数・数式

CONCATENATE 文字列結合で業務効率を上げる

請求書番号を自動生成したい。顧客リストから特定の条件に合致する顧客だけ抽出したい。Excelで文字列を結合する場面は意外と多いものです。CONCATENATE関数を使えば、これらの作業を効率化できます。この記事では、CONCATENATE関数と文字列結合の基本から応用まで、実務で役立つテクニックを解説します。

初級:まず基本を押さえる

CONCATENATE関数の基本構文

CONCATENATE関数は、複数の文字列を結合して一つの文字列にする関数です。基本的な構文は以下の通りです。

ポイント: Excel 2019以降またはMicrosoft 365では、CONCATENATE関数の代わりに、よりシンプルな「&」演算子を使うことが推奨されています。しかし、CONCATENATE関数も引き続き利用可能です。

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

例えば、セルA1に「山田」、セルB1に「太郎」と入力されている場合、C1セルに=CONCATENATE(A1,B1)と入力すると、「山田太郎」と表示されます。

CONCATENATE 文字列結合 - A1セルに「山田」、B1セルに「太郎」と入力し、C1セルにCONCATENATE関数を入力した結果
A1セルに「山田」、B1セルに「太郎」と入力し、C1セルにCONCATENATE関数を入力した結果

文字列を直接指定する

CONCATENATE関数では、セル参照だけでなく、文字列を直接指定することもできます。例えば、=CONCATENATE("売上",A1,"円")のように使用します。A1セルに「1000」と入力されている場合、この数式は「売上1000円」と表示されます。

スペースや記号を挿入する

文字列を結合する際に、スペースや記号を挿入したい場合もあるでしょう。その場合は、=CONCATENATE(A1," ",B1)のように、ダブルクォーテーションで囲んだスペースを挿入します。A1セルに「山田」、B1セルに「太郎」と入力されている場合、この数式は「山田 太郎」と表示されます。

中級:実務で使えるレベルに

請求書番号の自動生成

請求書番号を「日付+顧客ID+連番」のように自動生成したい場合、CONCATENATE関数が役立ちます。例えば、A1セルに日付(20240401)、B1セルに顧客ID(001)、C1セルに連番(01)が入力されている場合、D1セルに=CONCATENATE(A1,B1,C1)と入力すると、「2024040100101」という請求書番号が生成されます。

CONCATENATE 文字列結合 - 日付、顧客ID、連番が入力されたセルを参照し、CONCATENATE関数で請求書番号を生成する例
日付、顧客ID、連番が入力されたセルを参照し、CONCATENATE関数で請求書番号を生成する例

条件付きで文字列を結合する

IF関数と組み合わせることで、特定の条件を満たす場合にのみ文字列を結合することができます。例えば、A1セルに「東京都」、B1セルに「渋谷区」と入力されている場合、C1セルに=IF(A1="東京都",CONCATENATE(A1,B1),"")と入力すると、A1セルが「東京都」の場合のみ、「東京都渋谷区」と表示されます。

住所録の作成

顧客リストから住所録を作成する際にも、CONCATENATE関数が活用できます。例えば、A1セルに「山田」、B1セルに「太郎」、C1セルに「東京都」、D1セルに「渋谷区」、E1セルに「1-1-1」と入力されている場合、F1セルに=CONCATENATE(A1," ",B1,"様 ","〒",C1,D1,E1)と入力すると、「山田 太郎様 〒東京都渋谷区1-1-1」という住所録が作成されます。

上級:効率化テクニック

&演算子との組み合わせ

Excel 2019以降またはMicrosoft 365では、CONCATENATE関数の代わりに「&」演算子を使うことができます。「&」演算子は、CONCATENATE関数よりもシンプルに文字列を結合できるため、おすすめです。上記の住所録の例を「&」演算子で記述すると、=A1&" "&B1&"様 〒"&C1&D1&E1となります。筆者の経験では、&演算子の方が直感的で使いやすいと感じます。特に複雑な数式を組む場合に、その差は歴然です。

CONCATENATE 文字列結合 - CONCATENATE関数と&演算子で同じ結果を得る例
CONCATENATE関数と&演算子で同じ結果を得る例

TEXT関数との組み合わせ

日付や数値を特定の書式で文字列として結合したい場合は、TEXT関数と組み合わせます。例えば、A1セルに日付(2024/04/01)が入力されている場合、B1セルに=CONCATENATE("本日の日付は",TEXT(A1,"yyyy年mm月dd日"),"です")と入力すると、「本日の日付は2024年04月01日です」と表示されます。

Microsoft公式: TEXT関数

COLUMN関数とROW関数との組み合わせ

COLUMN関数やROW関数と組み合わせることで、セルの位置に応じて動的に文字列を生成することができます。例えば、A1セルに="セル"&COLUMN()&"行"&ROW()と入力し、このセルを右方向や下方向にコピーすると、セルの位置に応じて「セル1行1」「セル2行1」「セル1行2」のように表示されます。

現場で使える実例集

売上データの集計

複数のシートに分かれた売上データを、シート名と売上金額を組み合わせて集計する際にCONCATENATE関数が役立ちます。例えば、シート名が「4月売上」「5月売上」で、それぞれのA1セルに売上金額が入力されている場合、集計シートのB1セルに=CONCATENATE(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),":",SUM('4月売上:5月売上'!A1),"円")と入力すると、「4月売上:100000円」のように表示されます。この数式は、シート名と売上金額を結合して表示するものです。

CONCATENATE 文字列結合 - シート名と売上金額をCONCATENATE関数で結合して表示する例
シート名と売上金額をCONCATENATE関数で結合して表示する例

顧客リストの作成

顧客の姓と名、電話番号、メールアドレスなどを組み合わせて、顧客リストを作成する際にCONCATENATE関数が役立ちます。例えば、A1セルに「山田」、B1セルに「太郎」、C1セルに「090-1234-5678」、D1セルに「yamada.taro@example.com」と入力されている場合、E1セルに=CONCATENATE(A1," ",B1," (",C1,") ",D1)と入力すると、「山田 太郎 (090-1234-5678) yamada.taro@example.com」という顧客情報が作成されます。

勤怠管理

出勤時間と退勤時間を組み合わせて、勤務時間を表示する際にCONCATENATE関数とTEXT関数が役立ちます。例えば、A1セルに出勤時間(9:00)、B1セルに退勤時間(18:00)が入力されている場合、C1セルに=CONCATENATE(TEXT(A1,"hh:mm"),"~",TEXT(B1,"hh:mm"))と入力すると、「09:00~18:00」という勤務時間が表示されます。

プロのコツ

  • 書式設定のコピー: CONCATENATE関数で結合した文字列に書式設定を適用したい場合、書式設定のコピー機能を使うと便利です。結合したセルを選択し、「書式のコピー/貼り付け」ボタンをクリックして、書式をコピーしたいセルをクリックします。
  • 区切り文字の活用: 大量のデータを結合する場合、区切り文字をうまく活用することで、データの可読性を高めることができます。例えば、CSV形式でデータをエクスポートする場合、カンマを区切り文字として使用します。
  • エラー処理: 結合するセルにエラーが含まれている場合、CONCATENATE関数もエラーを表示します。IFERROR関数を使って、エラーを回避することができます。例えば、=IFERROR(CONCATENATE(A1,B1),"エラー")と入力すると、A1セルまたはB1セルにエラーが含まれている場合、「エラー」と表示されます。

注意点: 文字列結合で初心者がつまずきやすいのは、数値の扱いです。数値を文字列として結合したい場合、TEXT関数で明示的に書式を指定する必要があります。これを忘れると、意図しない表示になることがあります。研修で教えていると、この点を質問されることが多いです。

まとめ

CONCATENATE関数と文字列結合は、Excelでのデータ処理を効率化するための強力なツールです。基本的な使い方から応用テクニックまで、この記事で解説した内容を参考に、ぜひ実務で活用してみてください。CONCATENATE関数だけでなく「&」演算子も使いこなせるようになると、さらに効率的なデータ処理が可能になります。

  • CONCATENATE関数は複数の文字列を結合する
  • &演算子を使うとさらに簡単に文字列結合できる
  • TEXT関数で日付や数値を書式指定できる

まずは、請求書番号の自動生成から試してみてはどうでしょうか。

コメント

タイトルとURLをコピーしました