【Excel】重複しない一意の値を抽出するUNIQUE関数の使い方

【Excel】重複しない一意の値を抽出するUNIQUE関数の使い方
🛡️ 超解決

Excelで大量のデータの中から、重複しない値だけを抜き出したい場面はありませんか。

例えば、顧客リストからユニークな会社名だけを抽出したり、アンケート回答からユニークな意見だけをリストアップしたりする際に便利です。

本記事では、ExcelのUNIQUE関数を使って、重複しない一意の値を簡単に抽出する方法を解説します。

この関数を使いこなせば、データ整理の効率が格段に向上します。

【要点】Excelで重複しない一意の値を抽出するUNIQUE関数の使い方

  • UNIQUE関数: 指定した範囲から重複しない一意の値を抽出して返します。
  • 引数: 配列(必須)と、行または列で一意の値のみを返すオプション(省略可)を指定します。
  • 活用例: 住所録からユニークな都道府県を抽出したり、商品リストからユニークな商品名を抽出したりできます。

ADVERTISEMENT

UNIQUE関数の基本仕様とできること

UNIQUE関数は、Microsoft 365のExcelや、Excel for the webで利用できる動的配列関数の一つです。指定した配列(セル範囲や配列定数)から、重複する値を除いた一意の値だけを返します。

この関数は、元のデータが更新されると、抽出結果も自動的に更新されるという特徴を持っています。これにより、常に最新の一意の値リストを維持できます。

例えば、商品リストからユニークな商品名を抽出したい場合、UNIQUE関数を使えば、手作業で重複を削除する手間が省けます。また、抽出されたリストは常に最新の状態に保たれるため、データ管理が非常に楽になります。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

UNIQUE関数の基本的な使い方

  1. UNIQUE関数を入力する
    一意の値を表示したいセルを選択します。数式バーに「=UNIQUE(」と入力します。
  2. 配列を指定する
    抽出したい重複する値が含まれるセル範囲を、マウスでドラッグするか、セル参照を入力して指定します。例えば、A1セルからA10セルまでを対象にする場合は「A1:A10」と入力します。
  3. 閉じ括弧を入力して確定する
    数式バーの閉じ括弧「)」を入力し、Enterキーを押します。

これで、指定した範囲から重複しない一意の値が、選択したセルから下方向(または右方向)に自動的に展開表示されます。この現象を「スピル」と呼びます。

例えば、A1:A10の範囲に「りんご」「みかん」「りんご」「ぶどう」「みかん」と入力されている場合、UNIQUE関数を入力したセルには「りんご」「みかん」「ぶどう」と表示されます。

UNIQUE関数と引数で抽出結果を操作する

UNIQUE関数には、配列の他にオプションの引数を指定することで、抽出結果をさらに細かく制御できます。

行のみ、または列のみで一意の値を抽出する

UNIQUE関数の2番目の引数「by_col」は、配列をどのように比較するかを指定します。この引数を省略するか「FALSE」を指定すると、配列全体を1つの列として扱い、行ごとに重複がないかを確認します。

一方、「TRUE」を指定すると、配列全体を1つの行として扱い、列ごとに重複がないかを確認します。これは、横方向に並んだデータから一意の値を抽出したい場合に便利です。

例えば、A1:C3の範囲に以下のようなデータがあるとします。

A B C
りんご みかん りんご
ぶどう もも ぶどう
りんご みかん なし

この場合、=UNIQUE(A1:C3)と入力すると、以下のような結果がスピルされます。

A B C
りんご みかん りんご
ぶどう もも ぶどう
なし

しかし、=UNIQUE(A1:C3,,TRUE)のようにby_col引数をTRUEにすると、列ごとに重複を判断します。

A B C
りんご みかん りんご
ぶどう もも ぶどう
なし

この場合、A列からは「りんご」「ぶどう」「なし」、B列からは「みかん」「もも」、C列からは「りんご」「ぶどう」が抽出されます。by_col引数をTRUEにすると、配列全体が1つの行として扱われ、列ごとに重複がないかを確認するため、結果が異なります。

重複する値の出現回数を指定して抽出する

UNIQUE関数の3番目の引数「exactly_once」は、重複する値のうち、何回出現した値だけを抽出するかを指定します。この引数を「TRUE」に設定すると、一度だけ出現する(重複しない)値のみを抽出します。省略した場合や「FALSE」の場合は、すべてのユニークな値を抽出します。

