Excelで重複データを抽出する方法|COUNTIF関数と条件付き書式の使い分け

Excel(エクセル)で名簿や在庫表、献立表などを管理していると、「同じデータが重複して入力されていないか」を確認したい場面が出てきます。Excelには「重複の削除」という機能も用意されていますが、列単位でしか使えなかったり、関係のないセルまで一緒に削除されてしまったりと、使い勝手に難を感じることもあります。

そこでこの記事では、データを削除せずに「重複しているかどうか」を関数で判定し、行ごとにチェックする方法を紹介します。元のデータをそのまま残せるので、後から内容を確認したり加工したりする際にも便利です。

重複データを抽出する基本:COUNTIF関数の使い方

Excelで重複データを判定する際によく使われるのが、指定した範囲の中に同じ値がいくつあるかを数える「COUNTIF関数」です。基本の数式は以下のようになります。

=IF(COUNTIF(【検索範囲】,【検索条件】)>1,"重複している","重複していない")

【検索範囲】には重複をチェックしたいセルの範囲を、【検索条件】には判定対象となるセルを指定します。COUNTIF関数で範囲内に同じ値がいくつあるかを数え、その結果が1より大きければ「重複している」と表示する仕組みです。

実際の表で重複データを抽出してみる

重複データを抽出するエクセル表の例
重複データを抽出するエクセル表の例

ここでは、1ヶ月分の献立表を例にして、重複データの抽出方法をパターン別に見ていきましょう。

パターン①:同じ行の中に重複があるかチェックする

1行の重複データを抽出するエクセル表の例
1行の重複データを抽出するエクセル表の例
=IF(COUNTIF(B2:H2,B2)>1,"重複している","重複していない")

この例では、第1週の月曜日のメニュー「カレー」について、同じ週(同じ行)の中に重複がないかをチェックしています。月曜と金曜の両方に「カレー」が入力されているため、結果は「重複している」と表示されます。

パターン②:同じ行の他のセルについても重複をチェックする

同行の異なるセルの重複データを抽出するエクセル表の例
同行の異なるセルの重複データを抽出するエクセル表の例

次に、第1週の中でカレー以外にも重複しているメニューがないかを確認してみます。例えば火曜日の「牛丼」が重複しているかどうかを調べたい場合は、先ほどの数式が入力されているセルをコピーして隣のセルに貼り付ければOKです。ただし、そのままコピーすると参照範囲が1セルずつずれてしまうため、検索範囲の列を固定しておく必要があります。具体的には、コピー先のセルに入力する数式を、以下のように書き換えてください。

=IF(COUNTIF($B2:$H2,B2)>1,"重複","")

※ここでは表示が長くなりすぎないよう、「重複している」「重複していない」という表示文言を「重複」「(空欄)」に省略しています。

ここでは【検索範囲】を「B2:H2」から「$B2:$H2」に書き換えています。「$」をつけることで、コピーしてもその列が固定されたまま動かなくなります。月曜から日曜までの7日分をチェックしたい場合は、この数式をそのまま右方向に7セル分コピーすれば完成です。

パターン③:表全体(全週)にまとめて適用する

各行ごとに重複データを抽出するエクセル表の例
各行ごとに重複データを抽出するエクセル表の例

あとは、第1週で作成した数式を含むセル範囲をまとめて選択し、第2週から第4週の行にコピー&ペーストするだけです。同じ仕組みのまま、表全体の重複チェックを一気に終わらせることができます。

条件付き書式を使えば、もっと手軽に重複を見つけられる

COUNTIF関数を使った方法は、判定結果を文字や別のセルに表示したい場合や、後から数式として再利用したい場合に向いています。一方で「とにかく重複しているセルをひと目で見分けたい」という場合は、Excelの条件付き書式機能を使うのも便利です。

手順はシンプルで、重複をチェックしたい範囲を選択した状態で「ホーム」タブの「条件付き書式」から「セルの強調表示ルール」→「重複する値」を選択するだけです。重複しているセルに自動で色が付くため、表全体の重複状況をひと目で確認できます。

数式で判定結果をセルに残しておきたい場合はCOUNTIF関数、見た目ですぐに重複に気づきたい場合は条件付き書式というように、目的に応じて使い分けるとよいでしょう。

まとめ:用途に合わせて重複チェックの方法を選ぼう

今回紹介したCOUNTIF関数を使う方法なら、データを削除することなく「重複しているかどうか」を行単位で判定できます。表をそのまま残しておきたい場合や、判定結果をもとにさらに集計や加工をしたい場合に特に役立ちます。

また、重複データの整理だけでなく、繰り返し行う集計作業そのものを効率化したい場合は、Excelのマクロを活用するのもおすすめです。マクロについてはExcel(エクセル)【1】マクロとは?で基礎から解説していますので、あわせて参考にしてみてください。

このテーマの関連記事はこちら