UNIQUE関数の使い方・読み方|重複を除いた一覧を作る

執筆者:

カテゴリ:

UNIQUE関数の使い方・読み方のイメージ

配列・抽出

UNIQUE関数の使い方・読み方

Excel関数辞典

読み方:UNIQUE は「ユニーク」と読みます。(一般的な読み方です。公式に読み仮名の定めはありません)

UNIQUEは、重複を除いた一覧を返す関数です。

使える環境Excel○Googleスプレッドシート○
このページの中身(25項目)
  1. 書式
  2. 基本の使い方
  3. 空行が入る原因と対処
  4. 複数列での重複判定
  5. 件数を数える
  6. 集計表の行見出しを作る
  7. 重複している値のほうを知りたい
  8. 実際に重複行を削除したい
  9. エラーの対処
  10. Excelとの違い
  11. 重複を除くという処理の位置づけ
  12. 完全に一致する行だけが除かれる
  13. 一度だけ現れるものを取り出す
  14. 並べ替えや抽出と組み合わせる
  15. 選択肢を実データから自動生成する
  16. 「配列・抽出」の関数を全体から見る
  17. 数式を書く前の手順
  18. どの関数でも共通する確認
  19. 引き継ぐときに残すこと
  20. このサイトの収録状況
  21. よくある質問
  22. まとめ
  23. 関連する関数
  24. UNIQUE でエラーが出たときの読み方
  25. 並べ替えと件数を一緒に出す

この記事の書式と対応環境の出どころ(2026-08-26 確認)

関数の仕様は追加・変更されることがあります。書式が合わないときは、上の公式ページで最新をご確認ください。

「支店の一覧が欲しい」「登場した商品名だけ知りたい」というときに、1つの数式で済みます。元の表には手を触れません。

UNIQUE関数の使い方の記事構成図
UNIQUE関数の使い方:この記事で扱う内容

書式

=UNIQUE(範囲)

引数は範囲だけです。

基本の使い方

A
1東京
2大阪
3東京
4名古屋
5大阪
=UNIQUE(A1:A5)

結果: 東京 / 大阪 / 名古屋

出てきた順番が保たれます

五十音順にはなりません。並べ替えたいなら SORT で包みます。

=SORT(UNIQUE(A1:A5))
UNIQUE関数の使い方の要点図
UNIQUE関数の使い方

空行が入る原因と対処

範囲を A2:A1000 のように大きく取ると、空欄も1つの値として結果に含まれます。

対処は FILTER で空を除くことです。

=UNIQUE(FILTER(A2:A1000, A2:A1000<>""))

この形が実用上の基本形になります。列全体(A:A)を使うときは特に必要です。

複数列での重複判定

範囲を複数列にすると、行全体が同じものだけを重複と見なします。

AB
1東京A
2東京B
3東京A
=UNIQUE(A1:B3)

結果: 東京/A、東京/B の2行。1行目と3行目が同一なので1つにまとまります。

「支店 × 商品」の組み合わせ一覧が作りたいときに使えます。

件数を数える

重複を除いた件数は COUNTA と組み合わせます。

=COUNTA(UNIQUE(A2:A100))

空欄を除くなら FILTER を挟んでください。

=COUNTA(UNIQUE(FILTER(A2:A100, A2:A100<>"")))

集計表の行見出しを作る

条件付きの集計表を作るとき、行見出しに何を並べるかという問題があります。手で入力すると、区分が増えたときに追加が必要です。

重複を除く関数を使えば、実データから区分の一覧を自動生成できます。その横に条件付きの集計を並べれば、区分が増えても自動で行が増える集計表になります。

このとき、集計の数式も自動で伸びる必要があります。一本の数式で列全体を処理する書き方を使えば、行見出しが増えたときに集計も追従します。

並べ替えを組み合わせれば、区分が五十音順や件数順に並びます。集計結果の大きい順に並べたい場合は、集計してから並べ替える必要があるため、構成がやや複雑になります。

この仕組みは、ピボットテーブルの代わりとして機能します。更新の操作が不要で、他のセルから参照しやすいという利点があります。一方、区分が非常に多い場合や、集計の軸を頻繁に変える場合は、ピボットのほうが向いています。

用途に応じて選んでください。固定の集計を定期的に出すなら数式、探索的に見方を変えるならピボット、という使い分けが実務的です。

UNIQUEの実務での主な用途がこれです。

E2に  =UNIQUE(FILTER(A2:A1000, A2:A1000<>""))
F2に  =ARRAYFORMULA(IF(E2:E="", "", SUMIF(A:A, E2:E, C:C)))

支店の一覧が自動で作られ、その横に合計が出ます

新しい支店のデータが増えても、一覧が自動で伸びます。

