Excel で重複データを処理できる「UNIQUE関数」


Excel で選択したデータの中に複数の同じ値があればひとつだけにして、違う値だけで一覧表示できますか?

「UNIQUE関数」を使うとシンプルにできるわ。


さらに一覧から元がひとつだけの値を抽出することはできますか?

それも引数を使えば「UNIQUE関数」で大丈夫よ。

そんな便利な関数があるなんて、いままで知りませんでした。

Excel 2021 から追加された新関数だから、これから使えばいいのよ。
説明
Excel の「UNIQUE関数」とは『一覧または範囲内の「一意の値」の一覧を返す関数』という定義になっています。
「一意」というのは「ひとつの意味で確定している」ことで、「一意の値」というのは『同じ値がいくつあっても、それを「ひとつの値」とみなすことができる』といった意味になります。
つまり「(ほかにない) ひとつの値」は「ユニークな値」ということができ、「一意の値」を一覧にできるのが「UNIQUE (ユニーク) 関数」なのです。

例えば「A1」から「A8」に
30、10、80、10、50、30、40、10
と値が並んでいる場合、「C1」に「UNIQUE関数」を使って
=UNIQUE(A1:A8)
と入力するとします。

これで確定すると、「C1」から「C5」に
30、10、80、50、40
と表示されます。

これが複数の同じ値がある場合、最初のひとつだけ残して、「一意の値」だけを並べて一覧表示した状態です。
「UNIQUE関数」の構文は以下のようになります。
=UNIQUE(array,[by_col],[exactly_once])
引数の役割は
- array は「一意の行」または「列」を返す「範囲」または「配列」
- [by_col] で相互に比較するのが「行 (FALSE) 」か「列 (TRUE) 」か指定
- [exactly_once] を「TRUE」とすると、複数の同じ値がある値は除外して、ひとつだけ存在する「一意の値」だけを並べて一覧表示
となります。
[ ] で囲まれた引数は省略可能です。
そこで先ほどの一覧で、ひとつだけ存在する値だけの一覧にするには、引数の [exactly_once] を「TRUE」にして
=UNIQUE(A1:A8,,TRUE)
と「C1」に入力すると「C1」から「C3」に
80、50、40
と表示されます。
つまり複数あった値の 30 と 10 は除外されています。

具体的に、どんな場面で使えるかというと、例えば会員向け通販サイトで、時間順で商品の「購入リスト」があり、購入した会員は「会員番号」から分かるとしましょう。
すると「会員番号」を「UNIQUE関数」で抽出すれば、1回でも購入した会員を一覧表示することができ、さらに [exactly_once] を「TRUE」にすれば「1回だけ購入した会員」を絞り込むこともできるわけです。
「UNIQUE関数」で一覧表示にした一意の値を「昇順」で並べ替えるなら「SORT関数」と組み合わせます。
例えば最初の例の
=UNIQUE(A1:A8)
の結果を「昇順」で並べるなら
=SORT(UNIQUE(A1:A8))
と入力することで
10、30、40、50、80
と一発でユニーク (一意) な値をソート (並べ替え) できます。

「UNIQUE」も「SORT」も配列表記による「スピル機能」に対応しています。
そのため関数を組み合わせても「A1:A8」という配列表記を使うことができます。
執筆者: 林 俊二