関数UNIQUEを使って「重複データを除外したリスト」を作成するときに、「複数の列」を対象にしたい場合もあるだろう。関数UNIQUEは複数列のデータ指定にも対応しているが、思い通りの結果を得るには「どのように重複データが除外されるのか?」について学んでおく必要がある。関数UNIQUEの注意点とあわせて詳しく説明していこう。
複数列を対象に関数UNIQUEを使用した場合は?
今回も関数UNIQUEの使い方を紹介していこう。関数UNIQUEを使って重複データを除外するときに「複数の列」を対象にしたい場合もあるだろう。この場合、「どのような仕組みで重複データが除外されるか?」について詳しく学んでおく必要がある。
今回は、連絡先をまとめた表から「重複データを除外する方法」を例に、関数UNIQUEの挙動について説明していこう。
以下の図は、各社員が個別に管理している名刺情報を集約するために、それぞれが所有する情報を表に入力してもらったものだ。状況を把握しやすくするために、データ数は12件に抑えてあるが、実際には数百件、数千件という規模のデータが存在すると考えて頂きたい。
この表をよく見ると、情報が重複しているデータがあることに気付くと思う。「麒麟設計の小久保さん」は同じ連絡先データが2件も登録されているし、「イヌワシ運送の藤本さん」は「部署」と「TEL」が異なる形で2件のデータが登録されている。
これらの重複データを関数UNIQUEで除外してみよう。まずは「社名」~「メールアドレス」のセル範囲を関数UNIQUEに指定した例を紹介する。
このままでは状況を把握しづらいと思うので、セルに色を付けた図を使って解説していこう。
連絡先のデータがすべて一致している「麒麟設計の小久保さん」は、問題なく重複データが除外されている。一方、「イヌワシ運送の藤本さん」はデータが2つとも残っており、重複は解消されていない。
これは関数UNIQUEの仕様に従った結果といえる。セル範囲に「複数の列」を指定した場合は、「すべての列でデータが一致する場合」のみ重複データとみなされる。先ほどの図において、「イヌワシ運送の藤本さん」は「部署」と「TEL」のデータが異なるため、重複データとはみなされない。よって、出力リストからも除外さない、という結果になる。
では、どのようにセル範囲を指定すれば上手くいくのだろうか? 解答例を一つ紹介しておこう。たとえば、以下の図のように「社名」と「氏名」のセル範囲だけを対象にして関数UNIQUEを実行すると、重複データを確実に除外することが可能となる。
念のため、セルに色を付けた図も紹介しておこう。データが重複していた「麒麟設計の小久保さん」と「イヌワシ運送の藤本さん」が、それぞれ1件のデータとして取得されているのを確認できるだろう。
これで重複データを除外できたことになるが、「社名」と「氏名」しかない状態では連絡先としての役割を果たさなくなってしまう。よって、他のデータを補完してあげる必要がある。