UNIQUE関数とは
UNIQUE関数とは、指定した範囲から重複しない値を返してくれる関数になります。

重複削除機能と何が違うんでしょう?
- 重複削除
重複した値を元データから削除して、重複しない値(一意の値)だけの残してくれる機能 - UNIQUE関数
重複した値は元データから削除せず、別の位置に重複しない値だけを抜き出してくれる関数
元データから重複データを削除してはいけないケースは意外と多いです。
また、重複削除の場合はVBAを使わないと自動で重複削除できませんが、UNIQUE関数だと、ユニークな値を表示させたいところに関数を入れておけば、自動でユニークな値を表示してくれますので、用途によって使い分けられるよう覚えておきましょう!
練習用ファイルを準備していますので、必要な方は下記よりダウンロードしてくださいね。
基本的な使い方
UNIQUE関数の基本的な使い方を、実際に操作しながら見ていきましょう。
行で検索をする方法
まず、行で検索する方法をやってみます。
実際にも、この行で検索する方法がほとんどだと思いますので、ぜひ一緒に操作してみてください
ここではA列~F列に入っているデータから、ユニークな取引先名をH列に抽出してみます。
表示させたいH列の最初のセルH2セルにUNIQUE関数を入れていきます。
= を入れて「UN」くらいまで入力すると候補が上がってくるので、UNIQUE関数を選択したら Tab キーで使用する関数を確定させます。

使用関数を確定させたら、第1引数を入力します。
UNIQUE関数の第1引数は配列で「ユニークな値を抽出したい配列」を指定します。
今回はユニークなと取引先名を抽出したいので、ここではB列が対象となります。
データが入力されている最初のセル B2セルを選択した状態で、Ctrl と Shift ↓ を一緒に押して、最終行まで全部選択しましょう。

第2引数以降は任意の引数で、行で検索の場合は省略可能なので、一旦ここで Enter を押します。

UNIQUE関数はH2セルにしか入れていませんが、スピル機能が働いて、H2セル以降にもB列の会社名から、ユニークな会社名が抽出されました。
通常のデータ範囲の場合、行数に増減があった場合、自動で範囲変更されないので、UNIQUE関数の範囲を手動で変更する必要がります。
データ範囲に増減がある場合は、必ずデータ範囲をテーブルにしておきましょう!
テーブルにしておくことで、範囲に増減があってもUNIQUE関数の第1引数の範囲は自動変更されます。
=UNIQUE(ユニークな値を抽出したい配列)
=UNIQUE(B2:B415)
空白セル(ゼロ)を表示させない方法
UNIQUE関数では空白行を「0」で返してきますので、データ範囲に空白行がある場合や、第1引数で列全体を範囲指定した場合に発生します。
J列に列全体を選択する形でUNIQUE関数を入れてみます。

Enter を押すと一番下に「0」と表示されているセルがあるのが分かります。

「0」を非表示にする方法はいくつかありますが、ここではFILATER関数を一緒に組む方法をご紹介します。
一緒にやってみましょう!
まず、J1セルにUNIQUE関数を入れたら第1引数にFILATER関数を入れます。

FILTER関数の第1引数でフィルターをかけたい列を指定したらカンマ , を打ってFILTER関数の第2引数でフィルター条件を指定します。
今回はB列を空白以外でフィルターをかけていきたいので、次の形で入力しましょう。

ここまでがUNIQUE関数の第1引数となります。

FILTER関数はこちらで詳細をご紹介しています
あとは任意の引数なので、一旦ここでFILTER関数のカッコを閉じてからUNIQUE関数のカッコを閉じて Enter を押して完成です!

先ほどまで表示されていた「0」が非表示になりました。
=UNIQUE(FILTER(フィルターしたい列,フィルター条件))
=UNIQUE(FILTER(B:B,B:B<>""))
列で検索をする方法
UNIQUE関数は行で検索をするケースがほとんどだと思いますが、稀に列で検索することもあると思います。
考え方は行で検索と全く同じなので、一緒に覚えておきましょう!
1行目にデータが入っています。このデータからユニークな商品名を抽出してB3セルに返していきます。
B3セルにUNIQUE関数を入れたら Tab キーで使用関数を確定させましょう。
UNIQUE関数を確定させたら、第1引数を指定します。
UNIQUE関数の第1引数は配列で「ユニークな値を抽出したい配列」を指定します。
今回はユニークな商品名を抽出したいので、ここでは1行目が対象となります。

第1引数を指定したらカンマ , を打って第2引数に進みます。
UNIQUE関数の第2引数は、「行で検索か列で検索かを指定」します。
省略すると「行で検索」となるため、列で検索の際は必ず指定しましょう。
↓ で「TRUE – 一意の列を返す」を選択して Tab キーを押すでも良いですし、直接「TRUE」を打ち込んでもOKです。

第2引数を指定したら、第3引数は省略可能なのでこのまま Enter を押して完成です。

1行目に入っているデータの中から、ユニークな商品名が抽出できました。

ここでも行全体を選択したい場合は、行で検索と同様に
FILTER関数と一緒に組むことで「0」が非表示になります
=UNIQUE(ユニークな値を抽出したい配列,列で検索の場合はTRUE)
=UNIQUE(B1:J1,TRUE)
複数のデータを組み合わせて、ユニークな値を抽出する方法
ここでは複数のデータを組み合わせてユニークな値を抽出する方法をやってみましょう!
顧客リストとして、A列~D列にデータが入っています。
この中からユニークなデータを抽出したいですが、名前で検索すると同姓同名の方がおられる可能性があるので正確な抽出ができません。
こういう場合は複数のデータを組み合わせてユニークな値を作成してから抽出します。
ここでいうと、IDと名前を組み合わせればユニークな値ができますね。さっそく一緒にやってみましょう。
F2セルにUNIQUE関数を入れ、UNIQUE関数を確定させたら第1引数を指定しましょう。
今回はIDと名前の組み合わせなので、A2セルとB2セルをまとめて選択します。

第2引数は省略可能なので、このまま Enter を押せば完成です。

同姓同名の別人の顧客も漏れなく抽出できました。

分かりやすくするためにテーブルではなく範囲にしていますが
実際には範囲に変動があった場合を考慮して
データ範囲はテーブルにしておくことをおススメします
=UNIQUE(抽出したい複数配列)
=UNIQUE(A2:B30)
一度しか出現しない値だけを抽出する
最後に、ユニークな値の中でも、元データに一度しか出現しない値だけを抽出することが可能です。
例えば、顧客データの中でも一度しか取引記録がないものを抽出して何かしらのアプローチをしたい場合などに役立ちますので、一緒にやってみましょう。
A列~F列までの取引一覧に一度しか取引記録がない取引先名をH列に抽出します。
H2セルにUNIQUE関数を入れ、第1引数を指定したらカンマ , を打ちます。

次は第2引数ですが、行で検索のため第2引数は省略します。
ですが、このまま第3引数に進むとエクセルはそれが第2引数と認識してしまうため、任意の引数を省略して次の引数を入力する際は、必ず省略引数のカンマ , を打ちます。
このように何も入力せずカンマ , を打つことでエクセルは「この引数は省略」と認識します。

これは全ての関数に共通しているので覚えておきましょう!
第2引数のカンマ , を打ったら第3引数を指定します。
選択肢が表示されるので、↓ キーで「TRUE – 1回だけ出現するアイテムを返す」を選択したら Tab キーで確定させましょう。

最後に Enter を押せば完成です。

データの中でも一度しか出現していない取引先名が抽出されました。
=UNIQUE(一度しか出現しない値を抽出したい配列,,1回だけ出現するアイテムを返す)
=UNIQUE(B2:B415,,TRUE)
まとめ
UNIQUE関数についてご紹介しました。
使用頻度は高めの関数になると思いますので、ぜひこの機会にマスターしておきましょう!
何度か記載しましたが、見た目の分かりやすさを優先してデータは範囲のままにしていますが、範囲のままだとデータに増減があった場合に自動で範囲拡張されないため、テーブルにしておくことを強くお勧めします。
動画でもご紹介していますので、動画を見ながら操作を確認したい方は下記からどうぞ!

励みになります!高評価とチャンネル登録よろしくおねがいいたします。