Microsoft 365 の Excel で利用できる UNIQUE 関数について紹介します。
(UNIQUE 関数は Excel 2016 や Excel 2019 では利用できないのでご注意を)

たとえば、下図の「出荷履歴」テーブルの [商品名] 列には、「フルーツヨーグルトアイス」のセルが 2 つあるので重複しているといえます。

セル E2 に数式を作成し、赤枠の場所のように [商品名] 列のデータを 1 つずつ表示します。

UNIQUE 関数はスピルありきの関数なので、スピルって?という方は こちら を参照してください。

また、引数の指定によって、元データの中に 1 回しか出現しないデータを表示することもできます。

セル G2 に数式を作成し、緑枠の場所のように [商品名] 列のデータのうち、1 回しか出現しないデータを表示します。

UNIQUE 関数について

UNIQUE 関数は、セル範囲や配列のデータのうち、一意 (重複しない) データを返す関数です。

UNIQUE 関数の構文です。ヘルプの記載とは表現を変えてあります。

=UNIQUE(対象データの範囲 , [方向][出現回数])

対象データの範囲 (必須):対象としたいデータが含まれる範囲、または配列を指定します。

[方向] (省略可能):対象としたいデータが縦方向に伸びる「行」に配置されている場合は FALSE を、データが横方向に伸びる「列」に配置されている場合は TRUE を指定します。省略した場合は FALSE が指定されたとみなされます。

[出現回数] (省略可能):範囲に 1 回しか出現していないデータを対象とする場合は TRUEを指定します。重複を除いて 1 つずつ表示する場合は FALSE を指定します。省略した場合は FALSE を指定したとみなされます。

出現回数の制限をしない場合 (1 つずつ全部表示)

下図の [商品名] 列のデータ部分を対象データの範囲とし、データが重複しないように 1 つずつ表示します。

対象としたいデータが縦方向に伸びる「行」に配置されているので、[方向] は省略して FALSE とし、1 回しか出現しないという制限はしないため [出現回数] も省略して FALSE とします。

よってセル E2 に作成している数式は、
=UNIQUE(出荷履歴[商品名]) 
です。

1 回しか出現していないデータを表示

下図の [商品名] 列のデータ部分を対象データの範囲とし、1 回しか出現していないデータを表示します。

対象としたいデータが縦方向に伸びる「行」に配置されているので (省略しようと思ったけど一応指定して) FALSE とし、1 回しか出現していないデータとしたいので、[出現回数] は TRUE とします。(この最後の TRUE がポイント)

よってセル G2 に作成している数式は、
=UNIQUE(出荷履歴[商品名] , FALSE , TRUE) 
です。

おまけ

下図では、こちら で紹介している SORT 関数と組み合わせて、重複しないデータを昇順で並べ替えるように数式を編集しています。「アイスキャラメルバー」が先頭に表示されていることがわかります。

=SORT(UNIQUE(出荷履歴[商品名]))

複数の列を対象データの範囲とする場合

下図では、[商品名] 列と [数量] 列を対象データの範囲とする UNIQUE の数式を作成しています。

数式の結果をよく見ると、「フルーツヨーグルトアイス」は 2 つあるのに対し、(元データに 3 回出現している) 「キャラメルスコーン」は 1 つしか表示されていません。

当たり前ですが、2 つの列を対象データ範囲として指定しているので、2 つの列の値の組み合わせが一致していないとユニーク データとみなされない、ということですね。

「フルーツヨーグルトアイス」「130」 と、
「フルーツヨーグルトアイス」「120」 は、

一致しない (重複しない) 1 つのデータ、ということです。どうしても左側の商品名のことを中心に考えてしまいがちですが、ピボットテーブルじゃないので、勝手に合計はしてくれませんのでご注意を。

複数の列を対象データとした場合のイメージ図をもう 1 つ。

先ほどと同じ話ですが、数字だとわかりにくいかな、と思って [都道府県] と [市区町村] の組み合わせで作ってみました。

都道府県+市区町村が、1 つずつ表示されています。


元になるデータ (今回でいうところのテーブル) に対する変化に動的に対応したユニーク データを表示したい、ということなのであれば UNIQUE 関数がよいと思います。なんといってもスピルが機能するのでデータの増減に対応しやすいです。

また、ほかの関数と組み合わせて使うことが多いと思います。たとえば、FILTER 関数で抽出した結果のうち、重複しないデータに絞って表示するとか、SORT 関数と組み合わせて並べ替えるとか。

なんだかどんどん新しいことができるようになりますね。Excel の使い方が大きく変わるのかもしれません。

石田 かのこ