UNIQUE関数の使い方|重複削除で一意のデータを瞬時に抽出

Excel(エクセル)のUNIQUE関数の使い方|重複削除で一意のデータを瞬時に抽出

UNIQUE関数は一意(重複しない、オンリーワン)のデータを取得します。重複データの抽出や削除を時短で実行できる便利なUNIQUE関数の基本的な使い方から応用までを初心者向けに分かりやすく図解していきます。

使用関数:UNIQUE、COUNTIF、SUMIF

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

IT用語で使うUNIQUE(ユニーク)は「重複しない」「一意の値」という意味です。UNIQUE関数はデータ範囲から重複を除くデータを取り出します。

Excelでデータ管理する上で、重複データの抽出や削除は必須作業の一つです。これまでは、データベースにフィルターボタンを設置したり、テーブル化したり、COUNTIF関数などを使って重複を洗い出したりしていましたが、UNIQUE関数の登場で簡単かつスピーディに作業できるようになりました。

UNIQUE関数で作成した重複なしのデータ表を別シートで管理する場合も、元データに追加・削除があった時点ですばやく結果に反映されます。

UNIQUE関数の引数と書式

「数式」→「関数ライブラリ」→「検索/行列」からUNIQUEを選択します。
関数ライブラリの「検索/行列」からUNIQUEを選択

UNIQUE関数の書式の構成はこうなります。
UNIQUE関数の書式の構成

UNIQUE関数が使えないExcelバージョンと代用

UNIQUE関数はOffice365(Microsoft365)、及びExcel2021(永続版)で使用可能な関数です。Excel2019以前のバージョンでは使えませんのでご注意下さい。

UNIQUE関数が使えないバージョンでは、フィルター機能やCOUNTIF関数で代用できます。

抽出した重複レコードをフィルター機能でまとめ、別シートに移す操作の解説記事です。

フィルター機能で重複するデータを削除する

COUNTIF関数で重複したデータを抽出して削除する解説記事です。

条件付き書式とCOUNTIF関数で重複データを抽出

UNIQUE関数の基本的な使い方

簡単な例でデータを抽出して、UNIQUE関数の引数の指定を一つずつ確認していきましょう。

家具の売上表から一意の商品名をUNIQUE関数で抽出します。
UNIQUE関数で一意の商品名を抽出する表

第一引数「配列」

抽出する値が含まれるセル範囲、または配列を指定します。この例では列見出し「商品」のセル範囲をドラッグで指定します。
UNIQUE関数の引数「配列」を指定

第二引数「列の比較」

比較方法を論理値(TRUE、FALSE)で指定します。列方向に比較するか、行方向へ比較するかを決めます。

  • TRUE(または1)を指定: 列方向(横にデータが並んでいる場合)に比較して一意のデータを抽出します。
  • FALSE(または0、または省略)を指定: 行方向(縦にデータが並んでいる場合)に比較して一意のデータを抽出します。

「列の比較」にTRUE(または1)を指定するのは、下図のように見出しが行側にあり、データが列方向(横)に展開している表でUNIQUE関数を実行する場合です。
UNIQUE関数の「列の比較」にTRUE(または1)を指定

この例では行方向に比較して抽出するので、引数を省略するか「0」または「FALSE」と入力します。
UNIQUE関数の引数「列の比較」を指定

第三引数「回数指定」

抽出する値の出現回数を論理値(TRUE、FALSE)で指定します。一度しか出現しない値だけを抽出するか、重複した値(数度出現した値)を一意にまとめるかの選択です。

  • TRUE(または1)を指定: 一度しか出現しないデータを抽出します。
    {”A”;”A”;”B”;”B”;”B”;”C”;”D”;”D”}の配列なら、{“C”}だけが返ります。
  • FALSE(または0、または省略)を指定: 重複をまとめて一意のデータを抽出します。
    {”A”;”A”;”B”;”B”;”B”;”C”;”D”;”D”}の配列なら、{“A”;”B”;”C”;”D”}が返ります。

UNIQUE関数の「回数指定」TRUEとFALSEのそれぞれの結果は以下の通りです。
UNIQUE関数の回数指定TRUEとFALSEそれぞれの結果

この例では引数を省略するか「0」または「FALSE」と入力します。
UNIQUE関数の引数「回数指定」を指定

数式を確定させると、スピルの予測値表示機能で重複を除外した一意の商品名が一気にまとめて返ります。
UNIQUE関数で抽出した結果

数式 =UNIQUE(B2:B15)

データベースでUNIQUE関数を使うならテーブル化がおすすめ

膨大なデータ表でUNIQUE関数を使うにはテーブルを設定しておくと便利です。データ範囲を指定するのもテーブル名や列見出しを数式に入力するだけなので手間が省けます。
テーブル化した表とUNIQUE関数の指定

