【エクセル】UNIQUE関数でユニークなデータのみ抽出する方法。重複を簡単に削除!

エクセルのUNIQUE関数でユニークな値を抽出する方法

Excel(エクセル)のデータの中からユニークな値を表示するとき、目視で手作業で取り出していては時間がかかってしまいます。

例えば、「A、A、B、B、C、C、D、D、D」というデータから「A、B、C、D」だけを抽出する場合です。

そんな時に便利なのが、Excel2021バージョンから新登場したUNIQUE関数です。

UNIQUE関数を使えば、ユニークなデータを簡単に取り出すことができます。

今回は、UNIQUE関数の使い方と、他の関数と組み合わせた便利な使い方を紹介します。

UNIQUE関数とは?ユニークとは?

UNIQUE関数とは、1列もしくは複数列からユニークな値のデータを返す関数です。

例えば、下の図のように、氏名リストから重複を除いた一意の値のデータのみを表示するといった場合に役立つ関数です。

UNIQUE関数の利用イメージ
UNIQUE関数の利用イメージ

英語の「UNIQUE(ユニーク)」とは、「唯一の、固有の、独自の」を意味します。

そのため、UNIQUE関数は、重複するデータは除いたデータを作成することが出来る関数と覚えてください。

利用できるExcelバージョンは、Microsoft365(サブスク)とExcel2021以降と2024/11月時点では限定されています。

もし、UNIQUE関数を利用できない場合は、以下の記事を参考にして、重複データを削除したり抽出してください。

UNIQUE関数の書式と引数

UNIQUE関数の書式は以下のとおりで、3つの引数を指定します。

=UNIQUE(配列,[列の比較],[回数指定])

第1引数「配列」:ユニークなデータを返したい行または列を選択します。複数列、複数行でも可能です。(例:A1:A10、A1:C10)

第2引数「列の比較」:第1引数で指定したデータ範囲から、ユニークな”列”を返したい場合は「TRUE」”行”を返したい場合は「FALSE」を指定します。
※「FALSE」の場合は省略可能

第3引数「回数指定」:第1引数で指定した範囲に1回だけ発生するデータの値を返す場合は「TRUE」を、重複しないユニークな値をすべて返す場合は「FALSE」を指定します。
※「FALSE」の場合は省略可能

第2、第3引数をどのように使うかイメージできないと思うので、次の見出しからはUNIQUE関数を使いながら、それぞれの引数の役割を解説していきます。

UNIQUE関数を利用する方法と注意点

UNIQUE関数の基本的な使い方を解説します。

また、UNIQUE関数で「大文字/小文字」、「半角/全角」、「空白セル」はどのように取り扱われるかについても注意が必要ですので、合わせて説明します。

UNIQUE関数の基本的な使い方(単一列)

UNIQUE関数を使って、下の「受験記録表」からユニークな「氏名」だけを抽出してみます。

UNIQUE関数を使う元データ
UNIQUE関数を使う元データ

手順1.UNIQUE関数を挿入
まず、ユニークな氏名だけを表示させたいセルに、UNIQUE関数を挿入します。

