Menu

UNIQUE関数の使い方: Excelで重複を除いた一覧を作る

=UNIQUE(B2:B8)は、B2:B8の各値を最初に出てきた順に1回ずつ返し、リストが変わると更新されます。重複のない行、exactly_once、並べ替えた一覧、種類の数え方、プルダウンの元にする方法を学びます。

このページのシートはすべて実際に動きます。数値や数式を変えると再計算されます。

=UNIQUE(B2:B8)は、B2:B8の各値を最初に出てきた順に1回ずつ返します。下のシートではNorthが3回、Southが2回出てきますが、結果では各地域が1回だけ並びます。結果はE2から下にスピルし、データを変えると更新されます。B5にWestと入力すると、Eastの行はCaraだけだったので、結果からEastが消えます。

各地域を1回ずつ
E2
ABCDE
1RepRegionSalesRegions
2AnnNorth120North
3BenSouth80South
4AnnNorth90East
5CaraEast150West
6BenSouth80
7DanNorth60
8EveWest95
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

UNIQUEは元のリストを変えません。表そのものから重複する行を削除するには、データタブの「重複の削除」ボタンを使います(両方の方法は重複の削除で紹介しています)。

UNIQUE関数の構文

=UNIQUE(array, [by_col], [exactly_once])
  • array(配列)は値を取り出す範囲か配列です。
  • by_col(列の比較)は、行を比べるならFALSE(既定)、列を比べるならTRUEです。
  • exactly_once(回数指定)は、重複を除いたすべての値を返すならFALSE(既定)、1回だけ出てくる値だけを返すならTRUEです。

UNIQUEにはExcel 2021、Excel 2024、Microsoft 365のいずれかが必要です。それより古いバージョンでは#NAME?になります。Googleスプレッドシートにも、同じ3つの引数を持つUNIQUEがあります。

列を下に並ぶリストではなく行を横に並ぶリストなら、by_colをTRUEにします。=UNIQUE(B1:H1,TRUE)は、その行の重複を除いた値を行として返します。

複数の列で重複しない行を出す

UNIQUEに2つ以上の列を渡すと、行全体を比べます。すべての列がほかの行と一致するときだけ、その行は重複になります。ここでは担当者と地域の組み合わせです:

担当者と地域の重複しない組み合わせ
E2
ABCDEF
1RepRegionSalesRepRegion
2AnnNorth120AnnNorth
3BenSouth80BenSouth
4AnnNorth90CaraEast
5CaraEast150DanNorth
6BenSouth80EveWest
7DanNorth60
8EveWest95
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

AnnとNorth、BenとSouthがそれぞれ2回出てくるので、7行が5行になります。DanもNorthですが、DanとNorthは別の組み合わせなので残ります。3列すべてを指定した=UNIQUE(A2:C8)では、Annの2行は(120と90が違うので)両方残り、2つ目のBen、South、80の行だけが除かれます。

ちょうど1回だけ出てくる値

3つ目の引数を指定すると、問いが「どんな値があるか」から「どの値が繰り返されていないか」に変わります:

重複を除いた担当者と、1回だけの担当者
F2
ABCDEF
1RepRegionSalesDistinctExactly once
2AnnNorth120AnnCara
3BenSouth80BenDan
4AnnNorth90CaraEve
5CaraEast150Dan
6BenSouth80Eve
7DanNorth60
8EveWest95
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

E2は5人の担当者を全員並べます。AnnとBenはそれぞれ2回出てくるので、F2はCara、Dan、Eveだけを並べます。2つのカンマでby_colを飛ばしていて、既定のままです。

並べ替えた重複のない一覧

UNIQUEは最初に出てきた順を保ちます。アルファベット順の一覧にするにはSORTで囲みます。隣ではCOUNTAで重複を除いた値の数を数えています:

AからZ順の地域とその数
E2
ABCDEF
1RepRegionSalesRegions A to ZCount
2AnnNorth120East4
3BenSouth80North
4AnnNorth90South
5CaraEast150West
6BenSouth80
7DanNorth60
8EveWest95
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

E2はEast、North、South、Westを返し、F2は4を表示します。ZからAにするには=SORT(UNIQUE(B2:B8),,-1)を使います。一覧にせずに数えるなら、=ROWS(UNIQUE(B2:B8))でも同じ4になります。UNIQUEのないバージョンのExcel向けの数式は重複を除いた件数を数えるで説明しています。

