Excelで複数列の重複データを検索するには数式を使用する - TechRepublic

Excelで複数列の重複データを検索するには数式を使用する - TechRepublic

同じ列内の重複は、並べ替えやフィルタリングで簡単に見つけることができます。複数の列にまたがる重複の場合は少し設定が必要ですが、実装自体は難しくありません。

同じ列内の重複値を見つけるのは簡単です。状況に応じて並べ替えたり、フィルターを適用したりできます。複数の列にまたがる重複値を見つけるのは、少し難しくなります。並べ替えは機能しますが、その場合は重複値を見つけなければなりません。つまり、解決策がないよりはましですが、良い解決策とは言えません。おそらく、「私は重複しています!」
とはっきりとわかるような解決策が必要なのでしょう。簡単な例を見てみましょう。下のシートには、日付の列とイニシャルの列があります。いくつかの日付が重複しており、いくつかのイニシャルが重複しています。これらは、これらの列内で重複していることを示しています。しかし、私たちが関心を持っているのは、同じ日付同じイニシャルが繰り返されているレコードです。これが、私が複数列の重複と呼んでいるものです。このようなシンプルなシートでは、8行目と9行目の重複を見つけるのは比較的簡単ですが、数百、数千の行をチェックする必要がある場合はどうでしょうか?オートフィルターは機能しますが、脆弱な解決策です。このケースでは、5つの異なる日付があります。つまり、ユーザーは重複を見つけるために少なくとも5セットのレコードを確認する必要があります。それでも、ユーザーが実際に重複を見つけてくれると確信する必要があります。特にデータ量が多い場合は、これは良い解決策とは言えません。高度なフィルターや条件付き書式を試すこともできますが、どちらも非常に手間がかかるため、以下に示す簡単に実装できる解決策と比較すると、最終的な結果が手間に見合うかどうかはわかりません。


  • チェックする列を連結します。
  • 結合された値の数をカウントするには、CountIf() を使用します。

これがどのように機能するかを確認するために、上のシートを拡張してみましょう。

  1. セルC2に「=A2&B2」という数式を入力します。(複数の列を結合することもできます。)
  2. 数式をC3:C9にコピーします。Excelは各日付のシリアル値を使用しますが、この方法は影響を受けません。ただし、値に時刻が含まれている場合は、時刻値の入力方法によってはシリアル値に影響を受ける可能性があります。
  1. セルD2に次の数式を入力します:
    =IF(COUNTIF($C$2:C2,C2)>1, “はい、重複です!,”オリジナル”)
  2. 数式をD3:D9にコピーします。これで、複数列の重複データを見つけるのは、D列で並べ替えるのと同じくらい簡単になります(ただし、この例では並べ替えは必要ありません)。

IfCount() 関数は、連結された値が拡張範囲内で出現する回数をカウントします。出現回数が1より大きい場合、数式は「はい、重複です!」という文字列を返します。出現回数が1より小さい場合、数式は「オリジナル」という文字列を返します。最初の出現のみがオリジナルとして識別されます。
この手法は、他の列にも簡単に適用できます。連結式に各列(この例では列C)を追加するだけです。もちろん、Excelで複数列の重複を識別する方法は他にもあります。より効率的な解決策や、より複雑な問題を共有したい場合は、以下のスレッドで議論を始めてください。

記事をシェア
スーザン・ハーキンスの画像

スーザン・ハーキンス

スーザン・セールス・ハーキンスは、デスクトップソリューションを専門とするITコンサルタントです。以前は、世界最大の技術雑誌出版社であるコブ・グループの編集長を務めていました。

Tagged: