「エクセルのデータで重複データを簡単に取り除きたい!」
そのように悩んだことはありませんか?

・データの重複を簡単に取り除きたい
・重複を削除した後に並び替えや加工もしたい
・VBAでも簡単に重複を取り除けないの?



その場合は、ワークシート関数の「UNIQUE関数」を
使用すると解決します!
このようなお悩みを解決するのが、エクセルの「 UNIQUE関数」 です。
この記事では、UNIQUE関数を使ったデータ整理の基本から、重複削除後にデータを並び替える方法、さらにはVBAでUNIQUE関数を活用するコツまでを解説します。
初心者でもスグに試せる内容なので、エクセル作業がもっとラクになりますよ!
この記事を読めば、エクセルでの重複処理が劇的にスピードアップし、作業効率を大幅に向上できます!
【 この記事の概要 】
よく使う度 | |
難しさ | |
覚えておくと安心度 |
エクセルの関数を使いこなせると、作業スピードが上がり、ミスも減って仕事がぐっと楽になります。
でも、「関数ってなんだか難しそう…」と感じている方も多いのではないでしょうか?
実は、コツさえつかめば誰でも簡単に使えるようになります。
さらに、関数をもっと効率よく学びたいなら、わかりやすい本を活用するのもおすすめです。
実際に手を動かしながら学べるので、理解が深まり、仕事にもすぐに活かせます。
エクセルの関数をしっかり身につけたい方のために、実践的でわかりやすい本を紹介しているので、興味があればチェックしてみてください。




この記事を見て「できるようになる」こと
この記事を読めば、以下のことができるようになります。
- エクセルのUNIQUE関数でできることを知る
- UNIQUE関数の構成をする。
- UNIQUE関数の使用例を確認する。
- UNIQUE関数を使用する際の注意ポイントを確認する。
- UNIQUE関数はVBAでも使用できることを確認する。
UNIQUE関数があれば何ができる? これから始める人のための活用アイデア
UNIQUE関数は、エクセル作業の効率を飛躍的に向上させる強力な機能です。
「データの重複を取り除く」だけではありません。次のような場面でも活躍します。
- 重複を瞬時に削除!整理されたリストを作成
- 例: 顧客リストや商品リストの作成がカンタンに!
- 重複削除+並び替えも一瞬で完了
- SORT関数と組み合わせて、スッキリしたデータを整列!
- アンケートや集計データを効率化
- 回答データを整理して、スムーズに分析準備ができます。
- ピボットテーブルやグラフ作成の下準備もおまかせ
- 必要なデータだけ抽出して、見やすいレポートが作れる!
- 重複チェックでミスを未然に防ぐ
- データ品質管理が手軽に行えるようになります。
UNIQUE関数でできることはまだまだあります!
これからの章では、UNIQUE関数の基本的な使い方から具体的な使用例までを詳しく解説します。
初心者でもすぐに使いこなせるよう、ステップバイステップで説明します。
データ整理が苦手な方も、この関数を使えば一気に効率化できますよ!
エクセルの「UNIQUE関数」とは?基本の使い方を解説
UNIQUE関数は、リストやデータの範囲から 「一意の値」 を抽出するための関数です。
エクセル上で手軽に重複を削除し、データを整えることができます。
UNIQUE関数の構文


引数 | 説明 |
---|---|
array (必須) | 一意の値を抽出したい範囲を指定します。 |
by_col (任意) | データを列ごとに処理する場合は「TRUE」、 行ごとに処理する場合は「FALSE」(省略可、デフォルトはFALSE)。 |
exactly_once (任意) | 「TRUE」の場合、重複しているデータはすべて除外し、 1回だけ出現する値のみを抽出します(省略可)。 |
より詳しい情報は、Microsoft公式 – UNIQUE 関数を参照してみてください。
処理結果は「スピル」表示されます。
UNIQUE関数の結果は、複数の値が「スピル」として隣接するセルに自動的に展開されます。
たとえば、1つのセルに関数を入力するだけで、以下のように複数のセルに結果が自動表示されます。