先ほどのA1:C3の例で、=UNIQUE(A1:C3,,FALSE)と入力すると、すべてのユニークな値(りんご、みかん、ぶどう、もも、なし)が抽出されます。これがデフォルトの動作です。

一方、=UNIQUE(A1:C3,,,TRUE)と入力すると、一度だけ出現する値のみが抽出されます。この例では、A1:C3の範囲で「なし」が一度だけ出現するため、「なし」のみが抽出されるはずです。しかし、この例では「りんご」が3回、「みかん」が2回、「ぶどう」が2回出現しています。もし、A1:C3の範囲で一度だけ出現する値があれば、それが抽出されます。

例えば、A1:A10の範囲に「りんご」「みかん」「りんご」「ぶどう」「みかん」「りんご」「ぶどう」「なし」「なし」「もも」と入力されているとします。

=UNIQUE(A1:A10)と入力すると、「りんご」「みかん」「ぶどう」「なし」「もも」が抽出されます。

=UNIQUE(A1:A10,,,TRUE)と入力すると、「もも」のみが抽出されます。これは、「もも」だけが1回しか出現していないためです。

ADVERTISEMENT

UNIQUE関数と他の関数との組み合わせ

UNIQUE関数は、他のExcel関数と組み合わせることで、さらに強力なデータ分析ツールとなります。ここでは代表的な組み合わせを紹介します。

SORT関数と組み合わせて昇順・降順に並べ替える

UNIQUE関数で抽出した一意の値のリストは、そのままでは元のデータの並び順や、Excelの自動的な並び順になります。これを、特定の順序で並べ替えたい場合は、SORT関数と組み合わせます。

例えば、A1:A10の範囲からユニークな値を抽出し、それを昇順に並べ替えたい場合は、以下の数式を入力します。

=SORT(UNIQUE(A1:A10))

この数式は、まずUNIQUE関数でA1:A10の範囲から一意の値を抽出し、その結果をSORT関数で昇順に並べ替えます。降順にしたい場合は、SORT関数の第2引数に-1を指定します。

=SORT(UNIQUE(A1:A10),-1)

FILTER関数と組み合わせて条件に合う一意の値を抽出する

特定の条件に合致するデータだけから、さらに一意の値を抽出したい場合は、FILTER関数とUNIQUE関数を組み合わせます。

例えば、A列に商品名、B列にカテゴリーが入っているデータ(A1:B10)で、「カテゴリー」が「果物」である商品名の中から、ユニークなものを抽出したいとします。

=UNIQUE(FILTER(A1:B10,B1:B10=”果物”))

この数式は、まずFILTER関数でB列が「果物」である行のA列(商品名)を抽出します。次に、UNIQUE関数でその結果から重複しない値だけを抽出します。FILTER関数は、条件に合うデータがない場合にエラーを返すことがあるため、IFERROR関数と組み合わせることも一般的です。

=IFERROR(UNIQUE(FILTER(A1:B10,B1:B10=”果物”)),”該当なし”)

COUNTA関数と組み合わせてユニークな値の数を数える

データの中から重複しない値がいくつあるかを知りたい場合は、COUNTA関数とUNIQUE関数を組み合わせます。

=COUNTA(UNIQUE(A1:A10))

この数式は、UNIQUE関数で重複しない値のリストを作成し、COUNTA関数でそのリストのセルの数を数えます。これにより、データ全体に含まれるユニークな項目の総数を簡単に把握できます。

UNIQUE関数が利用できない場合と代替策

UNIQUE関数は、比較的新しい関数であるため、すべてのExcelバージョンで利用できるわけではありません。お使いのExcelのバージョンによっては、この関数が存在しない場合があります。

Excelのバージョンを確認する

UNIQUE関数は、Excel for Microsoft 365、Excel 2021以降で利用可能です。Excel 2019以前のバージョンでは、この関数は搭載されていません。

代替策1:重複の削除機能を使う

UNIQUE関数が使えない環境では、Excelの標準機能である「重複の削除」機能を利用するのが最も簡単な代替策です。

  1. 対象範囲を選択する
    重複しない値だけを抽出したいデータ範囲を選択します。
  2. 「重複の削除」機能を開く
    「データ」タブの「データツール」グループにある「重複の削除」をクリックします。
  3. 列を選択して実行する
    「列」ダイアログボックスが表示されるので、重複を削除したい列にチェックを入れて「OK」をクリックします。

この機能は、選択した範囲から重複する値を持つ行を削除し、一意の値だけを残します。ただし、この操作は元のデータを直接変更してしまうため、作業前にデータのバックアップを取るか、コピーしたデータに対して実行することをお勧めします。

