Excelで重複を削除するのに、マウスでカチカチしていませんか?
またはCOUNTIFで重複があるかを確認して、あったら手動で削除したり、、、
大量のデータを扱っていると、重複を除外する作業が発生することが多いと思います。
でも、重複を探して削除するって、意外と手間ですよね。。

もっとラクできないか。。。
そんなご要望に応える、素晴らしい関数がExcelには存在します。
それが、「UNIQUE」関数です。
手間がかかる重複削除も、UNIQUE関数を使えば一瞬で解決!
この記事では、UNIQUE関数の基本的な使い方から、もっと便利に使いこなす他関数との組み合わせについても紹介します。
この記事を読めば、あなたの作業効率もさらにアップ!
ぜひチェックしていってください。
UNIQUE関数って何?
UNIQUE関数は、特定の範囲から重複を除き、一意のデータだけを抽出する関数です。
=UNIQUE(array,[by_col],[exactly_once])
基本的には、「array」(範囲)を指定すればOKです。
範囲を指定してあげるだけで重複を除外してくれるので、とても使い勝手のよい関数となります。
引数 | 説明 |
---|---|
array | 一意のデータを抽出したいセル範囲を指定(A2:A10など、範囲を指定) |
by_col | 比較方法を示す論理値(列で比較するか、行で比較するか) ・TRUE→列が相互に比較され、一意の列が返される ・FALSE→行が相互に比較され、一意の行が返される ※省略可能(既定値はFALSE) |
exactly_once | 指定した範囲や配列で、1回だけ発生する行や列を返す ・TRUE→1回だけ発生する全ての個別行・列を返す ・FALSE→全ての個別行・列を返す ※省略可能(既定値はFALSE) |
そこまで使用するケースも多くないと思いますが、「by_col」と「exactly_once」を使用したケースや活用例も後述しています。
興味のある方はぜひ参照されてください。
UNIQUE関数の基本的な使い方
ここでは、UNIQUE関数の基本的な使い方を紹介します。
・一つの列から重複を除いたデータを抽出する場合
・複数列から重複を除いたデータを抽出する場合
・引数「by_col」を使用するケース
一つの列から重複を除いたデータを抽出する場合
対象の列を指定してあげると、その範囲にある重複したリストを除外して表示することが可能です。
以下のセルE1~E10には「リンゴ」と「モモ」が重複していますが、UNIQUE関数を使うことで重複が除外できていることが確認できます。
=UNIQUE(E1:E10)

複数列から重複を除いたデータを抽出する場合
複数の列を指定する場合も、一つの列同様範囲を指定すればOKです。
以下のセルE1~F10には「モモ、20」が重複していますが、UNIQUE関数を使うことで重複が除外できていることが確認できます。
=UNIQUE(E1:F10)

複数列を指定する場合は、全項目が一致している重複データを除外するため、名前は重複しているけど個数が違う「リンゴ」は重複データと認識されないため、今回は除外されていません。
引数「by_col」を使用するケース
引数「by_col」ですが、基本的には「列が重複している場合、重複を除外する」というケースで活用することがほとんどかと考えます。
どういうことかというと、UNIQUE関数は「by_col」で指定がない場合、行単位で重複がないかを確認して除外します。
例えば、以下のケースで確認してみます。
この場合、セルE1~H10を範囲としていますが、行単位で重複している「モモ-20-350-モモ」を除外していることが確認できます。

では、こちらの数式に「TRUE」(=列を比較)を入力してみます。
すると、先ほど行単位で重複していたデータはそのままに、列単位で重複している「果物リスト」が除外されていることが確認できます。
=UNIQUE(E1:H10,TRUE)