ただし、この用途なら QUERY 1行のほうが短く書けます。

=QUERY(A:C, "select A, sum(C) where A <> '' group by A", 1)

集計まで含むならQUERY、一覧だけならUNIQUE、という使い分けになります。


重複している値のほうを知りたい

UNIQUEは重複を「除く」関数なので、逆はできません。重複しているものを見つけるなら COUNTIF を使います。

=IF(COUNTIF(A:A, A2) > 1, "重複", "")

重複している値の一覧が欲しいなら、組み合わせます。

=UNIQUE(FILTER(A2:A100, COUNTIF(A2:A100, A2:A100) > 1))

実際に重複行を削除したい

UNIQUEは表示するだけで、元データは変わりません。元データから重複を消したいなら、次のいずれかです。

  • メニューの「データ → データクリーンアップ → 重複を削除」
  • UNIQUEの結果をコピーして「値のみ貼り付け」で置き換える

元データを直接いじる前に、必ずコピーを取ってください

UNIQUEで結果を確認してから実行するのが安全です。

エラーの対処

#REF! が出る

結果の展開先にデータが入っています

UNIQUEは下方向に結果を広げるため、その領域が空いている必要があります。

空欄が結果に含まれる

FILTER で <>"" を指定してください。

同じに見えるのに別扱いされる

  • 前後にスペースが入っている("東京 " と "東京")
  • 全角と半角が違う
  • 数値と文字列が混ざっている

TRIM で整えると解決することが多いです。

=UNIQUE(ARRAYFORMULA(TRIM(A2:A100)))

大文字小文字が区別されない

UNIQUEは大文字小文字を区別しません。"abc" と "ABC" は同じ値として扱われます。区別したい場合は、EXACT を使った判定に置き換える必要があります。

Excelとの違い

Excelにも UNIQUE があります(Microsoft 365 / Excel 2021以降)。書式はほぼ同じですが、Excelには追加の引数があります。

Excelスプレッドシート
列方向の重複除去第2引数で指定可範囲の向きで決まる
1回だけ出現した値のみ第3引数で指定可無い

Excel 2019以前では使えないので、その場合は「重複の削除」機能か、COUNTIF を使った作業列で対応します。


重複を除くという処理の位置づけ

一覧から重複を取り除く作業は、集計の前段としてほぼ必ず必要になります。担当者の一覧を作る、取引先の種類を数える、商品分類の選択肢を用意する。いずれも重複を除いた一覧が出発点です。

従来は、専用の機能で重複を削除するか、条件付き書式で色を付けて手作業で消すか、作業列で判定してから絞り込むという手順を踏んでいました。いずれも一度きりの処理で、元データが更新されればやり直しになります。

重複を除く関数を使うと、この処理が数式になります。元データが増えれば結果も自動的に更新されます。担当者が増えたら一覧にも追加され、いなくなれば消えます。手作業の工程がまるごと不要になります。

この違いは、運用の性質を変えます。月次で手順書どおりに作業していたものが、シートを開くだけで最新になります。作業漏れという事故が構造的に起きなくなります。


完全に一致する行だけが除かれる

複数列を対象にした場合、重複と判定されるのは、指定した範囲のすべての列が一致する行だけです。一部の列だけが同じでも、別の行として残ります。

これは意図と食い違うことがあります。たとえば、担当者と商品分類の二列を指定した場合、同じ担当者でも商品分類が違えば別の行として残ります。担当者の一覧が欲しかったのであれば、担当者の列だけを対象にする必要があります。

範囲の指定を間違えると、想定より多くの行が返ります。結果が思ったより多いときは、まず対象の列数を確認してください。

逆に、複数列の組み合わせで重複を判定したい場合は、この動きが正解です。担当者と月の組み合わせが重複していないかを調べる、といった用途に使えます。

なお、大文字と小文字は区別されません。同じ綴りで大文字小文字だけが違う値は、同じものとして扱われます。区別が必要な場合は、別の方法を考える必要があります。


一度だけ現れるものを取り出す

重複を除く関数には、動作を変える引数があります。既定では、重複しているものを一つにまとめて、すべての種類を返します。もう一つのモードでは、一度しか現れない値だけを返します。

この二つは意味がまったく違います。前者は「どんな種類があるか」を知るための処理です。後者は「他とかぶっていないものはどれか」を知るための処理です。

後者が役に立つのは、突き合わせの作業です。二つの一覧を縦につないで、一度しか現れないものを取り出せば、片方にしかない項目が分かります。名簿の差分を取る、在庫と台帳を照合する、といった用途で使えます。

引数の指定を間違えると、意図とまったく違う結果が返ります。件数が極端に少ない場合は、この引数を疑ってください。


並べ替えや抽出と組み合わせる