代替策2:FILTER関数とCOUNTIF関数を組み合わせる(配列数式)

Excel 2019以前のバージョンでも、FILTER関数とCOUNTIF関数を組み合わせた配列数式(CSE数式)を使うことで、同様の処理を実現できます。

例えば、A1:A10の範囲から重複しない値を抽出する場合、まず空のセルに以下の数式を入力します。

=FILTER(A1:A10,COUNTIF(OFFSET(A$1,0,0,ROW(A1)-ROW(A$1)+1),A1:A10)=1)

この数式を入力した後、Ctrl+Shift+Enterキーを同時に押して確定します(CSE数式)。これにより、配列数式として認識され、重複しない値が抽出されます。

この方法は、UNIQUE関数に比べて数式が複雑になり、理解しにくいというデメリットがあります。また、Excel 2019以前のバージョンでは、動的配列機能がないため、結果がスピルせず、手動で数式をコピーペーストする必要があります。

UNIQUE関数使用時の注意点とよくある質問

UNIQUE関数は非常に便利ですが、いくつか注意しておきたい点や、よくある質問があります。

スピル範囲にデータがあるとエラーになる

UNIQUE関数は、結果を複数のセルに自動的に展開(スピル)します。もし、UNIQUE関数を入力したセルの下や右側に、すでにデータが入っている場合、「スピル範囲にデータがあります」というエラー(#SPILL!エラー)が発生します。このエラーを解消するには、スピル範囲に重なっているデータを削除するか、UNIQUE関数を入力するセルを変更してください。

大文字・小文字は区別されない

UNIQUE関数は、文字列の大文字と小文字を区別しません。例えば、「Apple」と「apple」は同じ値として扱われ、どちらか一方のみが抽出されます。

空白セルやエラー値の扱い

UNIQUE関数は、配列内に空白セルやエラー値が含まれている場合も、それらを一意の値として抽出します。例えば、空白セルも1つの「ユニークな値」としてリストに含まれることがあります。エラー値も同様に抽出されます。

もし、空白セルや特定のエラー値を除外したい場合は、FILTER関数やIFERROR関数と組み合わせて、事前に除外処理を行う必要があります。

UNIQUE関数で抽出したリストを編集したい場合

UNIQUE関数によってスピルされたリストは、個々のセルを直接編集しようとするとエラーになります。リスト全体を編集したい場合は、UNIQUE関数の数式が入力されている元のセルを編集する必要があります。リストの一部だけを削除したい場合は、UNIQUE関数そのものを削除するか、スピル範囲全体を削除する必要があります。

UNIQUE関数とVLOOKUP/XLOOKUP関数の使い分け

UNIQUE関数は、データから一意のリストを作成するのに役立ちますが、そのリストを使って情報を検索したい場合は、VLOOKUP関数やXLOOKUP関数と組み合わせて使用します。

機能 UNIQUE関数 VLOOKUP関数 XLOOKUP関数
主な目的 重複しない値のリスト作成 範囲の左端列で値を検索し、同じ行の別列の値を取得 範囲内で値を検索し、対応する値を取得(より高機能)
返り値 一意の値の配列 検索値が見つかった行の指定列の値 検索値が見つかった列の対応する値
検索方向 該当なし 左から右のみ 双方向(左右)
重複の扱い 重複を排除する 最初に見つかった値を返す 最初に見つかった値を返す(または複数返せる)
Excelバージョン Microsoft 365, 2021以降 全バージョン Microsoft 365, 2021以降

UNIQUE関数は、まずデータソースからユニークなリストを作成し、そのリストをVLOOKUP関数やXLOOKUP関数の検索値として使用することで、より高度なデータ分析が可能になります。

まとめ

本記事では、ExcelのUNIQUE関数を使って、重複しない一意の値を効率的に抽出する方法を解説しました。

UNIQUE関数を使えば、面倒な手作業で重複を削除する手間が省け、常に最新の一意の値リストを自動で維持できます。

さらに、SORT関数やFILTER関数と組み合わせることで、データの並べ替えや条件付き抽出も容易になります。

お使いのExcelバージョンでUNIQUE関数が利用できない場合でも、「重複の削除」機能や、FILTER関数とCOUNTIF関数を組み合わせた配列数式で代替可能です。

ぜひUNIQUE関数を活用して、Excelでのデータ整理・分析業務の効率化を図ってみてください。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】