-
Home »
-
エクセル関数一覧表 »
-
Excel関数の目次 »
-
UNIQUE関数で重複しない値を取り出す
更新:2024/12/13;作成:2020/2/6
UNIQUE関数が利用できるExcelの種類(バージョンについて)
- UNIQUE関数はExcel for Microsoft 365(サブスクリプション型),Excel2021,Excel2024(永続ライセンス版)で使える関数です。
ちなみに、Excel2016,Excel2019(永続ライセンス版)では使用できませんので、ご注意ください。
|
Spill(スピル) |
UNIQUE関数 |
Excel2016,Excel2019 |
× |
× |
Excel2021,Excel2024 |
○ |
○ |
Excel for Microsoft365 |
○ |
○ |
UNIQUE関数の構文と引数
- =UNIQUE(配列,[列の比較],[回数指定])
引数の表現(日本語)がわかりにくいのでよく見てください。
配列 |
一意の値を表示する範囲または配列 |
列の比較 |
比較の方法を論理値で指定します。
FALSE (または省略した場合) は、行を比較し、一意の行を返します。
TRUEは、列を比較し、一意の列を返します。
|
回数指定 |
範囲または配列で1回だけ出現する行または列を論理値で指定します。
FALSE (または省略した場合) は、範囲または配列の重複しないすべての行または列を返します。
TRUEは、範囲または配列から1回だけ出現するすべての個別の行または列を返します。
|
ここで使用したサンプルデータ topへ
- このページで使用するデータを表で表示しますので、コピーしてお使いください。
|
B |
C |
D |
2 |
商品名 |
産地 |
数量 |
3 |
スイカ |
熊本 |
30 |
4 |
マンゴー |
鹿児島 |
10 |
5 |
マンゴー |
鹿児島 |
20 |
6 |
スイカ |
鹿児島 |
10 |
7 |
ポンカン |
種子島 |
20 |
8 |
スイカ |
宮崎 |
30 |
9 |
ポンカン |
屋久島 |
20 |
10 |
たんかん |
屋久島 |
10 |
11 |
マンゴー |
宮崎 |
30 |
12 |
ポンカン |
鹿児島 |
25 |
13 |
サワーポメロ |
鹿児島 |
10 |
14 |
たんかん |
種子島 |
30 |
15 |
サワーポメロ |
鹿児島 |
10 |
16 |
たんかん |
種子島 |
30 |
17 |
ポンカン |
鹿児島 |
20 |
18 |
マンゴー |
宮崎 |
20 |
19 |
たんかん |
鹿児島 |
30 |
20 |
ポンカン |
屋久島 |
30 |
21 |
サワーポメロ |
鹿児島 |
20 |
22 |
スイカ |
熊本 |
20 |
- 商品名で重複のない値(一意の値)を抽出します。
F3セルに =UNIQUE(B3:B22) と入力しました。
重複なしの商品名のリストが作成できました。
- Excel for Microsoft365で使える GROUPBY関数でも同じことができます。
なお、この関数ではコード順に並べ替えたデータになります。
F3セルに =GROUPBY(B3:B22,,,0,0) と入力しています。
詳細な使い方は GROUPBY関数を使って集計する をご覧ください。
- 商品名と産地のセットで重複しないデータ(一意のリスト)を作成します。
F3セルに =SORT(UNIQUE(B3:C22)) と入力しました。
なお、データを見やすくするために、SORT関数を使って抽出データを並べ替えています。
SORT関数については SORT関数 をご覧ください。
商品名と産地のセットで重複しないデータを抽出することができました。
- Excel for Microsoft365で使える GROUPBY関数でも同じことができます。
=GROUPBY(B3:C22,,,0,0)
- 各商品と産地での数量を計算してみます。
H3セルに =SUMIFS(D3:D22,B3:B22,F3:F14,C3:C22,G3:G14) と入力します。
スピルの機能ですべて計算されます。
- Excel for Microsoft365で使える GROUPBY関数でも同じことができます。
=GROUPBY(B3:C22,D3:D22,SUM,0,0)
- 構文:=UNIQUE(配列,[列の比較],[回数指定]) の[列の比較]を TRUE と指定した例です。
ここでは、サンプルのデータを縦横入れ替えてコピーしたものを利用します。
B8セルに =UNIQUE(B2:V2,TRUE) と入力しています。
商品名の列B2:V2 から、重複しない一意のデータが抽出されます。
UNIQUE関数で1列の重複しないデータを抽出する の行が列に変わったものです。