CSV取り込みやクロス集計、アンケートや横持ちデータなど、列方向にレベルが重複しやすいケースなどに有効で、横長のデータ整理には便利な引数となります。
行単位より活用するケースは少ないと思いますが、知っておいて損はないテクニックですね。
- 「by_col」引数は、指定がなければFALSE(=行を比較)が規定値になっています。そのため、行単位で比較する場合にわざわざ「FALSE」を入力しなくても、重複を除外してくれます。
UNIQUE関数の応用技
以上、UNIQUE関数の基本的な使い方を紹介してきました。
ここからはUNIQUE関数の応用的な使い方、他の関数との組み合わせなどを紹介していきます。
・SORT関数との組み合わせ(並び替えをしたいケース)
・FILTER関数との組み合わせ(条件をつけたいケース)
・出現回数が1回のみの値を抽出
SORT関数との組み合わせ(並び替えをしたいケース)
SORT関数は、指定した範囲や配列を並び替えることができる関数です。
=SORT(array,[sort_index],[sort_order],[by_col])
基本的には、UNIQUE関数同様「array」(範囲)を指定すればOKです。
既定値では「昇順」で並び替えが行われます。状況によっては「降順」で並び替えをしたいケースもあると思いますので、その場合は「sort_order」で指定してあげる必要があります。
引数 | 説明 |
---|---|
array | 並び替える範囲または配列 |
sort_index | 並び替えの基準となる行、または列を示す数値 ※省略可能 |
sort_order | 並び替えの順序を数値で指定 ・昇順 → 1 ・降順 → -1 ※省略可能(既定値は昇順の1) |
by_col | 目的の並び替え方向を示す論理値(行で並び替えか、列で並び替えか) ・TRUE→ 列で並び替え ・FALSE→ 行で並び替え ※省略可能(既定値はFALSE) |
では実際に使ってみましょう。
1行目も範囲に選択していると、それも並び替えの対象となってしまいます。そのため、今回は2行目以降を範囲指定し、項目名が動かないようにします。
今回は、UNIQUE関数で重複を除いたうえで、「2列目の個数が多い順」に並び替えてみました。
下のように、SORT関数を使うことで、それを表現することができました。
=SORT(UNIQUE(E2:G10),2,-1)

UNIQUE関数だけでは参照範囲の順番に依存します。
元の表を編集することはできないけど、並び替えをしたい!という場合はぜひ活用してみてください。
FILTER関数との組み合わせ(条件をつけたいケース)
FILTER関数は、指定した範囲の中から特定の条件に一致するデータを抽出します。
FILTER関数については、こちらの記事で詳しく解説しています。
よかったらこちらの記事もチェックしてみてください!
FILTER関数と組み合わせることで、条件付きで重複を除外することができます。
以下のケースで見ていきましょう。
果物の個数に「20個以上」と条件とつけてみる場合、対象となるのはオレンジ枠のデータになります。
FILTER関数と組み合わせることで、
・FILTER関数→個数が20個以上のものを抽出(リンゴは20個未満なので、FILTERにて除外)
・UNIQUE関数→果物リストが重複しているデータを除外(2行目のモモが除外される)
となり、最終的にはリンゴ以外の重複を除いたデータを抽出することができました。
=UNIQUE(FILTER(E1:E10,F1:F10>=20))

条件をつけて抽出したい!というケースは多いと思います。
そのようなときはFILTER関数との組み合わせが最強です。ぜひ活用してみてください。
出現回数が1回のみの値を抽出
引数「exactly_once」を「TRUE」(=1回だけ発生する行や列)にすることで、出現回数が1回のみの値を抽出することができます。
つまり、重複するデータは全て除外されるということですね。
こちらも実際に見ていきましょう。
セルE1~H10の範囲で、行単位で重複しているデータは「モモ-20-350-モモ」のみとなります。
引数を設定しない場合、該当データは1行分のみ表示されますが、この「exactly_once」引数を「TRUE」に設定することで、該当データ自体を除外することができます。
=UNIQUE(E1:H10,,TRUE)

1行データのみ表示する引数のため、入力ミス(手入力など)の確認や、アンケートの少数回答(1人のみ回答)など、異常値検索やレアケースなどの抽出に便利な機能です。
比較表にすると、以下のイメージになります。
引数「exactly_once」を「TRUE」とすることで、重複しているA、B、Dが表示されないことが確認できます。

まとめ:UNIQUE関数は重複を一瞬で取り除く強力なツール!活用して作業効率をアップしよう!
UNIQUE関数は重複を一瞬で取り除く強力なツールです。
こちらを活用することで、作業効率を格段にアップすることができますし、作業ミスをグッと減らすことも可能です。
また他の関数との相性も良く、組み合わせ次第で非常に応用の効く関数です。
顧客リストや売上データなど、大量のデータを扱う場面は多々あると思います。そのような様々な場面で活用できるので、ぜひ日々の業務や分析作業に取り入れてみてください!
この記事が役に立ったと思った場合、ブックマークやシェアしてもらえると嬉しいです。
また、質問やこんな方法を紹介してほしい!などありましたら、お気軽にコメントしてください。
最後まで読んでいただき、ありがとうございました!
コメント