UNIQUE関数、一意の値(ユニーク化) | パソコン・テクニカル

パソコン・テクニカル

パソコン・スマホ・ソフトウェアの操作や設定を紹介します。
音楽・映画のレーベルも作成してます。

UNIQUE関数は、範囲または配列から一意な値を返します。

範囲または配列から重複を削除して一意化した配列を返します。

 

UNIQUE関数はスピルで登場した新しい関数です。

 

◆UNIQUE関数の書式

 

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

 

配列

 

必須です。

並べ替え処理する元データを指定します。

セル範囲または配列です。

 

列の比較

 

省略可能。

TRUE : 一意の列を返す

 

FALSE : 一意の行を返す

 

省略するとFALSE(一意の行)になります。

そもそも引数名がとても分かりづらいです。

これは、

 

横(列)方向のデータを一意にする。

 

縦(行)方向のデータを一意にする。

 

ということです。

つまり、通常の縦に連なるデータに対して使う時は、

FALSE : 一意の行を返す

これを使う事になります。

従って、ほとんどの場合この引数は省略して使えば良いです。

 

回数指定

 

省略可能。

 

TRUE : 1回だけ出現するアイテムを返す

 

FALSE : 個別のアイテムをすべて返す

 

省略するとFALSE(個別のアイテム)になります。

 

この引数も分かりづらいです。

FALSEが普通の一意化、重複を無くす処理になります。

従って、通常はこの引数は省略して使います。

 

TRUEの1回だけ出現が分かりづらいのですが、

元データに1回しか出現しないデータのみを

対象とするという事です。

つまり、

そもそも一意になっているデータのみ出力する、

重複しているデータは出力しないということです。

実際の使い道については、かなり限られると思います。

 

 

◆ワークシートでの一意化

 

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

 

・COUNTIF関数で重複を判定して削除

 

・ピボットテーブルで重複を削除

 

・重複の削除で重複を削除

 

・フィルタの詳細設定(フィルターオプションの設定)で重複を削除

 

どれも一長一短はあります。

 

 

◆UNIQUE関数の使用例

 

1列だけの単純な例

 

=UNIQUE(A1:A15)

 

A列だけで一意化しています。

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

 

 

◆複数列の場合

 

=UNIQUE(A1:B15)

 

A列とB列で一意化しています。

A列とB列を合わせたデータで重複を無くした状態で出力されます。

出力の仕方は違いますが、これは以下と同じことになります。

 

=UNIQUE(A1:A15&B1:B15)

 

 

 

◆横(列)方向の一意化

 

=UNIQUE(A1:O2,TRUE)

 

引数の「列の比較」という言葉がわかりづらいですが、

単純に、横(列)方向なら第2引数をTRUEにすれば

良いと覚えれば良いでしょう。

 

 

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

 

=UNIQUE(A1:A15,FALSE,TRUE)

 

A列で一回しか出てこないデータのみ出力されます。

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

 

=UNIQUE(A1:B15,FALSE,TRUE)

 

例えば、A社A商品やA社C商品は

2回出てきているので出力されていません。

 

 

◆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関数の書式 =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関数の条件が

複数指定できるようになったものです。

範囲の中で、指定した条件を満たすセルの個数を数えます。

 

難解に見えるのはOFFSET関数があるからです。

基準のセルまたはセル範囲から指定された行数と列数だけ

シフトした位置にある、指定の高さと幅のセル範囲の参照を返します。

つまり、基準セルから、指定数だけ移動したセルを起点として、

指定の大きさのセル範囲を取得出来ます。

OFFSET関数の書式 

OFFSET(基準,行数,列数,[高さ],[幅]) 基準

 

OFFSET関数を固定のセル範囲に置き換えてしまえば、

単なるスピルさせているSUMIFS関数だけになります。

 

 

これは、以下のようにテーブル+ピボットテーブルで

作成するものとほぼ同じことになります

 

※データ行数に自動対応させるためにテーブルにしています。

 

 

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

 

 

にほんブログ村 IT技術ブログへ  フォローしてね…