いきなり答える備忘録

Google Workspace(旧G Suite)・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)UNIQUE関数で複数列から値の重複を除く

 GoogleスプレッドシートのUNIQUE関数で複数の列を指定しても、セル単位で値の重複を除くことはできません。
 これを何とかする方法についてです。

  • 「=UNIQUE(FLATTEN(範囲))」という式で、複数列を指定した場合でもセル単位で重複を除いた結果を得ることができます。
  • 「=UNIQUE({列1;列2;…})」とする方法もあります。列が飛び飛びの場合はこちらを使うのが適当です。

手順

 画像ではE2セルに「=UNIQUE(B2:C5)」と入力しています。
 UNIQUE関数は値の重複を除いた結果を返す関数ですが、複数列の範囲を指定した場合は行全体(列の組み合わせ)で重複を判定して重複する行を除くため、この場合は指定した範囲の内容がそのまま返ってきます。



 そこで「=UNIQUE(FLATTEN(B2:C5))」と入力したところです。
 FLATTEN関数は指定した範囲を縦1列に並べ直す関数なので、その結果にUNIQUE関数を適用することで重複する値を除くことができました。



 次の画像は列が飛び飛びになっている場合の例です。
 ここでは範囲を縦に並べる書式を使い、「=UNIQUE({B2:B5;D2:D5})」とすることで重複を除いた結果を得ています。カンマではなくセミコロンを使うところが注意点です。

 


 なお、UNIQUE関数で複数列を指定したときの「本来の」はたらきについては次の記事で紹介しています。

www.officeisyours.com