スピルとは、計算結果が複数セルに自動的に広がる仕組みのことです。
空きセルがないとエラーが表示されるため、データの配置に注意しましょう!
エクセルの「UNIQUE関数」の使用例! 使い方を徹底解説


使用方法1 : 行方向の一意のデータを取得する (基本的な使用方法)
次のような行方向のデータがセルに入力されているとします。


このデータから一意の値を抽出するには、セルに次の数式を入力します。
=UNIQUE($A$1:$A$5)


- array (必須) ⇒ $A$1:$A$5
- 一意の値を抽出したい範囲を「$A$1:$A$5」と指定しています。
- by_col (任意) ⇒ 指定なし
- exactly_once (任意) ⇒ 指定なし
処理結果


この数式で使用している「$」マークは、絶対参照を表しており、セル範囲が固定されます。
詳細の解説を見たい方は、下記記事で詳細な解説を行っています。 ぜひご覧ください。


使用方法2 : 列方向にデータが入力されている場合
次のような列方向のデータがセルに入力されているとします。


列方向にデータが入力されている場合は、第2引数をTRUE
に設定することで、一意の値を抽出することができます。
=UNIQUE($A$1:$E$1,TRUE)


- array (必須) ⇒ $A$1:$A$5
- 一意の値を抽出したい範囲を「$A$1:$A$5」と指定しています。
- by_col (任意) ⇒ TRUE
- 列のデータを処理したいため「TRUE」を指定しています。
- exactly_once (任意) ⇒ 指定なし
処理結果


列方向の場合は第2引数を「TRUE」にしないと、適切な結果を返すことができません。


使用方法3 : 重複するデータを完全に除外する
次のような行方向のデータがセルに入力されているとします。


重複データを完全に除外し、1回だけ出現する値を抽出したい場合は、exactly_once
を指定します。
=UNIQUE($A$1:$A$5,,TRUE)


- array (必須) ⇒ $A$1:$A$5
- 一意の値を抽出したい範囲を「$A$1:$A$5」と指定しています。
- by_col (任意) ⇒ 指定なし
- exactly_once (任意) ⇒ TRUE
- 重複しているデータはすべて除外し、1回だけ出現する値のみを抽出したいため「TRUE」を指定します。
処理結果


この場合、「りんご」と「みかん」は複数回出現しているため、結果には含まれません。
エクセル UNIQUE関数の注意点|エラーや互換性の問題を解説!
UNIQUE関数は非常に便利なエクセル機能ですが、使用する際にいくつかの注意点があります。
ここでは、初心者がつまずきやすいポイントやエラーを防ぐ方法を具体的に解説します!
注意1. 古いエクセルでは使えない!UNIQUE関数の互換性問題
UNIQUE関数は、「Microsoft 365」または「Excel 2021」以降のバージョンで使用可能です。
それ以前のバージョン(Excel 2016やExcel 2019など)では利用できません。
対処法:古いバージョンの場合の代替策
- 手動で重複を削除する
- 「データ」タブ → 「重複の削除」をクリックして対応。
- VBAでカスタム処理を行う
- VBAを使えば、古いバージョンでも一意のデータを抽出可能です。
注意2. スピル機能の罠|#スピル!エラーを防ぐには?
UNIQUE関数はスピル機能を利用して結果を複数セルに展開します。
ただし、スピル先にデータがある場合、#スピル!
エラーが発生します。


- スピル先のセルを空にする。
- スピル範囲に余計な数式や値がないか確認。
注意3. データの空白や誤入力に要注意!
UNIQUE関数は指定した範囲内のすべてのデータを処理しますが、空白セルや誤入力が含まれていると意図しない結果になる場合があります。
データ範囲を確認し、空白や余計なデータを削除してから関数を適用してください。
注意4. 他の関数と組み合わせる際の注意ポイント
UNIQUE関数はSORT関数やFILTER関数と組み合わせて使うことができますが、組み合わせによっては意図しない結果が出ることがあります。
=SORT(UNIQUE(A1:A100))
この場合、UNIQUE関数で重複を削除した値が、SORT関数によって昇順に並べ替えられます。
意図的に並び替えたくない場合は、SORT関数を使用しないようにしましょう。
おまけ|VBAでUNIQUE関数を使って一意のデータを抽出する方法
UNIQUE関数はエクセルのワークシート関数として便利ですが、実はVBAでも利用できます!
VBAを使えば、エクセル操作をさらに効率化でき、UNIQUE関数をプログラム内で活用することも可能です。
VBAでUNIQUE関数を使う簡単な例
以下のコードは、UNIQUE関数を使用して、一意の値を抽出し別のセル範囲に出力する例です。
Sub UseUniqueInVBA()
Dim rng As Range
Dim result As Variant
'// 抽出元のデータ範囲を指定
Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")
'// UNIQUE関数を適用
result = Application.WorksheetFunction.Unique(rng)
'// 抽出結果をシートに出力
ThisWorkbook.Sheets("Sheet1").Range("C1").Resize(UBound(result, 1), 1).Value = result
End Sub


