PR

Excelで複数行のデータを1セルにまとめる方法|改行・区切り文字も対応

Excel
記事内に広告が含まれています。

Excelでデータを管理していると、

  • 同じ商品の購入者を1セルにまとめたい
  • 条件一致したデータを一覧表示したい
  • 改行付きで見やすく表示したい

と思うことはありませんか?

通常はコピー&貼り付けで手作業になりがちですが、ExcelのTEXTJOIN関数を使えば、複数行のデータを自動で1セルにまとめることができます。

さらに、FILTER関数と組み合わせることで、

  • 条件一致したデータだけ抽出
  • 区切り文字
  • 改行表示
  • 重複除外

なども簡単に実現可能です。

本記事では、TEXTJOIN関数の基本から、実務で役立つ便利な使い方まで、図解付きでわかりやすく解説します。

Excelで複数行のデータを1セルにまとめる完成イメージ

まずは、複数行のデータをどのように1セルにまとめるかのイメージをまとめました。

TEXTJOIN関数単体や、他の関数と組み合わせることで、様々なパターンで1セルにまとめることができます。

区切り文字でまとめる例

セルに並んでいる名前の一覧を、区切り文字を使いまとめることができます。

改行付きでまとめる例

セルに並んでいる名前の一覧を、1セルに改行して表示することができます。

条件一致したデータだけまとめる例

FILTER関数と組み合わせることで、条件に合致したデータだけ1セルにまとめることもできます。

👉複数行のデータを1セルではなく横方向に並べたい場合は、こちらの記事が参考になります。

Excelで複数行を1セルにまとめるにはTEXTJOIN関数を使う

TEXTJOIN関数は、複数のセルや文字列を、指定した区切り文字付きで1つのセルにまとめられる関数です。

TEXTJOIN関数の構文

TEXTJOIN関数の構文は以下のとおりです。

=TEXTJOIN(区切り文字,空のセルは無視,テキスト1,...)

それぞれの引数の意味は以下のとおりです。

引数意味
区切り文字「、」や「/」など
空のセルは無視TRUE → 空白セルを無視
FALSE → 空白セルを含める
テキスト1結合したいセル範囲を指定
(最大252のテキスト引数を設定可)

主に3つの引数で複数セルをまとめることができます。

TEXTJOIN関数の特徴

TEXTJOIN関数には、次のような特徴があります。

  • 区切り文字を自動で入れられる
  • 空白セルを無視できる
  • 複数セルを一括結合できる
  • 改行区切りにも対応できる

特に「空白セルを無視できる」のが大きなメリットです。

「&」演算子やCONCATENATE/CONCAT関数との違い

Excelには文字列を結合する方法が複数あります。
しかし、複数行のデータをまとめる場合は、TEXTJOIN関数が最も便利です。

■「&」演算子との違い

「&」演算子を使うことで、以下のように簡単に文字列を結合することができます。

=A2&"、"&B2

しかし、

  • 区切り文字を毎回入力する必要がある
  • 範囲指定できない
  • セル数が増えると数式が長くなる
  • 空白セルがあると調整が大変

など、TEXTJOIN関数と比較するとデメリットが多い方法となります。

■CONCATENATE/CONCAT関数との違い

CONCATENATE/CONCAT関数は、いずれも文字列を結合する関数です。
主な違いは、CONCAT関数が範囲指定の一括結合ができる点です。

CONCATENATE関数は、「,」で区切ることで複数のセルを指定できます。

=CONCATENATE(A2,B2,C2)
=CONCAT(A2:A10)

しかし、こちらも

  • 範囲指定できない(CONCATENATE関数)
  • 区切り文字を自動で入れられない

など、TEXTJOIN関数と比べるとデメリットが多い方法となります。

複数行をまとめるならTEXTJOINが最も便利

今まで紹介した方法を、今回比較表にしてみました。

方法範囲指定区切り文字空白無視向いている場面
&×手入力×少ないセル数を個別につなげる
CONCATENATE×手入力×古いExcelで単純結合
CONCAT手入力×範囲をそのまま結合
TEXTJOIN一覧を見やすくまとめる

