エクセル入門
UNIQUE関数(一意の値)

Excelの初心者向け入門解説
最終更新日:2020-05-01

UNIQUE関数(一意の値)


UNIQUE関数は、範囲または配列から一意(ユニーク)な値を返します。
範囲または配列から重複を削除して一意化した配列を返します。


UNIQUE関数はスピルで登場した新しい関数です。
・スピルとは ・スピルの数式例 ・ゴースト ・スピル範囲での独特な挙動について ・スピルのエラー表示 ・スピル範囲演算子 ・暗黙的なインターセクション演算子 ・従来のスピルしないエクセルとの互換性についての注意点 ・スピル関連記事

UNIQUE関数の書式

=UNIQUE(配列,[列の比較],[回数指定])

配列
必須です。
並べ替え処理する元データを指定します。
セル範囲または配列です。

列の比較
省略可能。
TRUE : 一意の列を返す
FALSE : 一意の行を返す
省略するとFALSE(一意の行)になります。

そもそも引数名がとても分かりづらいです。
これは、
横(列)方向のデータを一意にする。
縦(行)方向のデータを一意にする。
ということです。
つまり、通常の縦に連なるデータに対して使う時は、
FALSE : 一意の行を返す
これを使う事になります。
従って、ほとんどの場合この引数は省略して使えば良いです。

回数指定
省略可能。
TRUE : 1回だけ出現するアイテムを返す
FALSE : 個別のアイテムをすべて返す
省略するとFALSE(個別のアイテム)になります。

この引数も分かりづらいです。
FALSEが普通の一意化、重複を無くす処理になります。
従って、通常はこの引数は省略して使います。

TRUEの1回だけ出現が分かりづらいのですが、
元データに1回しか出現しないデータのみを対象とするという事です。
つまり、
そもそも一意になっているデータのみ出力する、重複しているデータは出力しないということです。
実際の使い道については、かなり限られると思います。

ワークシートでの一意化(ユニーク化)

ワークシート上で、データを一意化(ユニーク化)する方法としては、

・COUNTIF関数で重複を判定して削除
・ピボットテーブルで重複を削除
・重複の削除で重複を削除
・フィルタの詳細設定(フィルターオプションの設定)で重複を削除


どれも一長一短はあります。
詳しくは、以下で解説しています。

重複削除しユニークデータ作成(フィルターオプションの設定)
エクセル作業においては、データの重複を排除して、ユニークなデータを作成する必要がある場合は多々あります。そのような時の操作として、以下の方法があります。・COUNTIF関数で重複を判定して削除 ・ピボットテーブルで重複を削除 ・重複の削除で重複を削除 ・フィルタの詳細設定(フィルターオプションの設定)で重複を削除 …

UNIQUE関数の使用例

1列だけの単純な例

=UNIQUE(A1:A15)

エクセル Excel スピル UNIQUE

A列だけで一意化(ユニーク化)しています。
単純にA列のデータで重複を無くした状態で出力されます。

複数列の場合

=UNIQUE(A1:B15)

エクセル Excel スピル UNIQUE

A列とB列で一意化(ユニーク化)しています。
A列とB列を合わせたデータで重複を無くした状態で出力されます。
出力の仕方は違いますが、これは以下と同じことになります。

=UNIQUE(A1:A15&B1:B15)

エクセル Excel スピル UNIQUE


横(列)方向の一意化

=UNIQUE(A1:O2,TRUE)

エクセル Excel スピル UNIQUE

引数の「列の比較」という言葉がわかりづらいですが、
単純に、横(列)方向なら第2引数をTRUEにすれば良いと覚えれば良いでしょう。

1回だけ出現するアイテム

=UNIQUE(A1:A15,FALSE,TRUE)

エクセル Excel スピル UNIQUE

A列で一回しか出てこないデータのみ出力されます。
複数列でも理屈は同じです。

=UNIQUE(A1:B15,FALSE,TRUE)

エクセル Excel スピル UNIQUE

例えば、A社A商品やA社C商品は2回出てきているので出力されていません。

UNIQUE関数の応用例

全自動の集計表を作成します。
データ行数、集計項目値の増減にも対応できます。

エクセル Excel スピル UNIQUE

元表(A:E)のデータ変更に全自動で対応しています。
データ行数はもちろん、取引先や商品の増減にも対応できます。

G2=SORT(SORT(UNIQUE(FILTER(FILTER(A:E,ISNUMBER(C:C)),{1,1,0,0,0})),2),1)
以下の順に処理するように数式を組み立てています。
・内側のFILTER関数でデータのある行だけに絞り、外側のFILTER関数で2列に減らしています。
・FILTER関数の書式 ・FILTER関数使用例のサンプルデータ ・FILTER関数の基本 ・空白セルを0ではなく空白にする場合 ・複数条件のフィルター ・関数を使ってフィルター ・横(列)でフィルター ・表示する列を選択する ・FILTER関数の結果を他の関数で使う ・スピルによって新しく追加された関数
・UNIQUE関数で一意化
・内側のSORT関数で商品順、外側SORT関数で取引先順に並べ替えています。
・SORT関数の書式 ・SORTBY関数の書式 ・SORT関数、SORTBY関数と、ワークシートの並べ替えの違い ・最も単純な並べ替え ・複数キーでの並べ替え ・列方向(横方向)で並べ替え ・並べ替え範囲(配列)以外の基準で並べ替える ・列全体を範囲指定する場合 ・スピルによって新しく追加された関数

