複数の列に散らばったデータをまとめて、重複のない一覧を作りたいことってありますよね。
例えば、顧客リストや商品リストなど、部署ごとに管理された列データを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」が重要です。 - 重複の判定は文字列単位です。たとえば「バナナ 」のようにスペースが入っていると別物とみなされます。
TRIM
やCLEAN
関数との併用も検討しましょう。 - Excelでも使えますが、Excel 365 または Excel 2024 以降が必要です。古いバージョンではエラーになります。
まとめ
複数の列に分かれたデータを1列にまとめて重複を削除するには
=UNIQUE(TOCOL(対象範囲, TRUE))
このシンプルな式で、データ整形の手間が一気に減らせます。
特に商品管理や顧客リストなど、実務の中でよく使われる処理です。
「コピー&ペーストで手作業」から卒業して、効率的なスプレッドシート活用を目指しましょう!