「リストから重複を取り除いて、一覧を整理したい」。データ整理をしていると、こんな場面がよくありますよね。
手作業で1行ずつ確認して削除するのは、件数が多いと現実的ではありません。しかも、元データを壊してしまうリスクもあります。
そんなときに便利なのが UNIQUE関数 です。範囲を指定するだけで、重複のないリストを自動で作成してくれます。
この記事では、UNIQUE関数の基本から、SORT・FILTER・COUNTIFとの組み合わせまで実例つきで紹介します。
UNIQUE関数とは?
UNIQUE関数は、指定した範囲から 重複する値を取り除いて、一意のリストを返す 関数です。
読み方は「ユニーク関数」です。
たとえば、売上データの「商品名」列にノートPCが5回出てきたとします。UNIQUE関数を使えば1回だけ表示されます。
元データはそのまま残るので安心です。
結果は数式を入力したセルから自動で展開(スピル)されます。
NOTE
UNIQUE関数はGoogleスプレッドシート独自の関数です。ExcelにもUNIQUE関数がありますが、引数名が異なります(後述)。また、Excelでは Microsoft 365 または Excel 2021 以降でしか使えません。
UNIQUE関数の書き方
構文
=UNIQUE(範囲, [列方向], [1回のみ])
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 範囲 | 必須 | 重複を除去したいセル範囲(例: A2:A100) |
| 列方向 | 任意 | TRUE = 列単位で重複除去 / FALSE = 行単位(デフォルト) |
| 1回のみ | 任意 | TRUE = 1回だけ出現する値のみ返す / FALSE = 通常の重複除去(デフォルト) |
TIP
引数が3つありますが、ほとんどの場面では 範囲だけ指定すればOK です。
=UNIQUE(A2:A100)のように使います。
引数「列方向」と「1回のみ」の意味
列方向(第2引数) は、データの並び方に合わせて切り替えます。
FALSE(デフォルト): データが縦に並んでいる場合。行単位で重複を判定しますTRUE: データが横に並んでいる場合。列単位で重複を判定します
通常のスプレッドシートではデータは縦に並んでいるので、この引数は省略して大丈夫です。
1回のみ(第3引数) は、少し特殊な使い方です。
FALSE(デフォルト): 重複している値も、最初の1つだけ残しますTRUE: 元データで ちょうど1回しか出現しない値だけ を返します。2回以上出現する値はすべて除外されます
「重複していないデータだけ見たい」という場面で TRUE が役立ちます。
UNIQUE関数の基本的な使い方
1列の重複を削除する
次のような売上データで説明します。
| A列(商品名) | B列(金額) | |
|---|---|---|
| 2行目 | ノートPC | 150000 |
| 3行目 | モニター | 45000 |
| 4行目 | ノートPC | 140000 |
| 5行目 | キーボード | 8000 |
| 6行目 | モニター | 32000 |
| 7行目 | マウス | 3000 |
A列の商品名から重複のないリストを作るには、空いているセル(たとえばD2)に次の数式を入力します。
=UNIQUE(A2:A7)
結果はこうなります。
| D列 |
|---|
| ノートPC |
| モニター |
| キーボード |
| マウス |
「ノートPC」と「モニター」がそれぞれ2回ずつ出てきていますが、UNIQUE関数が1つにまとめてくれました。
複数列の組み合わせで重複削除する
範囲に複数列を指定すると、すべての列が完全に一致する行 を重複と判定します。
たとえば「担当者 + 商品名」の組み合わせで重複を除去する場合です。
| A列(担当者) | B列(商品名) | |
|---|---|---|
| 2行目 | 田中 | ノートPC |
| 3行目 | 佐藤 | モニター |
| 4行目 | 田中 | ノートPC |
| 5行目 | 田中 | キーボード |
=UNIQUE(A2:B5)
| D列 | E列 |
|---|---|
| 田中 | ノートPC |
| 佐藤 | モニター |
| 田中 | キーボード |
3行目の「田中 + ノートPC」は2行目と完全一致するため除外されました。
一方、「田中 + キーボード」は商品名が異なるので残っています。
NOTE
UNIQUE関数は 大文字と小文字を区別しません。「Apple」と「apple」は同じ値として扱われます。
UNIQUE関数の実践的な使い方・応用例
パターン1:SORT+UNIQUEで五十音順のリストを作る
UNIQUE関数の結果は元データの並び順のままです。
五十音順やアルファベット順に並べたいときは、SORT関数と組み合わせましょう。
=SORT(UNIQUE(A2:A100))
UNIQUE関数で重複を取り除き、SORT関数で昇順に並べ替えます。プルダウンの選択肢リストを作るときに便利です。
パターン2:FILTER+UNIQUEで条件付きの一意リストを作る
「東京支店の商品名だけのユニークリスト」のように、条件を付けたい場合です。
FILTER関数で先に絞り込んでからUNIQUEに渡します。
=UNIQUE(FILTER(C2:C100, B2:B100="東京"))
FILTER関数でB列が「東京」の行だけを抽出します。そのC列(商品名)の重複を除去する流れです。
FILTER → UNIQUE の順番がポイントです。
パターン3:COUNTIF+UNIQUEで重複チェック表を作る
各値が元データに何回出現するかを一覧表にできます。COUNTIF関数と組み合わせます。
D2に次の数式を入力して、ユニークリストを作ります。
=UNIQUE(A2:A100)
E2に、そのユニーク値ごとの出現回数を表示します。
=COUNTIF(A$2:A$100, D2)
E2を下方向にコピーすれば、各値の件数が一覧で確認できます。
TIP
もっとスマートに書くなら、1つの数式でまとめる方法もあります。
=COUNTIF(A2:A100, UNIQUE(A2:A100))とすると、UNIQUEの結果に対応するカウントが自動でスピルします。
パターン4:プルダウンの選択肢を自動更新する
UNIQUE関数を使えば、データの入力状況に応じて プルダウンの選択肢を自動更新 できます。
- 空いているセル(例: Z2)に
=SORT(UNIQUE(A2:A100))と入力 - データの入力規則を設定するセルを選択
- メニューから「データ」→「データの入力規則」を開く
- 条件を「プルダウン(範囲内)」にして、Z2から始まる範囲を指定
商品名や担当者名が増えても、プルダウンの選択肢が自動で更新されます。
パターン5:ユニーク件数をカウントする
重複を除いた件数(種類数)だけを知りたい場合は、COUNTA関数やROWS関数を使います。
=COUNTA(UNIQUE(A2:A100))
たとえば商品名が100行あっても、種類が5つなら「5」が返ります。
空白セルが混ざっている可能性がある場合は、先にFILTERで除外しておきましょう。
=COUNTA(UNIQUE(FILTER(A2:A100, A2:A100<>"")))
よくあるエラーと対処法
| エラー / 症状 | 原因 | 対処法 |
|---|---|---|
#REF! | 結果を展開するセルにデータがある | スピル先のセルをクリアするか、数式を空き領域に移動する |
| 空白行が結果に含まれる | 元の範囲に空白セルがある | =UNIQUE(FILTER(A2:A100, A2:A100<>"")) で空白を除外する |
| 「Apple」と「apple」が1つになる | 大文字小文字を区別しない仕様 | 区別が必要な場合はEXACT関数で個別に判定する |
| 期待より多くの値が除外される | 第3引数が TRUE になっている | 引数を FALSE に戻すか省略する |
TIP
#REF!エラーはスピル関数で最もよくあるエラーです。UNIQUE関数の結果が展開される先にデータがあると発生します。出力先の下方向に十分な空きを確保してください。
ExcelのUNIQUE関数との違い
スプレッドシートとExcelのUNIQUE関数は、基本的な動作は同じですが引数名が異なります。
| 比較項目 | Googleスプレッドシート | Excel(Microsoft 365) |
|---|---|---|
| 構文 | =UNIQUE(範囲, 列方向, 1回のみ) | =UNIQUE(配列, 列の比較, 回数指定) |
| 引数名 | by_column | by_col |
| 利用可能な環境 | 全ユーザーで利用可能 | Microsoft 365 / Excel 2021 以降のみ |
| 大文字小文字 | 区別しない | 区別しない |
| スピル動作 | すべての関数でスピル可能 | 動的配列対応版(365〜)のみ |
最大の違いは 利用できる環境 です。スプレッドシートではすべてのユーザーが使えます。
一方、Excelでは永続ライセンス版(Excel 2019以前)では使えません。
機能面ではほぼ同じなので、スプレッドシートでUNIQUE関数に慣れておけば、Excelでもそのまま使えます。
まとめ
この記事では、GoogleスプレッドシートのUNIQUE関数の使い方を解説しました。
- UNIQUE関数: 範囲から重複を除去して一意のリストを返す
- 基本の使い方:
=UNIQUE(A2:A100)で範囲を指定するだけ - SORT連携:
=SORT(UNIQUE(...))で五十音順のリストを作成 - FILTER連携:
=UNIQUE(FILTER(...))で条件付きの一意リスト - COUNTIF連携: 各値の出現回数を一覧表にできる
- プルダウン: UNIQUE+SORTで選択肢を自動更新
まずは =UNIQUE(A2:A100) から試してみてください。1列の重複除去ができれば、SORT・FILTERとの組み合わせもすぐに使いこなせます。
この記事を書いた人
biz-tactics編集部。事務職の現場で本当に使えるExcel・スプレッドシート・AIの技を発信しています。
