いきなり答える備忘録

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

(Excel)UNIQUE関数で複数列から値の重複を除く

 ExcelのUNIQUE関数で複数の列を指定した場合、行(複数列の組み合わせ)単位での重複比較となるため、セル単位で値の重複を除くことはできません。
 そこで別の関数と組み合わせてセル単位での重複削除を行ってみます。

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

手順

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



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



 別の関数を組み合わせる方法もあります。
 次の画像では「=UNIQUE(VSTACK(B2:B5,D2:D5))」としています。VSTACK関数は複数の範囲を縦に並べる関数ですので、これでもうまくいきます。
 対象とする列が離れている場合はこちらの方法を使うのが適当です。