I2=SUMIFS(D:D,$A:$A,OFFSET($G1,1,0,COUNTA($G:$G)-1),$B:$B,OFFSET($H1,1,0,COUNTA($H:$H)-1))
J2=SUMIFS(E:E,$A:$A,OFFSET($G1,1,0,COUNTA($G:$G)-1),$B:$B,OFFSET($H1,1,0,COUNTA($H:$H)-1))
行数自動対応でスピルさせている為、数式が複雑になっています。
SUMIFS関数を集計結果の行数変更に自動対応させた上でスピルさせています。
SUMIFS関数は、SUMIF関数の条件が複数指定できるようになったものです。COUNTIFS関数は、COUNTIF関数の条件が複数指定できるようになったものです。・COUNTIF関数の書式・COUNTIF関数の使用例・COUNTIF関数でワイルドカードを使用・COUNTIF関数の応用例 AVERAGEIFS関数は、
難解に見えるのはOFFSET関数があるからです。
・OFFSET関数の書式 ・OFFSET関数の解説 ・OFFSET関数の使用例 ・OFFSET関数の応用例
OFFSET関数を固定のセル範囲に置き換えてしまえば、単なるスピルさせているSUMIFS関数だけになります。

これは、以下のようにテーブル+ピボットテーブルで作成するものとほぼ同じことになります、
※データ行数に自動対応させるためにテーブルにしています。

エクセル Excel スピル UNIQUE

どちらが良いという事ではなく、適宜使い分けすれば良いでしょう。

スピルによって新しく追加された関数

関数名 説明
FILTER フィルターは定義した条件に基づいたデータ範囲です。
SORT 範囲または配列の内容を並べ替えます。
SORTBY 範囲または配列の内容を、対応する範囲または配列の値に基づいて並べ替えます。
UNIQUE 一覧表または範囲内から重複データを削除した一覧を返します。
RANDARRAY 0から1までのランダムな数値の配列を返します。
SEQUENCE 1、2、3、4など、配列内の連続した数値の一覧を生成します。
XLOOKUP 範囲または配列を検索し、見つかった最初の一致に対応する項目を返します。
一致が存在しない場合、XLOOKUP は最も近い (概算) 一致を返すことができます。
XMATCH 配列またはセル範囲内の項目の相対的な位置を返します。


ワークシート関数一覧

Excelワークシート関数の一覧と解説です、詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…

ワークシート関数の一覧(2010以降)
・Excel2010で追加されたワークシート関数 ・Excel2013で追加されたワークシート関数 ・Excel2016/Excel2019で追加されたワークシート関数 ・Excel2021で追加されたワークシート関数 ・Excel2021以降の365で追加されたワークシート関数



同じテーマ「エクセル入門」の記事

スピルについて
FILTER関数(範囲をフィルター処理)
SORT関数、SORTBY関数(範囲を並べ替え)
UNIQUE関数(一意の値)
RANDARRAY関数(ランダム数値)
SEQUENCE関数(連続数値)
XLOOKUP関数(VLOOKUP関数を拡張した新関数)
XMATCH関数(MATCH関数を拡張した新関数)
LET関数(数式で変数を使う)
スピルと新関数の練習(XLOOKUP関数、LET関数、VBAまで)
LAMBDA以降の新関数について


新着記事NEW ・・・新着記事一覧を見る

構成比を合計しても100%にならないと言われた…|ツイッター出題回答 (2022-09-01)
一覧から複数条件(部分一致、範囲)に合致するデータを抽出する|ツイッター出題回答 (2022-08-30)
縦横スピルしないXLOOKUP代替(MATCH+INDEX,FILTER,CHOOSEROWS)|エクセル入門(2022-08-27)
IF関数の論理式で比較演算子を省略したCOUNT系関数を書くのは|ツイッター出題回答 (2022-08-23)
LAMBDA以降の新関数の使用例|エクセル入門(2022-08-22)
数珠順列(配置に条件付き)を全て出力する|ツイッター出題回答 (2022-08-20)
日付時刻のマイナス表示に対応する方法|ツイッター出題回答 (2022-08-17)
LAMBDA以降の新関数について|エクセル入門(2022-08-16)
条件付きの最大値と中央値("A"が2文字の条件)|ツイッター出題回答 (2022-08-14)
VBAマクロと操作対象データの分離について|ツイッター出題回答 (2022-08-11)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Excelショートカットキー一覧|Excelリファレンス
7.並べ替え(Sort)|VBA入門
8.マクロって何?VBAって何?|VBA入門
9.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
10.エクセルVBAでのシート指定方法|VBA技術解説




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