いまさら聞けないExcelの使い方講座
【Excel】重複データを調べる、取り出す、取り除く ~それぞれ違う3つの操作を確認
2024年9月25日 06:55
重複データをチェック? 抽出&除外のテクニックも覚えておこう
表に同じデータが存在しているかどうかの確認は基本的な処理ですよね。重複のチェックとして、ひとまとめに扱われることが多いですが、チェックするだけなのか、それとも重複するデータのみを取り出したいのか、重複データを削除して一意に整えたいのかによって操作が変わってきます。
以下は氏名とメールアドレスをまとめた表です。例えば「飯塚 はるか」や「五十嵐 杏」が重複していることがわかります。
実務では、このような単純な表ではなく列数や行数が多いはずです。手作業で削除したり、抽出したりするのは現実的ではありませんよね。
また、氏名の重複は問題ないが、メールアドレスの重複は不可だったり、氏名と電話番号の組み合わせで重複を判断したりするなど、運用方針によって“重複”の定義は変わってきますよね。今回は重複データの扱い方をまとめておさらいしておきましょう。
重複をチェックする
重複データのチェックには、COUNTIF関数を使った定番の方法があります。引数[範囲]は、表の高さに合わせたセル範囲を指定しても構いませんが、列全体を指定するほうが簡単です。[検索条件]には比較する1つのセルを指定します。
対象の列に、そのセルの値がいくつあるかどうかを数えることで、重複しているかどうかを判断します。結果が「1」であれば重複なし、「2」以上なら重複していると判断できます。
複数列で重複しているかどうかをチェックしたい場合は、作業列を用意して「&」で連結した結果を表示しておきます。あとは上記と同様にCOUNTIF関数でチェック可能です。
重複しているデータだけを取り出す
重複しているデータだけを取り出して、状況を把握したいこともありますよね。フィルターを設定して、上記の方法で求めたCOUNTIF関数の結果が「2」以上のデータに絞り込みます。
データによっては「3」や「4」となることもあるので、“2以上”のデータに絞り込むことがポイントです。絞り込んだ後はコピペすれば、重複しているデータのみを取り出せます。
重複データを取り除く①
元の表を残したまま、重複データを取り除いた結果を表示する場合は、UNIQUE関数を使います。ただし、UNIQUE関数の引数[配列]に複数の列を指定した場合、すべての列を組み合わせて重複が判定されます。例えば、以下の例では、[No]列に重複はないため、元の表と同じ結果になります。
比較したいセル範囲、例えば氏名とメールアドレスの組み合わせで重複を取り除くなら「=UNIQUE(B2:C31)」のように入力します。
[No]列の情報が必要な場合は、XLOOKUP関数を使うといいでしょう。UNIQUE関数を使って、重複データは取り除いてあるので、氏名を検索キーとして「=XLOOKUP(F2,B:B,A:A)」のように入力します。