Excel(エクセル)のデータの中からユニークな値を表示するとき、目視で手作業で取り出していては時間がかかってしまいます。
例えば、「A、A、B、B、C、C、D、D、D」というデータから「A、B、C、D」だけを抽出する場合です。
そんな時に便利なのが、Excel2021バージョンから新登場したUNIQUE関数です。
UNIQUE関数を使えば、ユニークなデータを簡単に取り出すことができます。
今回は、UNIQUE関数の使い方と、他の関数と組み合わせた便利な使い方を紹介します。
UNIQUE関数とは?ユニークとは?
UNIQUE関数とは、1列もしくは複数列からユニークな値のデータを返す関数です。
例えば、下の図のように、氏名リストから重複を除いた一意の値のデータのみを表示するといった場合に役立つ関数です。
英語の「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関数を使って、下の「受験記録表」からユニークな「氏名」だけを抽出してみます。
手順1.UNIQUE関数を挿入
まず、ユニークな氏名だけを表示させたいセルに、UNIQUE関数を挿入します。
=UNIQUE(
手順2.ユニークな値を取り出したいセル範囲を選択
UNIQUE関数の第1引数「配列」を指定します。ユニークな値を取り出したいセル範囲をドラッグで選択します。
=UNIQUE(B3:B14
手順3.UNIQUE関数を確定
UNIQUE関数の第2引数「列の比較」、第3引数「回数指定」は省略できるので指定せずに、そのまま「Enter」キーを押して、関数を確定させてください。
そうすると、下のように、F3セルから下のセルにかけて、ユニークな氏名のみが表示されます。
UNIQUE関数はF3セルの1つにしか挿入していませんが、スピル機能によりF3セル以外のセルにもその結果が拡張されて表示されます。
注意点1.大文字/小文字の取り扱い
アルファベットの大文字/小文字をUNIQUE関数はどのように判定するか確認しましょう。
英字「A」や「a」が混在している下の表に対して、UNIQUE関数を使用してみます。
そうすると、B列には、大文字の「A、B、C」と小文字の「a、b、c」が入力されていますが、UNIQUE関数で表示される結果は「A、b、C、d」となり大文字/小文字が混在します。
つまり、UNIQUE関数は、セル範囲に大文字小文字が混在している場合、上の文字を優先して結果に表示させます。
注意点2.半角/全角の取り扱い
カタカナや英数字の半角/全角をUNIQUE関数はどのように判定するか確認しましょう。
アルファベットやカタカナが混在している下の表に対して、UNIQUE関数を使用してみます。
そうすると、B列には、全角の「タナカ、TANAKA」と半角の「タナカ、TANAKA」が入力されていますが、UNIQUE関数で表示される結果は「タナカ、TANAKA」となり半角と全角が混在します。
つまり、UNIQUE関数は、セル範囲に半角と全角が混在している場合、上の文字を優先して結果に表示させます。
また、B列には、全角の「tanaka、tanaka」がUNIQUE関数の結果に表示されていませんが、上の見出しで紹介したように、上のセルにその大文字が存在するためです。
注意点3.空白セルは”0”と表示
空白セルを含めてUNIQUE関数を利用すると、下のように「0」の数値が表示されます。
空白セルによる「0」を表示させないようにするためには、IF関数の中にUNIQUE関数を挿入する入れ子を利用することで、0を非表示にすることができます。
=IF(UNIQUE(B3:B10)=0,"",UNIQUE(B3:B10))
IF関数を使って、UNIQUE関数で「0」が表示される場合は「空白」を表示し、そうでなければ「UNIQUE関数の結果」を表示させています。
注意点4.日付セルは表示形式を変える
UNIQUE関数は日付セルに対して使用することは可能ですが、UNIQUE関数の結果はシリアル値で表示されます。
セルの表示を日付に直すために、シリアル値で表示されたセル範囲を選択し、「右クリック」⇒「右クリックメニュー」⇒「セルの書式設定」から、表示形式を「日付」に変更してください。
UNIQUE関数を使った事例を紹介
UNIQUE関数は、上で紹介した単一列で使用する以外にも、複数列に対してユニークな値を抽出することができます。
また、第2引数「列の比較」、第3引数「回数指定」を利用することで、少し特殊な使い方が可能です。
事例1.複数列からユニークなデータを抽出
UNIQUE関数で複数列のユニークなデータを抽出する方法を紹介します。
方法は簡単です。UNIQUE関数の第1引数「配列」を1列ではなく、「B3:C11」というように複数列のセル範囲を指定します。
=UNIQUE(B3:C11)
そうすると、上の表から簡単に選択した範囲からユニークな「氏名」と「参加月」が表示されます。
事例2.行からユニークなデータを抽出(第2引数の利用)
UNIQUE関数は、横方向の行からユニークな値を抽出することもできます。
単一行や複数行からユニークな値を抽出する場合は、第2引数「列の比較」を「TRUE」と指定します。
=UNIQUE(C2:K2,"TRUE")
そうすると、下の表のように、横方向のデータからユニークな氏名を抽出することができます。
事例3.1つだけのデータを抽出(第3引数の利用)
UNIQUE関数の第3引数「回数指定」を使用することで、1つだけしかないデータを抽出することができます。
例えば、1回しか参加していない氏名を表示させるには、下の数式のように、第3引数は「”TRUE”」と指定します。
第2引数は指定する必要がないので、手前の「カンマ(,)」は2つ必要です。
=UNIQUE(B3:B10,,"TRUE")
そうすると、下の参加記録表から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関数の中に条件に合うデータを抽出するFILTER関数を組み合わせることで、表から「80点以上を取った人の氏名」を重複なしで抽出することができます。
=UNIQUE(FILTER(B3:B14,D3:D14>=80,""))
UNIQUE関数とSORT関数を組み合わせる方法
SORT関数とUNIQUE関数を組み合わせることで、抽出したユニークな値を並べ替えすることができます。
なお、SORT関数は、並べ替えする関数で、書式と引数は以下のとおりです。
SORT関数の書式は以下のとおりで、4つの引数で構成されています。
=SORT(配列,[並べ替えインデックス],[並べ替え順序],[並べ替え基準])
SORT関数の詳しい使い方は下のリンク記事からどうぞ。
使い方は簡単で、SORT関数の中にUNIQUE関数を使用すると、ユニークな値を昇順で並べ替えすることができます。
=SORT(UNIQUE(C3:C8))
ユニークな値を降順で並べ替えしたい場合は、SORT関数の第3引数を「-1」を入力します。第2引数は省略しているので、手前のカンマは2つ必要です。
=SORT(UNIQUE(C3:C8),,-1)
UNIQUE関数とSUMIF関数を組み合わせる方法
UNIQUE関数とSUMIF関数を組み合わせることでることで、ユニークな値の数値の合計を計算することができます。
SUMIF関数は、条件に合う値を合計する関数です。SUMIF関数の使い方が分からない方は、下のリンク記事を参考にしてください。
=SUMIF(範囲,検索条件,[合計範囲])
まずは、UNIQUE関数を使って、下の受験記録表からユニークな氏名を表示します。
=UNIQUE(B3:B14)
UNIQUE関数を挿入した右隣のG3セルに、以下のSUMIF関数を挿入します。
この数式は、検索条件の【F3セルからF6セル】の氏名と一致するデータを「B3:B14」から探し、「D3:D14」の範囲内から合計する、という意味です。
=SUMIF(B3:B14,F3#,D3:D14)
そうすると、「石井」さんの算数の合計得点が「205」点といったように、ユニークな氏名の合計得点がすべて表示されます。
SUMIF関数の第2引数の「検索条件」に【#】という記号を使っていますが、これはMicrosoft365に登場したスピル範囲演算子と呼ばれるものです。
このスピルと呼ばれる機能を使用することで、UNIQUE関数と同じように、SUMIF関数も1つのセルの入力だけで対応が可能となります。
UNIQUE関数とCOUNTIF関数を組み合わせる方法
UNIQUE関数とCOUNTIF関数を組み合わせることでることで、ユニークな値の数をカウントすることができます。
COUNTIF関数は、条件に合うセルの数をカウントする関数です。COUNTIF関数の使い方が分からない方は、下のリンク記事を参考にしてください。
=COUNTIF(範囲,検索条件)
まずは、UNIQUE関数を使って、下の受験記録表からユニークな氏名を表示します。
=UNIQUE(B3:B14)
UNIQUE関数を挿入した右隣のG3セルに、以下のCOUNTIF関数を挿入します。
この数式は、検索条件の【F3セルからF6セル】の氏名と一致するデータを「B3:B11」から探し、セルの数をカウントする、という意味です。
=COUNTIF(B3:B11,F3#)
そうすると、「石井」さんの受験回数が「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)
そうすると、「石井」さんの平均値が「70点」といったように、ユニークな氏名の平均値がすべて表示されます。
UNIQUE関数が使えない場合の対処方法(代替策)
UNIQUE関数は、Microsoft365とExcel2021以降のバージョンでしか利用できません。
UNIQUE関数を利用できないユーザーは、ピボットテーブルを使えば、ユニークな値を抽出することができます。
まず、ユニークな氏名を抽出したいセル範囲を選択して、「挿入」タブの「ピボットテーブル」コマンドをクリックします。
「テーブルまたは範囲からピボットテーブル」画面が表示されるので、そのまま「OK」を押してください。
Excel画面の右端に「ピボットテーブルのフィールド」画面が表示されるので、「氏名」にチェックを入れると、ユニークな氏名が表示されます。
ピボットテーブルの使い方は、以下の記事で詳しく紹介しているので、合わせて参考にしてください。