複数列を結合して重複を削除する方法|UNIQUE関数とTOCOL関数の組み合わせ

複数の列に散らばったデータをまとめて、重複のない一覧を作りたいことってありますよね。
例えば、顧客リストや商品リストなど、部署ごとに管理された列データを1つにまとめたいとき。
手作業でコピーして、重複を探して…なんてしていると時間がかかってしまいます。

そんなときに便利なのが、UNIQUE関数TOCOL関数の組み合わせ。
Googleスプレッドシートと一部の新しいExcel(Microsoft 365、Excel 2024以降)でも利用可能です。

この記事では、複数列を縦に結合し、重複を取り除いたリストを簡単に作る方法を、実務で使える例とともにわかりやすく解説します。

目次

使う関数はこの2つだけ

TOCOL関数

複数列のデータを1列に変換する関数です。

=TOCOL(範囲)

※第2引数をTRUEにすると空白セルを無視できます(省略可)。

UNIQUE関数

重複のない値だけを取り出す関数です。

=UNIQUE(範囲)

実務例:3列のデータを1列にまとめて重複削除

元データ(A列~C列)

A列B列C列
りんごバナナみかん
ぶどうりんごキウイ
キウイメロンバナナ

上のように、商品名が複数列にわたって入力されているデータがあったとします。

作成したい結果(重複を除いた1列のリスト)

結果
りんご
ぶどう
キウイ
バナナ
みかん
メロン

関数の組み合わせ方

このように入力します。

=UNIQUE(TOCOL(A1:C3, TRUE))

ポイント

  • A1:C3 は結合したい元の範囲。
  • TOCOL(…, TRUE) で空白セルを無視して縦に結合。
  • UNIQUE() で重複を自動的に除去。

これだけで、複数列に散らばったデータが1列にまとまり、重複も削除されます。

応用:行数や列数が増えても対応できるようにする

範囲が固定されていると、新しいデータが追加されたときに対応できません。
例えば、以下のようにすると、行の追加にも自動対応できます。

=UNIQUE(TOCOL(A:C, TRUE))

列ごと追加される場合にも備えるなら、A1:Z1000のような広めの範囲を指定する手もありますが、データ量が増えると処理が重くなることもあるので注意しましょう。

よくある注意点

  • 空白セルを含めたくない場合TOCOL(..., TRUE) の「TRUE」が重要です。
  • 重複の判定は文字列単位です。たとえば「バナナ 」のようにスペースが入っていると別物とみなされます。TRIMCLEAN関数との併用も検討しましょう。
  • Excelでも使えますが、Excel 365 または Excel 2024 以降が必要です。古いバージョンではエラーになります。

まとめ

複数の列に分かれたデータを1列にまとめて重複を削除するには

=UNIQUE(TOCOL(対象範囲, TRUE))

このシンプルな式で、データ整形の手間が一気に減らせます。
特に商品管理や顧客リストなど、実務の中でよく使われる処理です。

「コピー&ペーストで手作業」から卒業して、効率的なスプレッドシート活用を目指しましょう!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

1994年生まれ。福岡出身、福岡育ち、福岡在住。
エンジニアを数年経験し、現在は事業会社でデータ分析業務に従事しています。
好きな物:猫、ラーメン
取得資格:基本情報技術者、G検定、統計検定2級

目次