テーブルの設定や使い方の詳細は以下の記事で解説しています。

テーブル機能の使い方・完全ナビ
テーブルの設定手順、機能の使い方を順を追って解説するとともに、テーブル化すると何が変わる? テーブル機能を使う利点とは? デメリットは無いの? に答えます。

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

UNIQUE関数で比較して抽出した一意のデータは下図左のように商品名が不規則に並びますが、UNIQUE関数をSORT関数にネストすると、リスト内の同じ文字から始まる項目をまとめてきれいに並べ替えてくれます。
UNIQUE関数でリスト化された表とSORT関数にネストして並べ替えた表の比較
=SORT(UNIQUE(B2:B30)) ←のようにSORT関数でUNIQUEの数式を囲えばいいだけなので手間もかからずに並べ替えができます。

UNIQUE関数で複数列の一意のデータを抽出する

UNIQUE関数では引数「配列」に複数の列を指定して、セットで比較して一意のデータをリスト化することができます。

例えば、「種類」と「色」の2つの列にある値をセットにして比較抽出を実行してみます。
「種類」と「色」の2つの列データをセットにして比較抽出を実行する表

UNIQUE関数の引数「配列」に「種類」と「色」の複数列のデータ範囲を指定します。
UNIQUE関数の引数「配列」に複数列のデータ範囲を指定

スピルによって「種類」+「色」の一意のデータがリストアップされました。
UNIQUE関数で複数列の一意のデータがリストアップ

複数列それぞれの一意の値をリスト化したい場合は、複数列のデータ範囲をUNIQUE関数に指定することはできません。
この場合は最初の列のデータ範囲からUNIQUE関数で一意の値を取得したら、その他の列にオートフィルコピーします。
UNIQUE関数で複数列それぞれの一意の値をリスト化

UNIQUE関数で得たリストから値別の重複数をカウント

UNIQUE関数で重複をまとめた一意のデータのリストが作成されています。このリストアップされた値ごとの重複データの数をカウントしたい場合はCOUNTIF関数を使います。
UNIQUE関数で重複をまとめた一意のデータのリスト

COUNTIF関数の「条件」にはUNIQUE関数で取得したリストの最初のセル(D2セル)を参照で指定します。

ここではスピルでオートフィルコピーなしに一気に重複のカウント数を表示させたいので、セル参照(D2)の後に「#」を付けます。#」はスピル範囲演算子で、これを付けることでスピル範囲全体を参照できます。

数式はこうなります。=COUNTIF(A2:A9,D2#)
COUNTIF関数の条件にUNIQUE関数で取得した最初のセル参照の後に#を付けて指定

スピルによって重複の数が一括でカウントされました。
スピルで重複したデータの数を一括で取得

UNIQUE関数で得たリストから値別の金額を合計

前章で重複データの数をカウントしたのと同じ方法で、今度はリストアップされた値ごとの金額を合計します。この実装にはSUMIF関数を使います。

SUMIF関数の「範囲」は前章でカウントしたCOUNTIF関数の指定と同じです。「検索条件」にはUNIQUE関数で取得したリストの最初のセル(D2セル)を参照で指定します。

ここではスピルでオートフィルコピーなしに一気に一意の値ごとの合計金額を表示させたいので、セル参照(D2)の後にスピル範囲演算子「#を付けます。「合計範囲」は「金額」の列データ範囲を指定します。
SUMIF関数の検索条件にUNIQUE関数で取得した最初のセル参照の後に#を付けて指定

数式はこうなります。=SUMIF(A2:A9,D2#,B2:B9)
スピルによって一意の値ごとの合計金額が一括で返されました。
スピルで一意の値ごとの合計金額を一括で取得

UNIQUE関数の使い方 まとめ
  • UNIQUEは重複を除いた一意のデータを抽出する関数です
  • UNIQUE関数はMicrosoft365、及びExcel2021以外のバージョンでは使えません
  • UNIQUE関数で抽出した結果はスピル機能でまとめて表示されます
  • UNIQUE関数の第二引数「列の比較」にTRUEを指定すると列方向(横)へ比較して値を抽出します
  • UNIQUE関数の第三引数「回数指定」にTRUEを指定すると1回のみ出現した値だけをリストアップします
  • UNIQUE関数では引数「配列」に複数の列を指定して、セットで比較して一意のデータをリスト化できます
  • UNIQUE関数でリスト化した値ごとの重複の数をカウントする時、COUNTIF関数の条件にスピル範囲演算子#を付けたセル参照を指定すると一括でカウントできます
  • 同じく、値ごとの金額を合計する時、SUMIF関数の条件にスピル範囲演算子#を付けたセル参照を指定すると一括で合計できます
タイトルとURLをコピーしました