※本ページにはプロモーション(広告)が含まれています
Excel 365およびExcel for the webで利用可能な動的配列関数。指定範囲から重複を除いたユニークな値のリストを自動的に返し、結果はスピル機能で複数セルへ展開される。データ集計や名簿作成で活躍する強力な関数。
詳しい解説
UNIQUE関数(ユニーク関数)とは、Microsoft Excel 365、Excel 2021以降、Excel for the web、Excel for Macで利用可能な動的配列関数の一つで、指定した範囲から重複を除外したユニークな値のリストを返す関数です。従来は「データ」タブの「重複の削除」機能やピボットテーブル、配列数式を使って重複除外を行う必要がありましたが、UNIQUE関数は1つの数式で動的に結果を返し、元データが変わると自動的にユニークリストも更新されるため、データ集計や名簿作成、分析作業を劇的に効率化します。
## 基本構文
UNIQUE関数の構文は次の通りです。
=UNIQUE(配列, [列の比較], [回数指定])
第1引数の「配列」が必須で、ユニーク値を抽出したい範囲を指定します。第2引数の「列の比較」と第3引数の「回数指定」はオプションで、省略可能です。
## 引数の詳細
第1引数「配列」は、重複除外の対象となるセル範囲または配列です。A2:A100のような縦方向の範囲、B1:Z1のような横方向の範囲、A2:C100のような複数列範囲も指定できます。
第2引数「列の比較」は省略するとFALSE(既定値)となり、行方向で比較します。TRUEを指定すると列方向で比較し、横並びデータからユニークな列を抽出します。
第3引数「回数指定」は省略するとFALSE(既定値)で、すべてのユニーク値を返します。TRUEを指定すると、配列内で1回しか出現しない値(一意な値)のみを返します。複数回出現する値は除外されるため、「重複していない値」を抽出したい場合に便利です。
## スピル動作
UNIQUE関数の最大の特徴は「スピル」(spill)機能による動的展開です。数式を1つのセルに入力するだけで、結果が必要なセル数に応じて自動的に下方向や右方向へ展開されます。展開されたセルは「ゴースト」として表示され、元のセル(=UNIQUE(…)を入力したセル)以外は数式を編集できません。
スピル範囲を参照する際は、起点セルに「#」を付けてA2#のように記述すると、スピル全体を動的に参照できます。元データが増減してもA2#は常にスピル全体を指すため、グラフや他の関数との連携で重宝します。
スピル先のセルにすでに値が入っていると、UNIQUE関数は#SPILL!エラーを返します。エラーを解消するには、スピル予定範囲のセルをすべてクリアします。
## FILTER関数との連携
UNIQUE関数はFILTER関数と組み合わせると強力です。FILTER関数で条件に合う行を抽出し、その結果からUNIQUE関数でユニーク値を取り出すパターンが頻出します。
=UNIQUE(FILTER(A2:A100, B2:B100="東京"))
この数式はB列が「東京」の行だけを抽出し、A列からユニークな値を返します。営業所別、担当者別、商品カテゴリ別の分析で活躍します。
## SORT関数との連携
UNIQUE関数の結果はデータの出現順序を保持するため、五十音順やABC順に並べたい場合はSORT関数でラップします。
=SORT(UNIQUE(A2:A100))
降順にしたい場合は=SORT(UNIQUE(A2:A100), 1, -1)と指定します。商品マスタや顧客リストの生成で便利です。
## 重複削除機能との違い
「データ」タブの「重複の削除」機能とUNIQUE関数は似ていますが、動作が大きく異なります。
重複削除機能は元データを破壊的に変更し、削除した重複行は元に戻せません(Ctrl+Zでの直後の取り消しを除く)。一方、UNIQUE関数は元データに影響を与えず、別セル範囲に結果を表示するため、元データを保護したまま分析できます。
また、重複削除は手動操作(クリック)が必要ですが、UNIQUE関数は数式なので元データが変わると自動更新されます。リアルタイム集計やダッシュボード作成では、UNIQUE関数の方が圧倒的に有利です。
## 列方向/行方向の処理
第2引数「列の比較」をTRUEにすると、列方向で重複比較を行います。たとえば、A1:E1のように1行に値が並んだ範囲から、ユニークな列だけ抽出する場合に使います。
=UNIQUE(A1:E1, TRUE)
このとき、結果も横方向にスピルされます。データのレイアウトに応じて使い分けると、転置不要で重複除外できます。
## Excel for Mac対応
UNIQUE関数はExcel for Mac(Microsoft 365版)でも利用可能です。Mac版でも動作仕様は同じで、スピル機能、FILTER/SORT連携、列方向処理すべて使えます。
ただし、Mac版の永続ライセンス版(Excel 2019以前)ではUNIQUE関数は使えません。Excel 2021 for Mac以降、またはMicrosoft 365サブスクリプションが必要です。
## トラブル対処
UNIQUE関数でよくあるトラブルは次の通りです。
#NAME?エラーが出る場合は、Excelのバージョンが古くUNIQUE関数に対応していない可能性があります。ファイル形式が.xls(旧形式)の場合も動作しないため、.xlsxに変換します。
#SPILL!エラーは、スピル範囲のセルにすでに値が入っているか、結合セルがある場合に発生します。スピル予定範囲をクリアするか、結合を解除します。
空白セルが「0」として表示される場合は、UNIQUE関数が空白を0と認識するためです。空白を除外したい場合は、=UNIQUE(FILTER(A2:A100, A2:A100<>""))のようにFILTER関数で空白を除外します。
結果が更新されない場合は、計算モードが「手動」になっている可能性があります。「数式」タブで「計算方法の設定」を「自動」に切り替えます。
## 応用例
UNIQUE関数は実務で次のような場面で活躍します。①顧客マスタからユニークな企業名を抽出し、ドロップダウンリストの選択肢を動的生成。②売上データから扱った商品コードのユニークリストを作り、商品別集計の基礎データに利用。③アンケート結果から回答のユニークパターンを抽出し、選択肢の傾向分析。④複数シートのデータを統合した後、重複行を除外して一覧化。⑤勤怠データから出勤日のユニークリストを作り、稼働日数カウントの基礎に利用。データクレンジングや前処理の多くがUNIQUE関数1つで完結します。
営業部の顧客リスト(A2:A500に企業名)から、重複を除いた取引先一覧を作成するケース。セルC2に「=SORT(UNIQUE(A2:A500))」と入力するだけで、五十音順にソートされた取引先のユニークリストがC列に自動展開されます。元の顧客リストに新しい企業名を追加すると、C列のリストも自動更新されるため、メンテナンス不要のマスタリストとして活用できます。さらに、東京の顧客だけを抽出したい場合は「=SORT(UNIQUE(FILTER(A2:A500, B2:B500="東京")))」と書けば、B列が「東京」の行だけからユニークな企業名を五十音順で取得できます。ピボットテーブルや重複削除機能を使うより圧倒的に速く、元データも壊さないため、分析作業の標準パターンとして定着しています。
別の呼び方
UNIQUE関数
ユニーク関数
重複除外関数
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!