TEXTJOIN関数なら、

  • 区切り文字
  • 改行表示
  • 空白無視
  • 条件一致抽出

まで一括で対応できます。

複数行を1セルにまとめたい場合は、まずTEXTJOIN関数を使うのがおすすめです。

複数行のデータを区切り文字で1セルにまとめる方法

では実際に、TEXTJOIN関数の使い方を紹介していきます。
まずは区切り文字で1セルにまとめる方法です。

使用する数式と意味

区切り文字でまとめる場合は、第1引数に「、」を指定します。

=TEXTJOIN("、",TRUE,A2:A10)

数式で指定している引数の意味は以下のとおりです。

部分意味
“、”区切り文字
TRUE空白セルを無視
A2:A10まとめる範囲

空白セルがあっても自動で無視される

例えば途中に空白セルがあっても、

田中、佐藤、山田

のように、余計な区切り文字が入らず綺麗に表示されます。

これはTEXTJOIN関数の大きなメリットです。

👉空白セルや空白行をより細かく除外したい場合は、FILTER関数を使った方法もあります。

複数行のデータを改行付きでまとめる方法

複数行のデータを、改行付きで一つのセルにまとめることもできます。

使用する数式と意味

改行を表示する場合、第一引数(区切り文字)にCHAR(10)を設定すればOKです。

=TEXTJOIN(CHAR(10),TRUE,A2:A10)

CHAR(10)とは?

CHAR(10) は、Excelで「改行」を表します。

そのため、区切り文字にCHAR(10)を指定すると、セル内改行で一覧表示できます。

改行が表示されない場合の対処法

改行が表示されない場合は、セルの折り返して全体を表示するをONにしてください。
以下の手順で、改行を表示することができます。

・対象のセルを選択して、「ホーム」タブから「折り返して全体を表示する」を選択する

条件に一致したデータだけを1セルにまとめる方法【FILTER関数連携】

TEXTJOIN関数は、他の関数と組み合わせることでさらに便利に活用することができます。

FILTER関数と組み合わせることで、条件一致したデータだけを一覧表示できます。

例えば、以下の表より商品Aの購入者のみ抽出→1セルにまとめてみたいと思います。

商品購入者
A田中
A佐藤
B鈴木

使用する数式と意味

FILTER関数は、条件に一致したデータだけを抽出できる関数です。
そのため、FILTER関数で商品Aを購入した人のみを抽出することで、購入者のみ1セルにまとめることができます。

=TEXTJOIN("、",TRUE,FILTER(B2:B100,A2:A100="A"))

この方法が便利な実務ケース

例えば次のような場面で役立ちます。

  • 商品ごとの購入者一覧
  • 案件ごとの担当者一覧
  • エラー内容一覧
  • 社員ごとの資格一覧
  • アンケート回答一覧

「複数行に散らばった情報」を、人が読みやすい形にまとめられるのが大きなメリットです。

「VLOOKUPでは1件しか取得できない…」
という場面でも、TEXTJOIN関数とFILTER関数を組み合わせることで、複数結果をまとめて表示できます。

👉FILTER関数の基本的な使い方や複数条件での抽出方法を詳しく知りたい場合は、こちらの記事で解説しています。

👉1件だけ取得したい場合はXLOOKUP、複数件をまとめて表示したい場合はFILTER+TEXTJOIN、と使い分けると便利です。

重複を除外して1セルにまとめる方法【UNIQUE関数連携】

重複データを除外したい場合は、UNIQUE関数を組み合わせます。

例えば、以下の表より重複した名前を除外→1セルにまとめることも可能です。

名前
田中
田中
佐藤

使用する数式と意味

UNIQUE関数は重複を除外する関数です。
そのため、UNIQUE関数を使うことで、重複のないリストを作成できます。

=TEXTJOIN("、",TRUE,UNIQUE(A2:A100))

👉重複を除外するUNIQUE関数の基本や応用例は、こちらの記事でも詳しく解説しています。

TEXTJOIN関数が使えない場合の対処法

TEXTJOIN関数はExcel 2019 / Microsoft 365以降で利用可能です。
(TEXTJOIN関数は使えても、FILTER関数やUNIQUE関数は使えないバージョンがあります。)