重複を除いた結果は、そのまま他の関数に渡せます。この組み合わせで、集計の前処理がひととおり数式で書けるようになります。

結果を五十音順や昇順に並べたいなら、並べ替えの関数で包みます。プルダウンの選択肢として使う一覧なら、並んでいたほうが選びやすくなります。

条件に合う行だけから重複を除きたいなら、抽出の関数で絞ってから渡します。特定の期間の担当者一覧、といった処理ができます。

さらに、重複を除いた一覧の横に、条件付きの集計を並べると、集計表が完成します。担当者ごとの件数や合計を、担当者が増えても自動で追従する形で作れます。

この構成は、ピボットテーブルの代わりとして使えます。更新の操作が不要で、他のセルから参照しやすいという利点があります。→ FILTER関数の使い方 / SORT関数の使い方


選択肢を実データから自動生成する

重複を除く関数の実務的な使い道として、プルダウンの選択肢を自動生成する方法があります。

実データの担当者列から重複を除けば、実際に存在する担当者の一覧になります。この一覧をプルダウンの参照先に指定すれば、担当者が増えたときに自動で選択肢に加わります。手で候補を管理する必要がなくなります。

並べ替えの関数と組み合わせれば、一覧が整った順序で表示されます。選ぶ側にとっても探しやすくなります。

注意点として、実データに表記ゆれがあると、それがそのまま選択肢に現れます。「東京」と「東京都」が両方存在すれば、両方が候補になります。したがって、この方法は表記が統一されていることが前提です。

逆の順序で考えると、プルダウンで入力させることで表記が統一され、その結果を選択肢として使える、という循環になります。最初の一覧だけを手で整えれば、以降は自動で回ります。

新しい値を追加したい場合は、実データに一件入力すれば選択肢に加わります。専用の一覧を別途管理する必要がありません。


「配列・抽出」の関数を全体から見る

配列・抽出に含まれる関数を、全体から見ておきます。同じカテゴリの関数は、つまずく場所も似ています。この記事のほかに9本あります。

記事
ARRAYFORMULA
ARRAY_CONSTRAIN
FILTER
FLATTEN
QUERY
SEQUENCE
SORT
SORTN
TRANSPOSE

このカテゴリで共通するつまずき

展開先が空いていないと #REF! で止まります。専用のシートに分けてください。1つで理解した内容は、同じカテゴリの他の関数にもそのまま使えます。

どれを使うかの決め方

元の表を変えずに別の見え方を作れるのが利点です。関数の一覧を眺めて選ぼうとすると、どれも当てはまるように見えて決まりません。

迷ったときは

→ 全関数の一覧 に目的別の索引があります。


数式を書く前の手順

手順を分けると、どこで詰まっているかが分かります。

1. 出したい結果を一文で書く

「何を、どの条件で、どんな形で出したいか」。この一文が書ければ、関数はほぼ決まります。書けないなら、まだ要件が固まっていません。

2. 元データの型を確認する

展開先が空いていないと #REF! で止まります。専用のシートに分けてください。=ISNUMBER(A2) で数値かどうかを確認できます。見た目が同じでも、数値と文字列は別物です。

3. 空欄と0の扱いを決める

未入力なのか、実績が0なのか。表の意味が変わります。どちらとして扱うかを決めてから書いてください。

4. 条件の数を数える

元の表を変えずに別の見え方を作れるのが利点です。将来条件が増える可能性があるなら、最初から複数条件に対応する形にしてください。

5. 共有先の環境を確認する

新しい関数は、古い環境で開くとエラーになります。社外に渡すファイルでは、この一点で選択肢が変わります。

6. 1行だけ書いて確認する

全行にコピーする前に、1行分の結果が正しいかを見てください。間違ったまま広げると、直す手間が増えます。


どの関数でも共通する確認

以下は、どの関数を使っていても同じです。

参照を固定したか

下方向にコピーする数式では、動いてはいけない参照を固定します。上の数行だけ見て判断しないでください。ずれは下のほうで表面化します。

範囲の行数が揃っているか

複数の範囲を渡す関数では、行数がずれると結果が狂います。エラーにならず値が返るため、気づきにくい種類の間違いです。

型が揃っているか

=ISNUMBER(A2)

数値として入っているかを判定します。システムから書き出したデータでは、これが原因のことが多くあります。

前後に空白が入っていないか

=LEN(A2)&" / "&LEN(TRIM(A2))

数が違えば、余分な空白が入っています。見た目では判別できません。

別の方法で検算したか

同じ数字を別の関数でも出して、突き合わせてください。1つの結果だけを見ても、正しいかどうかは判断できません。

最終行まで確認したか

一番下までスクロールして、結果を見てください。途中から値が変わっていないかを確認します。