条件付きのUNIQUE

条件を満たす行からだけ重複を除いた値を取り出すには、先に抽出してから結果をUNIQUEに渡します。90以上の売上が1件でもある担当者です:

90以上の売上がある担当者
E2
ABCDE
1RepRegionSalesReps
2AnnNorth120Ann
3BenSouth80Cara
4AnnNorth90Eve
5CaraEast150
6BenSouth80
7DanNorth60
8EveWest95
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

Annにはそうした売上が2件(120と90)ありますが、1回だけ表示されます。結果はAnn、Cara、Eveです。C3を100に変えると、Benがリストに加わります。複数の条件を掛け合わせるものも含め、FILTERのどの条件でもここで使えます。

UNIQUEをプルダウンリストの元にする

UNIQUEから作ったプルダウンリストは、同じ項目を2回表示することがなく、リストを編集しなくても新しい値を取り込みます。F1をクリックしてリストを開いてください。項目はE列のUNIQUEの結果から来ています。B6にCentralと入力すると、リストに5つ目の項目が現れます。

UNIQUEで埋めたプルダウン
F1
ABCDEF
1RepRegionSalesRegionsNorth
2AnnNorth120North270
3BenSouth80South
4AnnNorth90East
5CaraEast150West
6BenSouth80
7DanNorth60
8EveWest95
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

F2は選んだ地域の売上を合計し、Northなら270です。Excelでは データ > データの入力規則 > リスト で設定し、「元の値」に結果の最初のセルと#を入力します:=$E$2#。#は「スピルした結果全体」という意味なので、リストはUNIQUEと一緒に伸び縮みします。=$E$2:$E$5のような固定の範囲だと、5つ目の地域が漏れます。

練習: 並べ替えた重複のない一覧

やってみよう
E2
ABCDE
1RepRegionSalesRegions
2AnnNorth120
3BenSouth80
4AnnNorth90
5CaraEast150
6BenSouth80
7DanNorth60
8EveWest95
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: E2で、各地域を1回ずつ、AからZの順に並べてください。

同じに見える値をUNIQUEが残す理由

UNIQUEは、大文字と小文字以外は値を厳密に比べます。1回だと思っていた値が2回出てくるときは、セルが目に見えない形で違っています:

  • 末尾のスペース。 "North "と"North"は別の値です。元のデータをTRIMできれいにするか、数式の中でスペースを取り除きます:=UNIQUE(TRIM(B2:B8))。
  • 文字列として保存された数値。 '101と101は同じように見えますが、片方は文字列なので両方残ります。VALUEか データ > 区切り位置 で列を変換します。
  • 大文字と小文字は原因ではない。 UNIQUEは大文字と小文字を区別しないので、appleとAppleは同じ値として数え、結果には最初に出てきた綴りが残ります。
=UNIQUE({"apple";"Apple";"North ";"North"})

Excelではこれが3つの値を返します。apple、末尾にスペースのある"North "、そしてNorthです。

よくある質問

ExcelのUNIQUE関数は何をする関数ですか?

範囲の重複しない値をそれぞれ1回ずつ返します。=UNIQUE(B2:B8)は、B2:B8の地域をそれぞれ最初に出てきた順に1回だけ並べます。結果は数式のセルから下にスピルし、データが変わると更新されます。

Excelで重複を除いた値を並べ替えて表示するには?

UNIQUEをSORTで囲みます。=SORT(UNIQUE(B2:B8))は重複を除いた値をAからZの順に返します。ZからAにするには、SORTの中に,,-1を足します:=SORT(UNIQUE(B2:B8),,-1)。

Excelの「重複を除いた値」と「1回だけの値」の違いは何ですか?

=UNIQUE(A2:A8)は重複を除いた値、つまり繰り返し出てくる値も含めてすべての値を1回ずつ返します。=UNIQUE(A2:A8,,TRUE)はちょうど1回だけ出てくる値を返し、繰り返し出てくる値はすべて除きます。

UNIQUEが#NAME?になるのはなぜですか?

そのバージョンにUNIQUEがないからです。UNIQUEにはExcel 2021、Excel 2024、Microsoft 365のいずれかが必要です。Excel 2019以前では、リストのコピーに データ > 重複の削除 を使うか、データ > 詳細設定 で「重複するレコードは無視する」を使います。

Coddyのプログラミング言語のイラスト

Coddyでコードを学ぼう

始める