売上データや会員リストから、重複を除いた「担当者一覧」や「商品一覧」だけを取り出したいとき、結論から言うとUNIQUE関数を使えば、元データはそのままに、重複のない一覧を数式1つで自動生成できます。この記事では基本の書き方、「重複の削除」機能との違い、1回しか登場しない値だけを抽出する応用まで解説します。
UNIQUEで重複を除いたリストを作る基本の書き方
基本の形は次の通りです。
=UNIQUE(範囲)
指定した範囲の中から重複を除いた値だけを、元データに登場した順番のまま書き出す関数です。1つのセルに数式を入れるだけで、結果が隣接する複数のセルに自動的に展開されます(スピル)。
なぜ「重複の削除」機能ではなくUNIQUE関数なのか
Excelには従来から「データ」タブの「重複の削除」機能がありますが、これは実行した時点のデータを直接書き換えてしまい、元データが後から増えても一覧が自動更新されることはありません。UNIQUE関数は数式なので、元データが増減・変更されるたびに一覧も自動的に再計算されます(Excel 2021・Microsoft 365以降で利用可能)。
具体例:担当者一覧を重複なしで抽出する
次のような注文データ(A1:C8)があるとします。A列が担当者、B列がカテゴリ、C列が金額です。
| A(担当者) | B(カテゴリ) | C(金額) | |
|---|---|---|---|
| 2 | 佐藤 | 文具 | 1200 |
| 3 | 鈴木 | 雑貨 | 800 |
| 4 | 佐藤 | 雑貨 | 500 |
| 5 | 田中 | 文具 | 1500 |
| 6 | 鈴木 | 文具 | 900 |
| 7 | 佐藤 | 文具 | 700 |
| 8 | 高橋 | 雑貨 | 300 |
A列(担当者)の重複を除いた一覧を作りたい場合、次のように書きます。
=UNIQUE(A2:A8)
A列(担当者)に登場する名前を、重複を除いて初出の順番のまま並べる、という意味の数式です。
結果は登場順に「佐藤・鈴木・田中・高橋」の4件になります(佐藤・鈴木は複数回登場していますが、一覧には1回だけ表示されます)。
1回しか登場しない値だけを取り出す
第3引数をTRUEにすると、重複を除くのではなく「元データの中でちょうど1回だけ登場する値」だけを抽出できます。
=UNIQUE(A2:A8,FALSE,TRUE)
A列(担当者)の中で、1回しか注文していない人だけを拾う、という意味の数式です。
佐藤(3回)・鈴木(2回)は対象外となり、1回だけ登場する「田中・高橋」だけが返されます。「一度きりの利用者を洗い出したい」といった場面で使える書き方です。
よくあるエラー・注意点
- スピル先に他のデータがあると#SPILL!エラーになる: UNIQUEの結果は複数セルに自動展開されるため、展開先のセルに何かデータが入っていると#SPILL!エラーになります。数式を入れる前に、下方向のセルを空けておきましょう。
- 古いExcelでは使えない: UNIQUEはExcel 2021・Microsoft 365以降で追加された関数です。それより古いバージョンで開くと#NAME?エラーになるため、共有先の相手の環境にも注意が必要です。
- 空白セルが1つの値として結果に含まれる: 範囲内に空白セルが含まれていると、結果の一覧にも空白(0や空文字)が1つの項目として表示されることがあります。
まとめ
UNIQUE関数は元データの重複を数式だけで取り除けるため、「重複の削除」のように操作をやり直す手間がなく、データの変更にも自動で追従します。重複を除いた一覧からさらに条件で絞り込みたい場合はFILTER関数で条件に合うデータだけを抽出する方法、種類ごとの件数を数えたいだけであればCOUNTIFSで複数条件を満たすセルの個数を数える方法もあわせてご覧ください。





