エクセルのUNIQUE関数とは?【使えない場合の代用方法】

エクセルのUNIQUE関数を使うと、重複値を含むデータ範囲から一意の値だけを抽出できます。今回はUNIQUE関数の使い方や、UNIQUE関数が使えないバージョンでの代用方法についても解説しているので、ぜひ参考にしてみてください。

スポンサーリンク

UNIQUE関数の使い方

UNIQUE関数は Microsoft 365 または Excel 2021 以降のバージョンで使えます。Excel 2019 以前の場合は、UNIQUE関数が使えない場合の代用方法をご参照ください。 

UNIQUE関数とは?

エクセルのUNIQUE関数の使い方

UNIQUE関数は指定した範囲から、すべての一意の値を返します。 

例えば UNIQUE(A2:B6) なら6行目の重複値は削除され、先に出現する4行目の値のみ返します。

UNIQUE関数の構成要素:(範囲, [列の比較], [回数指定])

列の比較

エクセルのUNIQUE関数の使い方

範囲に指定したデータの比較方法を、TRUE または FALSE の論理値で指定します。

  • TRUE(1):範囲内の列を相互に比較するため、横方向のデータに使用します。
  • FALSE(0)または省略:範囲内の行を相互に比較するため、縦方向のデータに使用します。

回数指定

エクセルのUNIQUE関数の使い方

データの出現回数による抽出の有無を、TRUE または FALSE の論理値で指定します。

  • TRUE(1):範囲内に、 1 回だけ出現する値の行または列を返します。
  • FALSE(0)または省略:範囲内に出現する一意の値の行または列を、すべて返します。
スポンサーリンク

UNIQUE関数が使えない場合の代用方法

エクセルのUNIQUE関数が使えない場合の代用方法

UNIQUE関数が使えない場合の代用方法を簡単にまとめると、以下の通りです。それぞれの関数と手順については、次で詳しく解説しています。

  1. 範囲内に値が初めて出現する場合の、行番号を取得します。
  2. 行番号の小さい順に値を取り出すことで、空白行(重複値)を取り除きます。

1. 行番号の取得:IF(COUNTIF( $B$2:B2, B2 )=1,ROW(),””)
2. 値の抽出:INDEX( B:B, SMALL($A$2:$A$6, ROW(A1) ) )

エクセルのUNIQUE関数が使えない場合の代用方法

まずCOUNTIF関数で、範囲内に値が出現する回数を算出します。

ポイントは COUNTIF($B$2:B2,B2) のように、範囲の開始位置のみ固定することです。これにより数式をコピーしたときに、終点位置のみ1行ずつ下に拡張されます。

COUNTIF関数の構成要素:(検索範囲, 条件)

エクセルのUNIQUE関数が使えない場合の代用方法

次にIF関数で出現回数が 1 の場合のみ、行番号を取得します。

セルの行番号は、ROW関数で取得可能です。つまり IF(B2=1,ROW((),””) は論理式が真(出現回数= 1 )の場合に行番号を、1 以外の場合に空白を返します。

IF関数の構成要素:(論理式, TRUE値, FALSE値)

エクセルのUNIQUE関数が使えない場合の代用方法

SMALL関数で、セルの行番号から空白を取り除いて一列に並べます。

取り出す順位には ROW関数で任意の 1 行目を指定してください。これによりオートフィルで数式をコピーしたときに、順位が 1、2、3…と移動していきます。

SMALL($A$2,$A$6,ROW(A1)) のように、参照範囲は固定します。

SMALL関数の構成要素:(範囲,順位)

エクセルのUNIQUE関数が使えない場合の代用方法

最後にINDEX関数で、元のデータ範囲と行番号がクロスするセルを抽出します。

参照範囲には、データ範囲の1列目のみを指定してください。この場合参照が 1 列しか存在しないため、列番号を指定する必要はありません。

INDEX関数の構成要素:(参照, 行番号, [列番号])

エクセルのUNIQUE関数が使えない場合の代用方法

INDEX(D:D,$F2) のように、行番号の列のみ固定しておきましょう。

G列の数式を右にコピーしたときに参照範囲のみ 1 列ずつ移動するので、以降のデータ範囲も簡単に抽出できます。

タイトルとURLをコピーしました