=UNIQUE(

手順1.UNIQUE関数を挿入
手順1.UNIQUE関数を挿入

手順2.ユニークな値を取り出したいセル範囲を選択
UNIQUE関数の第1引数「配列」を指定します。ユニークな値を取り出したいセル範囲をドラッグで選択します。

=UNIQUE(B3:B14

手順2.UNIQUE関数の第1引数「配列」を選択
手順2.UNIQUE関数の第1引数「配列」を選択

手順3.UNIQUE関数を確定
UNIQUE関数の第2引数「列の比較」、第3引数「回数指定」は省略できるので指定せずに、そのまま「Enter」キーを押して、関数を確定させてください。

そうすると、下のように、F3セルから下のセルにかけて、ユニークな氏名のみが表示されます。

手順3.UNIQUE関数を確定しユニークな値を抽出
手順3.UNIQUE関数を確定しユニークな値を抽出

UNIQUE関数はF3セルの1つにしか挿入していませんが、スピル機能によりF3セル以外のセルにもその結果が拡張されて表示されます。

注意点1.大文字/小文字の取り扱い

アルファベットの大文字/小文字をUNIQUE関数はどのように判定するか確認しましょう。

英字「A」や「a」が混在している下の表に対して、UNIQUE関数を使用してみます。

UNIQUE関数の大文字と小文字の取り扱い
UNIQUE関数の大文字と小文字の取り扱い

そうすると、B列には、大文字の「A、B、C」と小文字の「a、b、c」が入力されていますが、UNIQUE関数で表示される結果は「A、b、C、d」となり大文字/小文字が混在します。

つまり、UNIQUE関数は、セル範囲に大文字小文字が混在している場合、上の文字を優先して結果に表示させます。

注意点2.半角/全角の取り扱い

カタカナや英数字の半角/全角をUNIQUE関数はどのように判定するか確認しましょう。

アルファベットやカタカナが混在している下の表に対して、UNIQUE関数を使用してみます。

UNIQUE関数の全角と半角の取り扱い
UNIQUE関数の全角と半角の取り扱い

そうすると、B列には、全角の「タナカ、TANAKA」と半角の「タナカ、TANAKA」が入力されていますが、UNIQUE関数で表示される結果は「タナカ、TANAKA」となり半角と全角が混在します。

つまり、UNIQUE関数は、セル範囲に半角と全角が混在している場合、上の文字を優先して結果に表示させます。

また、B列には、全角の「tanaka、tanaka」がUNIQUE関数の結果に表示されていませんが、上の見出しで紹介したように、上のセルにその大文字が存在するためです。

注意点3.空白セルは”0”と表示

空白セルを含めてUNIQUE関数を利用すると、下のように「0」の数値が表示されます。

UNIQUE関数で空白セルは0と表示
UNIQUE関数で空白セルは0と表示

空白セルによる「0」を表示させないようにするためには、IF関数の中にUNIQUE関数を挿入する入れ子を利用することで、0を非表示にすることができます。

=IF(UNIQUE(B3:B10)=0,"",UNIQUE(B3:B10))

IF関数とUNIQUE関数を組み合わせる
IF関数とUNIQUE関数を組み合わせる

IF関数を使って、UNIQUE関数で「0」が表示される場合は「空白」を表示し、そうでなければ「UNIQUE関数の結果」を表示させています。

注意点4.日付セルは表示形式を変える

UNIQUE関数は日付セルに対して使用することは可能ですが、UNIQUE関数の結果はシリアル値で表示されます。

UNIQUE関数を日付セルで使用
UNIQUE関数を日付セルで使用

セルの表示を日付に直すために、シリアル値で表示されたセル範囲を選択し、「右クリック」⇒「右クリックメニュー」⇒「セルの書式設定」から、表示形式を「日付」に変更してください。

セルの表示形式を「日付」に変更
セルの表示形式を「日付」に変更

UNIQUE関数を使った事例を紹介

UNIQUE関数は、上で紹介した単一列で使用する以外にも、複数列に対してユニークな値を抽出することができます。

また、第2引数「列の比較」、第3引数「回数指定」を利用することで、少し特殊な使い方が可能です。

事例1.複数列からユニークなデータを抽出

UNIQUE関数で複数列のユニークなデータを抽出する方法を紹介します。

方法は簡単です。UNIQUE関数の第1引数「配列」を1列ではなく、「B3:C11」というように複数列のセル範囲を指定します。

=UNIQUE(B3:C11)

UNIQUE関数を複数列で使用する方法
UNIQUE関数を複数列で使用する方法

そうすると、上の表から簡単に選択した範囲からユニークな「氏名」と「参加月」が表示されます。

事例2.行からユニークなデータを抽出(第2引数の利用)

UNIQUE関数は、横方向の行からユニークな値抽出することもできます。

単一行や複数行からユニークな値を抽出する場合は、第2引数「列の比較」を「TRUE」と指定します。

=UNIQUE(C2:K2,"TRUE")

UNIQUE関数の第2引数「列の比較」をTRUEと指定
UNIQUE関数の第2引数「列の比較」をTRUEと指定

そうすると、下の表のように、横方向のデータからユニークな氏名を抽出することができます。

UNIQUE関数を行に対して使用
UNIQUE関数を行に対して使用

事例3.1つだけのデータを抽出(第3引数の利用)

UNIQUE関数の第3引数「回数指定」を使用することで、1つだけしかないデータを抽出することができます。

例えば、1回しか参加していない氏名を表示させるには、下の数式のように、第3引数は「”TRUE”」と指定します。

第2引数は指定する必要がないので、手前の「カンマ(,)」は2つ必要です。

=UNIQUE(B3:B10,,"TRUE")

UNIQUE関数の第3引数をTRUEで使用
UNIQUE関数の第3引数をTRUEで使用

そうすると、下の参加記録表から1回だけ参加した氏名を抽出することができます。

UNIQUE関数で1回だけのデータを抽出
UNIQUE関数で1回だけのデータを抽出

【応用編】UNIQUE関数と他の関数の組み合わせ

UNIQUE関数を他の関数と組み合わせた応用編の使い方を紹介します。

UNIQUE関数と組み合わせる関数

・FILTER関数、SORT関数、SUMIF関数、COUNTIF関数、AVERAGEIF関数

UNIQUE関数とFILTER関数を組み合わせる方法

FILTER関数とUNIQUE関数を組み合わせることで、条件に合ったユニークな値を表示させることができます。

なお、FILTER関数は、条件に合うデータを抽出する関数です。

=FILTER( 配列,含む,[空の場合])

第1引数『配列』:データを絞りたいセル範囲を指定
第2引数『含む』:抽出する条件を指定
第3引数『空の場合』:省略可能。指定した条件にあうデータが存在しない(=空)のときに返す値を指定

例えば、下の表のB列の氏名は複数セルで重複しています。このB列に対してUNIQUE関数を使うことで、F列にユニークな氏名だけのリストを表示させることができます。

=UNIQUE(B3:B14)

UNIQUE関数を単一列で使った場合
UNIQUE関数を単一列で使った場合

このUNIQUE関数の中に条件に合うデータを抽出するFILTER関数を組み合わせることで、表から「80点以上を取った人の氏名」を重複なしで抽出することができます。

=UNIQUE(FILTER(B3:B14,D3:D14>=80,""))

UNIQUE関数とFILTER関数で条件に合ったユニークな値を抽出
UNIQUE関数とFILTER関数で条件に合ったユニークな値を抽出

UNIQUE関数とSORT関数を組み合わせる方法

SORT関数とUNIQUE関数を組み合わせることで、抽出したユニークな値を並べ替えすることができます。

なお、SORT関数は、並べ替えする関数で、書式と引数は以下のとおりです。

SORT関数の書式は以下のとおりで、4つの引数で構成されています。

=SORT(配列,[並べ替えインデックス],[並べ替え順序],[並べ替え基準])

SORT関数の詳しい使い方は下のリンク記事からどうぞ。

使い方は簡単で、SORT関数の中にUNIQUE関数を使用すると、ユニークな値を昇順で並べ替えすることができます。

=SORT(UNIQUE(C3:C8))

UNIQUE関数とSORT関数でユニークな値を昇順で並べ替え
UNIQUE関数とSORT関数でユニークな値を昇順で並べ替え

ユニークな値を降順で並べ替えしたい場合は、SORT関数の第3引数を「-1」を入力します。第2引数は省略しているので、手前のカンマは2つ必要です。

=SORT(UNIQUE(C3:C8),,-1)

UNIQUE関数とSORT関数でユニークな値を降順で並べ替え
UNIQUE関数とSORT関数でユニークな値を降順で並べ替え

UNIQUE関数とSUMIF関数を組み合わせる方法

UNIQUE関数とSUMIF関数を組み合わせることでることで、ユニークな値の数値の合計を計算することができます。

SUMIF関数は、条件に合う値を合計する関数です。SUMIF関数の使い方が分からない方は、下のリンク記事を参考にしてください。

=SUMIF(範囲,検索条件,[合計範囲])

まずは、UNIQUE関数を使って、下の受験記録表からユニークな氏名を表示します。

=UNIQUE(B3:B14)

UNIQUE関数を使ってユニークな氏名を表示
UNIQUE関数を使ってユニークな氏名を表示

UNIQUE関数を挿入した右隣のG3セルに、以下のSUMIF関数を挿入します。

この数式は、検索条件の【F3セルからF6セル】の氏名と一致するデータを「B3:B14」から探し、「D3:D14」の範囲内から合計する、という意味です。

=SUMIF(B3:B14,F3#,D3:D14)

SUMIF関数とUNIQUE関数を組み合わせる方法
SUMIF関数とUNIQUE関数を組み合わせる方法

そうすると、「石井」さんの算数の合計得点が「205」点といったように、ユニークな氏名の合計得点がすべて表示されます。

SUMIF関数の第2引数の「検索条件」に【#】という記号を使っていますが、これはMicrosoft365に登場したスピル範囲演算子と呼ばれるものです。

このスピルと呼ばれる機能を使用することで、UNIQUE関数と同じように、SUMIF関数も1つのセルの入力だけで対応が可能となります。

UNIQUE関数とCOUNTIF関数を組み合わせる方法

UNIQUE関数とCOUNTIF関数を組み合わせることでることで、ユニークな値の数をカウントすることができます。

COUNTIF関数は、条件に合うセルの数をカウントする関数です。COUNTIF関数の使い方が分からない方は、下のリンク記事を参考にしてください。

=COUNTIF(範囲,検索条件)

まずは、UNIQUE関数を使って、下の受験記録表からユニークな氏名を表示します。

=UNIQUE(B3:B14)

COUNTIF関数を使う前にUNIQUE関数を使用
COUNTIF関数を使う前にUNIQUE関数を使用

UNIQUE関数を挿入した右隣のG3セルに、以下のCOUNTIF関数を挿入します。

この数式は、検索条件の【F3セルからF6セル】の氏名と一致するデータを「B3:B11」から探し、セルの数をカウントする、という意味です。

=COUNTIF(B3:B11,F3#)

COUNTIF関数とUNIQUE関数を組み合わせる方法
COUNTIF関数とUNIQUE関数を組み合わせる方法

そうすると、「石井」さんの受験回数が「3回」といったように、ユニークな氏名のセル数がすべて表示されます。

COUNTIF関数の第2引数の【#】という記号は、スピル範囲演算子と呼ばれるものです。

このスピルと呼ばれる機能を使用することで、UNIQUE関数と同じように、COUNTIF関数も1つのセルの入力だけで対応が可能となります。

UNIQUE関数とAVERAGEIF関数を組み合わせる方法

UNIQUE関数とAVERAGEIF関数を組み合わせることでることで、ユニークな値の平均値を算出することができます。

AVERAGEIF関数は、条件に合う値の平均値を計算する関数です。AVERAGEIF関数の使い方が分からない方は、下のリンク記事を参考にしてください。

=AVERAGEIF(範囲,条件,[平均対象範囲])

UNIQUE関数を挿入した右隣のG3セルに、以下のAVERAGEIF関数を挿入します。

この数式は、検索条件の【F3セルからF5セル】の氏名と一致するデータを「B3:B11」から探し、「D3:D11」の範囲内のデータから平均値を算出する、という意味です。

=AVERAGEIF(B3:B11,F3#,D3:D11)

AVERAGEIF関数とUNIQUE関数を組み合わせる方法
AVERAGEIF関数とUNIQUE関数を組み合わせる方法

そうすると、「石井」さんの平均値が「70点」といったように、ユニークな氏名の平均値がすべて表示されます。

UNIQUE関数が使えない場合の対処方法(代替策)

UNIQUE関数は、Microsoft365とExcel2021以降のバージョンでしか利用できません。

UNIQUE関数を利用できないユーザーは、ピボットテーブルを使えば、ユニークな値を抽出することができます。

まず、ユニークな氏名を抽出したいセル範囲を選択して、「挿入」タブの「ピボットテーブル」コマンドをクリックします。

ユニークな氏名を抽出するためピボットテーブルを利用
ユニークな氏名を抽出するためピボットテーブルを利用

「テーブルまたは範囲からピボットテーブル」画面が表示されるので、そのまま「OK」を押してください。

Excel画面の右端に「ピボットテーブルのフィールド」画面が表示されるので、「氏名」にチェックを入れると、ユニークな氏名が表示されます。

ピボットテーブルでユニークな氏名を表示する方法
ピボットテーブルでユニークな氏名を表示する方法

ピボットテーブルの使い方は、以下の記事で詳しく紹介しているので、合わせて参考にしてください。

-Excel(エクセル), 数式・関数
-,