UNIQUE関数(一意の値)
UNIQUE関数は、範囲または配列から一意(ユニーク)な値を返します。
範囲または配列から重複を削除して一意化した配列を返します。
UNIQUE関数の書式
並べ替え処理する元データを指定します。
セル範囲または配列です。
TRUE : 一意の列を返す
FALSE : 一意の行を返す
省略するとFALSE(一意の行)になります。
これは、
横(列)方向のデータを一意にする。
縦(行)方向のデータを一意にする。
ということです。
つまり、通常の縦に連なるデータに対して使う時は、
FALSE : 一意の行を返す
これを使う事になります。
従って、ほとんどの場合この引数は省略して使えば良いです。
TRUE : 1回だけ出現するアイテムを返す
FALSE : 個別のアイテムをすべて返す
省略するとFALSE(個別のアイテム)になります。
FALSEが普通の一意化、重複を無くす処理になります。
従って、通常はこの引数は省略して使います。
元データに1回しか出現しないデータのみを対象とするという事です。
つまり、
そもそも一意になっているデータのみ出力する、重複しているデータは出力しないということです。
実際の使い道については、かなり限られると思います。
ワークシートでの一意化(ユニーク化)
・ピボットテーブルで重複を削除
・重複の削除で重複を削除
・フィルタの詳細設定(フィルターオプションの設定)で重複を削除
詳しくは、以下で解説しています。
UNIQUE関数の使用例
1列だけの単純な例

単純にA列のデータで重複を無くした状態で出力されます。
複数列の場合

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

横(列)方向の一意化

単純に、横(列)方向なら第2引数をTRUEにすれば良いと覚えれば良いでしょう。
1回だけ出現するアイテム

複数列でも理屈は同じです。

UNIQUE関数の応用例
データ行数、集計項目値の増減にも対応できます。

データ行数はもちろん、取引先や商品の増減にも対応できます。
・内側のFILTER関数でデータのある行だけに絞り、外側のFILTER関数で2列に減らしています。
・内側のSORT関数で商品順、外側SORT関数で取引先順に並べ替えています。
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関数を集計結果の行数変更に自動対応させた上でスピルさせています。
※データ行数に自動対応させるためにテーブルにしています。

スピルによって新しく追加された関数
関数名 | 説明 |
FILTER | フィルターは定義した条件に基づいたデータ範囲です。 |
SORT | 範囲または配列の内容を並べ替えます。 |
SORTBY | 範囲または配列の内容を、対応する範囲または配列の値に基づいて並べ替えます。 |
UNIQUE | 一覧表または範囲内から重複データを削除した一覧を返します。 |
RANDARRAY | 0から1までのランダムな数値の配列を返します。 |
SEQUENCE | 1、2、3、4など、配列内の連続した数値の一覧を生成します。 |
XLOOKUP | 範囲または配列を検索し、見つかった最初の一致に対応する項目を返します。 一致が存在しない場合、XLOOKUP は最も近い (概算) 一致を返すことができます。 |
XMATCH | 配列またはセル範囲内の項目の相対的な位置を返します。 |
ワークシート関数の一覧(2010以降)
同じテーマ「エクセル入門」の記事
スピルについて
FILTER関数(範囲をフィルター処理)
SORT関数、SORTBY関数(範囲を並べ替え)
UNIQUE関数(一意の値)
RANDARRAY関数(ランダム数値)
SEQUENCE関数(連続数値)
XLOOKUP関数(VLOOKUP関数を拡張した新関数)
XMATCH関数(MATCH関数を拡張した新関数)
LET関数(数式で変数を使う)
スピルと新関数の練習(XLOOKUP関数、LET関数、VBAまで)
スピルとは:スピル基礎から応用までの問題集
新着記事NEW ・・・新着記事一覧を見る
セル値でパス・ブック・シート名を指定|Power Query(M言語)入門(2023-02-07)
別ブックのシートを列可変で取り込む|Power Query(M言語)入門(2023-02-06)
ExcelとVBAの入門解説|エクセルの神髄(2022-12-14)
文字列のプロパティ名でオブジェクトを操作する方法|VBA技術解説(2022-12-14)
数字(1~50)を丸付き数字に変換するVBA|VBA技術解説(2022-11-15)
TEXTAFTER関数(テキストの指定文字列より後ろの部分を返す)|エクセル入門(2022-11-14)
TEXTBEFORE関数(テキストの指定文字列より前の部分を返す)|エクセル入門(2022-11-14)
TEXTSPLIT関数(列と行の区切り記号で文字列を分割)|エクセル入門(2022-11-12)
LAMBDA以降の新関数はVBAで使えるか|VBA技術解説(2022-11-11)
WRAPCOLS関数(1次元配列を指定数の列で折り返す)|エクセル入門(2022-11-08)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.繰り返し処理(For Next)|VBA入門
4.変数宣言のDimとデータ型|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.マクロって何?VBAって何?|VBA入門
7.並べ替え(Sort)|VBA入門
8.Excelショートカットキー一覧|Excelリファレンス
9.エクセルVBAでのシート指定方法|VBA技術解説
10.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。