引き継ぐときに残すこと

数式は動いていても、意図は残りません。渡す前に、次の点をシート内にメモしてください。3分で終わります。

何を出している数式か

一行で構いません。読めば分かると思っても、数か月後の自分には分かりません。

どの表を参照しているか

参照先のシート名と、更新の担当。別ファイルなら、その場所も書いてください。

該当しないときの扱い

空欄にしているのか、文言を出しているのか、エラーのまま残しているのか。書いていないと、受け取った側は空欄をデータなしと読みます。

触ってはいけない場所

列を挿入すると壊れる数式がある場合、必ず書き残してください。この一行があるだけで、引き継ぎ後の事故が大きく減ります。

使った関数の対応環境

新しい関数を使っている場合、古い環境では開けません。共有の範囲が広がる可能性があるなら、明記してください。

確定した期間は値にする

締めた月の集計は、値貼り付けにしてください。参照元を消しても壊れなくなり、ファイルも軽くなります。

このサイトの収録状況

全201本を、次のカテゴリに分けて収録しています。

カテゴリ記事数
目的別51本
集計47本
文字列31本
日付19本
検索・参照15本
条件15本
機能12本
配列・抽出10本 ←この記事
関数一覧1本

探し方の順番

関数名が分かっているなら検索窓から。やりたいことだけ決まっているなら「目的別」から。近い関数を比べたいなら、同じカテゴリの一覧から入ってください。

記事の構成

どの記事も、書式・実例・つまずきやすいところ・似た関数との使い分けを同じ順番で並べています。1本読めば、他の記事も同じ場所を探せます。


よくある質問

Q. 結果が展開されずエラーになります

あふれる先に何か入っています。下方向と右方向を空にしてください。目に見えない空白文字が残っていることもあります。

Q. 空白も一つの値として返ります

対象範囲に空白セルが含まれています。抽出の関数で空白を除いてから渡すか、範囲をデータのある部分に絞ってください。

Q. 件数を数えたいのですが

重複を除いた結果を、件数を数える関数で包んでください。種類の数が分かります。

Q. 大文字と小文字を区別したいのですが

この関数では区別されません。区別が必要な場合は、別の方法を検討してください。

Q. 横方向でも使えますか

対象の方向を指定する引数があります。横並びのデータにも対応できます。

Q. 元データを消したら結果も消えました

結果は元データと連動しています。固定したい場合は値として貼り付けてください。

Q. 古い環境でも使えますか

比較的新しい関数のため、古い環境では使えません。共有相手の環境を確認してください。使えない場合は、専用の機能や作業列での判定になります。

Q. 重複している行だけを知りたいのですが

件数を数える関数で、各行が何回現れるかを数え、二以上のものを抽出してください。→ 重複を削除・抽出する方法



まとめ

  • 書式は =UNIQUE(範囲)。出てきた順が保たれる
  • 実用上の基本形は =UNIQUE(FILTER(A2:A, A2:A<>""))
  • 複数列を指定すると、行全体が同じものを重複と見なす
  • 件数は =COUNTA(UNIQUE(...))
  • 集計まで含むなら QUERY のほうが短い
  • 元データは変わらない。削除したいならメニュー機能を使う

関連する関数

UNIQUE でエラーが出たときの読み方

Excelで #SPILL! が出る

UNIQUE の結果は複数のセルに広がります。 広がる先に何か入っていると #SPILL! になります。 結果を書き出す下方向・右方向を空けてください。 見えない空白が入っているだけでも止まります。

Excelで #NAME? が出る

UNIQUE は Excel 365 / 2021 以降の関数です。 それより前の環境で開くと #NAME? になります。 社外に渡すファイルでは、この1点で使う関数が変わります。 古い環境向けには「データ → 重複の削除」で対応してください。

重複しているはずなのに、別々に出てくる

UNIQUE は文字として比較します。 末尾の空白、全角と半角、大文字と小文字(※UNIQUEは区別しません)などで 別物として扱われることがあります。 =UNIQUE(TRIM(範囲)) のように整えてから渡してください。

整え方は #VALUE!エラーの直し方 の 「見えない文字の一覧」にまとめています。

並べ替えと件数を一緒に出す

一覧を作るだけでなく、件数まで欲しい場面が多いはずです。

=SORT(UNIQUE(A2:A100),1,TRUE) で並べ替えた一覧になります。 その隣に =COUNTIF($A$2:$A$100,D2) を置けば件数が出ます。

Googleスプレッドシートなら QUERY 1本でも書けます。

=QUERY(A2:A100,"select Col1, count(Col1) group by Col1 order by count(Col1) desc",0)

件数の多い順に並んだ一覧が、1つの数式で出ます。