- B8セルに =UNIQUE(B2:V3,TRUE) と入力しています。
UNIQUE関数で複数列の重複しないデータを抽出する の行と列が変わったものになります。

- ここでは、商品名と産地の組み合わせが1回だけの組み合わせを抽出します。
構文:=UNIQUE(配列,[列の比較],[回数指定]) の[回数指定]を TRUE と指定する例です。
- E:Fセルは説明のために、1回だけ出現しているのを確認するために、E3セルには =B3&"_"&C3 、F3セルに =COUNTIF($E$3:$E$22,E3) と出現回数を求めています。
F列が 1 となるデータの組み合わせが UNIQUE関数で抽出できたのがわかります。
- H3セルには =UNIQUE(B3:C22,,TRUE) と入力しています。
[列の比較]は省略しています(入力していません)。
[回数指定]で TRUE と指定しました。1回だけ出現するデータが抽出できました。

1列の重複しないデータを抽出する
- データリストがテーブルに変換されている場合
テーブルの名前は テーブル1 としています。
F3セルの数式は =UNIQUE(テーブル1[商品名]) となります。
- 抽出された各商品名の数量を合計してみます。
G3セルに =SUMIF(B3:B22,F3#,D3:D22) と入力するだけで、スピルの機能ですべて計算ができます。
数式中の F3# はスピルの機能で求められた範囲 (F3:F7は=UNIQUE(B3:B22) で求められたものです)を指定しています。
# はスピル範囲演算子と呼ばれます。
なお、テーブルでの構造化参照では =SUMIF(テーブル1[商品名],F3#,テーブル1[数量]) となります。
複数列の重複しないデータを抽出する
- テーブルの名前は テーブル1 としています。
F3セルの数式は =SORT(UNIQUE(テーブル1[[商品名]:[産地]])) となります。
- 【計算例1】
数量を計算してみます。
H3セルに
=SUMIFS(テーブル1[数量],
テーブル1[商品名],F3:F14,テーブル1[産地],G3:G14)
と入力しました。
- 【計算例2】
=SORT(UNIQUE(テーブル1[[商品名]:[産地]])) で取り出した配列の各列を計算に利用してみます。
ここでは Excel for Microsoft365で使用できるようになった TAKE 関数を使っています。
=SUMIFS(テーブル1[数量],
テーブル1[商品名],TAKE(F3#,,1),
テーブル1[産地],TAKE(F3#,,-1))
- 商品名と産地のクロス集計表を作成してみます。
ピボットテーブルを使うと下図のようになります。

- ピボットテーブルではデータに変化があると[ピボットテーブルの更新]を実行する必要があります。
テーブルを利用すると、テーブルのデータが変化すると、すぐに再計算されます。
- データの増減に対応するために、テーブルに変換しています。
重複しない「商品名」を取り出します。
F3セルに =SORT(UNIQUE(テーブル1[商品名])) と入力しています。
- G2セルに =TRANSPOSE(UNIQUE(テーブル1[産地])) と入力しています。
列方向へ重複しない産地を並べるために、TRANSPOSE関数を使っています。
- 合計値は =SUMIFS(テーブル1[数量],テーブル1[商品名],F3#,テーブル1[産地],G2#) で求めます。
(F3# の#はスピル範囲演算子と呼ばれるものです:スピル範囲全体を参照することができます。)
- テーブルに新しいデータを追加すると、集計表にも自動で新しいデータが反映されます。
- Excel for Microsoft365で使える PIVOTBY関数でも同じことができます。
なお、こちらはフィールド名はコード順に並べ替えられます。
=PIVOTBY(テーブル1[商品名],テーブル1[産地],テーブル1[数量],SUM,0,0)
詳細は PIVOTBY関数でクロス集計表を作るをご覧ください。
スポンサードリンク
よねさんのWordとExcelの小部屋 »
エクセル関数一覧表 » UNIQUE関数の使い方
PageViewCounter

Since2006/2/27