- WorksheetFunctionを利用する
- VBAでは、
WorksheetFunction.Unique
を使うことでワークシート関数としてUNIQUEを呼び出せます。
⇒ 参考リンク : VBAでワークシート関数を使用する「WorksheetFunction」を解説
- VBAでは、
- 結果は配列として返される
- VBAではUNIQUE関数の結果が2次元配列として返されます。
そのため、Resize
を使ってシートに展開する必要があります。
- VBAではUNIQUE関数の結果が2次元配列として返されます。
活用シーン
- 自動化されたデータ整理が必要なとき
- 大量データの重複削除を効率化したいとき
- ワークフロー内での重複チェックや処理を行いたいとき
Dictionaryやループ処理を使った場合の違いは?
UNIQUE関数を使わずに、VBAで重複データを削除するには、Dictionaryやループ処理を活用する方法があります。
ただし、これらの方法はコードが複雑になり、手間がかかることもあります。
- Dictionary
- 一意の値を効率よく取得できるが、事前にDictionaryオブジェクトの知識が必要。
- ループ処理
- 各セルを1つずつ確認して重複を削除しますが、コードが長くなり、大量データの場合に時間がかかることもあります。
この記事のまとめ
この記事では、エクセルの「UNIQUE関数」を活用して重複データを効率的に削除し、データ整理や加工をスムーズに行う方法について解説しました。
初心者の方でも安心して使える基本の使い方から、注意点、さらにVBAでの活用例まで幅広い情報をお届けしました。
以下のポイントをもう一度復習しましょう!
ポイントのおさらい
- UNIQUE関数とは?基本を押さえよう
- UNIQUE関数は、データの重複を簡単に取り除ける便利な関数です。
基本の使い方や引数の設定を理解すれば、初心者でもすぐに活用できます。
⇒ 「エクセルの「UNIQUE関数」とは?基本の使い方を解説」をもう一度見る。
- UNIQUE関数は、データの重複を簡単に取り除ける便利な関数です。
- UNIQUE関数の使用例
- 行方向や列方向のデータから一意の値を抽出する方法
- 完全に重複するデータを除外し、一度しか出現しない値を取得する方法
具体的な使用例を確認しながら、実際に試してみましょう!
⇒ 「エクセルの「UNIQUE関数」の使用例! 使い方を徹底解説」をもう一度見る。
- UNIQUE関数を使う際の注意点
- 古いバージョンでは使用できない(Excel 2016や2019では非対応)
- スピル機能のエラー(#スピル!)に注意
- データの空白や誤入力が結果に影響する
⇒「エクセル UNIQUE関数の注意点|エラーや互換性の問題を解説!」をもう一度見る。
- おまけ:VBAでUNIQUE関数を活用しよう
- VBAを使えば、UNIQUE関数をプログラム内で利用して重複削除を自動化できます!
簡単なコード例を参考に、自動化されたデータ整理にチャレンジしてみましょう。
⇒ 「おまけ|VBAでUNIQUE関数を使って一意のデータを抽出する方法」をもう一度見る。
- VBAを使えば、UNIQUE関数をプログラム内で利用して重複削除を自動化できます!
さらに学ぶために
UNIQUE関数をマスターしたら、エクセルの他の関数やVBAの応用テクニックも活用して、作業効率をさらに向上させましょう!

