🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

ExcelのUNIQUE関数 — 重複を除いた「生きた一覧」(重複の削除との違い)

|

ExcelのUNIQUE関数 — 重複を除いた「生きた一覧」(重複の削除との違い)

要点UNIQUE は範囲から重複を除いた値を返し、スピルして自動更新する 一覧にします。元データを変えれば一覧も再計算——これが「重複の削除」ボタンとの 決定的な違いです(あちらは1回きりで元データを書き換え、その後は更新しません)。 構文は =UNIQUE(配列, [列で比較], [1回だけ])。唯一の本当の罠は第3引数。これは 「重複削除」ではなく、TRUE にするとちょうど1回だけ現れた値を返し、一度でも 重複した値はすべて落とします。件数を数えるには包む:=COUNTA(UNIQUE(範囲))。 Excel 365 / 2021 以降。

=UNIQUE(Region)                      ' 各地域を1回ずつ、生きた一覧で
=COUNTA(UNIQUE(Region))              ' 異なる地域の数

列の重複除去は Excel で最も古い雑務の一つで、長年「データ > 重複の削除」しか道具が ありませんでした——一方通行で破壊的な編集です。UNIQUE はそれを、元を一切触らず 自動更新する数式に置き換えます。ただし引数の一つが、多くの人の予想外の動きをします。

この記事でわかること

  • UNIQUE は「鏡」、重複の削除は「手術」——その違い
  • exactly_once の罠——なぜ重複削除スイッチではないのか
  • 重複しない値の正しい数え方
  • 行の重複除去と単一列の重複除去
  • UNIQUE がほぼ常に SORT やドロップダウンの中で使われる理由

考え方の軸:「鏡」であって「手術」ではない

「重複の削除」は手術です。実データから行を切り取り、手作業で、新しいデータが 来た瞬間に古くなる——またやり直しです。UNIQUEです。自分のセルに居座り、 元の重複しない値を映します。元に地域を1つ足せば、次の再計算で鏡も更新されます。 重要なのは、元範囲を一切変更しないこと——生データは生のまま。これは追記し続ける テーブルが元のときに、まさに欲しい性質です。

' 元 A2:A100 に重複あり。これは A2:A100 を一切変えない:
=UNIQUE(A2:A100)        ' 重複しない値を新しい範囲にスピル

最悪のバグを防ぐルール:exactly_once は重複削除ではない

これは静かに誤答を生む罠です。UNIQUE の第3引数 1回だけ(exactly_once)。名前を 見て TRUE は「重複を除いた一覧をくれ」だと思い込みますが、違います。TRUE にすると Excel は元データにちょうど1回だけ現れた値だけを返し、一度でも重複した値は すべて落とします

' 元:West, West, East, North  (West は2回)
=UNIQUE(Region)             ' -> West, East, North     (重複しない一覧)
=UNIQUE(Region, , TRUE)     ' -> East, North           (West は脱落——重複したから)

地域のきれいな一覧が欲しいのにこの引数をオンにすると、West が消え、合計が合わなく なるまで気づきません。ルール:ふつうの重複除去では第3引数は空のまま。1回だけ を TRUE にするのは、問いが本当に「1回しか出ていない値はどれか」のとき——一度きりの 取引を探すとき——だけです。第2引数 列で比較 はほぼ無視してよく、データが下方向の 行ではなく横方向の列に並ぶときだけ関係します。

重複しない値を正しく数える

COUNTUNIQUE という関数は無く、これが最もきれいな代替です。UNIQUE が重複しない 一覧を作り、COUNTA がその件数を数えます。

=COUNTA(UNIQUE(Region))                     ' 異なる地域の数
=COUNTA(UNIQUE(FILTER(Region, Sales > 0)))  ' 売上があった地域のうち異なる数

掲示板のコピペでいまだに出回る SUMPRODUCT(1/COUNTIF(...)) の呪文より読みやすく、 しかも自動更新です。

単一列だけでなく「重複しない行」

UNIQUE に複数列を渡すと、重複しない組み合わせを返します——その列における 「行の重複削除」に相当します。

=UNIQUE(A2:B100)        ' 異なる (A列, B列) の組を1回ずつ

取引ログから、実在する「地域+担当者」のきれいな対応表をそのまま作れます。

判断:UNIQUE は単独では使わない

実務で使ってわかる正直な観察:裸の UNIQUE が最終形であることはほぼありません。 重複しない値は普通素材です。出口はほぼ2つ。第一に、読みやすいよう並べる—— =SORT(UNIQUE(Region))SORTガイド)。第二に、 入力規則のドロップダウンに渡し、選択肢をデータと共に増やす——空き列に =UNIQUE(Region) を置き、ドロップダウンの元の値を =$E$2# でスピルに向けます。 当てもなく UNIQUE 単独になっているなら、本当は動的ドロップダウンが欲しかった はずです。条件に合う重複しない値だけが欲しいなら、中に FILTER を入れます: =UNIQUE(FILTER(Customer, Region = "West"))

ExcelMaster の使いどころ

「重複しない○○がほしい」の多くは、実は「きれいで生きた参照一覧を作って」です—— 重複しない顧客、今月取引した地域の集合、ピボット用に重複を除いたカテゴリ列。 ExcelMaster は、SORT(UNIQUE(...))・件数用の COUNTA・スピル連動の ドロップダウンといった正しい組み合わせを日本語の指示から書き、指定した元に向けます。 本当に exactly_once が必要なときは、推測せず確認します。

よくある質問

UNIQUE と「重複の削除」の違いは?

UNIQUE は重複しない一覧を返す数式で、元データを変えずに自動更新します。「重複の 削除」は実セルに対する一度きりの破壊的な編集で、データが変わるたびに再実行が必要です。

Excel で重複しない値を数えるには?

UNIQUECOUNTA で包みます:=COUNTA(UNIQUE(範囲))。条件にも合う重複しない値を 数えるなら FILTER を入れ子に:=COUNTA(UNIQUE(FILTER(範囲, 条件)))

UNIQUE の第3引数は何をする?

exactly_once です。TRUE にすると、ちょうど1回だけ現れた値だけを返し、重複した値は 落とします——重複削除スイッチではありません。ふつうの重複しない一覧なら空のまま。

UNIQUE は Excel 2016 / 2019 で使える?

使えません。UNIQUE は Excel 365 / 2021 以降が必要です。旧版では「重複の削除」、 フィルターオプション、COUNTIF を使った数式を使います。

検証環境

検証環境: Excel 365(Windows 11)— 最終確認 2026-06-16。

関連ガイド: ExcelのFILTER関数 · ExcelのSORT関数 · ExcelのXLOOKUP