古いExcelでは使用できない場合があります。
(特にExcel 2016以前では未対応のケースがあります)

古いExcelでは、次の方法が代替手段になります。

  • CONCAT関数
  • Power Query
  • VBA

ただし、操作性や柔軟性を考えると、TEXTJOIN関数が最も簡単です。

TEXTJOIN関数を使う際の注意点

■文字数が多すぎるとセル上限に達してしまう

Excelのセルには文字数上限があります。

最大文字数は32,767文字とのことで、そこまでは使わないと思いますが、
大量データをまとめる場合は注意してください。

■FILTER関数が使えないExcelではエラーになる

TEXTJOIN関数自体ではありませんが、便利な組み合わせができるFILTER関数は、Microsoft 365やExcel 2021以降で利用できます。

古いExcelでは使用できませんので注意してください。

👉FILTER関数やUNIQUE関数を使うと、結果が複数セルに広がる「スピル」が関係することがあります。#SPILL!エラーで困った場合はこちらも参考にしてください。

■改行表示にはセル設定が必要

CHAR(10)を使っても、「折り返して全体を表示する」がOFFだと改行されません。

改行できていない場合は、セルの書式設定を見直してみてください。

TEXTJOIN関数でよくある質問

TEXTJOIN関数で改行されないのはなぜ?

セルの「折り返して全体を表示する」がOFFになっている可能性があります。

TEXTJOIN関数が使えないのはなぜ?

Excelのバージョンが古い可能性があります。
Excel 2019 / Microsoft 365以降で利用可能です。

空白セルを無視したくない場合は?

第2引数をFALSEにします。

=TEXTJOIN("、",FALSE,A2:A10)

区切り文字を改行と記号両方にできますか?

可能です。
例えば次のようにすると、箇条書き風に表示できます。

="・"&TEXTJOIN(CHAR(10)&"・",TRUE,A2:A10)

条件一致が0件だとエラーになるのはなぜ?

FILTER関数で該当データがない場合、エラーになります。
その場合は、第3引数に「該当なし」を設定します。

=TEXTJOIN("、",TRUE,FILTER(B2:B100,A2:A100="A","該当なし"))

TEXTJOIN関数で重複を除外できますか?

UNIQUE関数を組み合わせることで可能です。

=TEXTJOIN("、",TRUE,UNIQUE(A2:A100))

👉逆に、1つのセルに入った文字列を複数のセルに分けたい場合は、TEXTSPLIT関数が便利です。

【まとめ】Excelで複数行のデータを1セルにまとめるならTEXTJOIN関数が便利

TEXTJOIN関数を使うことで、

  • 複数行データの一覧化
  • 区切り文字
  • 改行表示
  • 条件一致データ抽出
  • 重複除外

などを簡単に実現できます。

特にFILTER関数やUNIQUE関数と組み合わせることで、実務レベルのデータ整理がかなり効率化できます。

これまで手作業でコピー&貼り付けしていた一覧整理も、自動化できるようになります。

複数行のデータを1セルにまとめたい場合は、ぜひTEXTJOIN関数を活用してみてください。

ろじゃー

仕事・子育てに奮闘中の社会人です。
仕事でも日常生活でも、ちょっとでも便利になることが紹介できるブログを書いています!
 
仕事柄、PC操作やエクセル、VBAなどは得意です!
Excel歴は10年以上の事務職。
関数やVBAを活用して、資料作成やデータ分析をはじめとした様々な業務の効率化・自動化に取り組んできました。
 
このブログでは、実際の業務で使える効率化テクニックを発信しています。
「わからない」や「困った」など問題を抱える方や、もっと効率化したいと思っている方に、少しでも役立てれば幸いです!

ご質問・ご相談など、お気軽にご連絡ください。

ろじゃーをフォローする
ご質問・ご相談はこちらへ!
 ろじゃー|日々、ちょっとずつ良くなることを目指すブロガー
Excel歴10年以上。VBAや関数、業務効率化などを発信中。
📩 お問い合わせはこちら
Excel
シェアする
ろじゃーをフォローする

コメント

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