14_アイキャッチ_Excel(エクセル)でデータの重複をチェック・重複データを削除する方法_

 

Q. データに重複があるかをチェック・重複データを削除する方法は?

今日はこんなお困りごとを解決します。

Excelエクセルで「データの重複チェックする方法と、重複したデータを削除する方法」を紹介していきますよ。

 本記事でわかること
  • CASE1:データに重複があるかチェックする方法
  • CASE2:重複したデータを削除する方法

14_002_本記事でわかること

重複というのは「完全一致するデータが2つ以上重なって存在してしまっている」ということです。

この方法を使えば、自力で探す手間が省けるので作業効率が上がります。

 

 

CASE1:Excel(エクセル)でデータに重複があるかチェックする方法

14_000_データに重複があるかチェックする方法

データの重複をチェックする簡単な方法としては2つあります。

  1. COUNTIF関数を使った方法
  2. VLOOKUP関数を使った方法

では、順番に操作方法を解説していきます。

COUNTIF関数を使って重複をチェックする方法

COUNTIFで検索値に一致するデータ個数をカウントすることによってデータが重複しているかを調べる方法です。

COUNTIF関数の公式=COUNTIF ( 範囲, 検索条件)

範囲:検索をかけたい範囲
検索条件:検索したい条件

※検索条件には、数値・文字列・セル番号・数式・比較演算式が使える

では、操作方法です。

 Excelでの操作方法

例:COUNTIF関数を使って番号Aと番号Bのデータに重複があるかをチェックする
(D列にチェック判定を表示させる)
14_001_③データに重複があるかチェックする方法(例のイメージ)

番号Bのデータがそろぞれ番号Aの中にいくつあるかを見ていきます
(※関数はセルD3に入力したものをコピーするのでひとつひとつ入力する必要はありません)

1まずセルD3に関数を入力していく
=COUNTIF()の中に「範囲」「検索条件」を入れる

範囲:$A$3:$A$11
検索をかけたい範囲は「A3:A11」だが、関数をドラッグ&コピーしたときに範囲をずらしたくないので絶対参照にして「$A$3:$A$11」とする


検索条件:C3
検索したい条件はセルC3のデータなのでセル番号で指定して「C3」とする

これらを公式にあてはめると
=COUNTIF($A$3:$A$11,C3)
14_002_④データに重複があるかチェックする方法(COUNTIF関数に引数を入力する)

2セルD3に重複の数が表示される
14_003_⑤データに重複があるかチェックする方法(検索条件に一致するデータの個数が表示された)

3セルD3の関数をセルD11までオートフィルコピー(※オートフィルのやり方
14_004_⑥データに重複があるかチェックする方法(オートフィル機能で関数を下段までコピー)

4全部のセルに重複数が表示される

この表示された数によって「重複があるかどうかを判別すればOK」
14_005_⑦データに重複があるかチェックする方法(関数計算の戻り値によって重複があるかを判別する)

表示された数が・・・

  • 「0」なら➔ データに重複なし
  • 「1」なら➔ データに重複あり
    (1つ重複が見つかった)

もし仮に返り値のデータ個数が「2」「3」・・・と表示されたら、重複データが2個、3個あるということになります。

14_006_⑧データに重複があるかチェックする方法(関数計算の戻り値が2以上だった場合)

このようにCOUNTIF関数を使えば『検索値に一致するデータの個数を数える』ことで重複があるかどうかを簡単にチェックうすることができます。

COUNTIFは重複があるかないかはもちろんそのデータに重複が 「何個 あったのか」重複の数も把握することができるので一石二鳥です。

VLOOKUP関数を使って重複をチェックする方法

VLOOKUPは、検索値に一致するデータ(もしくは一致したデータと同行のデータ)を引っぱってくる関数なので「一致するデータがある=重複がある」という判別の仕方で重複チェックができます。

VLOOKUP関数の公式=VLOOKUP( 検索値, 範囲 ,列番号 ,検索方法)

検索値:検索したい値
範囲:検索をかけたい範囲
列番号:抽出したい列(範囲中の左から数えて何番目か)
検索方法:検索する形式(※)

※検索方法は以下2パターンから選択する
完全一致で検索したいなら:「0」または「FALSE」
近似値検索をしたいなら:「1」または「TRUE」と入力

では、操作方法です。

 Excelでの操作方法

例:VLOOKUP関数を使って番号Aと番号Bのデータに重複があるかをチェックする(D列にチェック判定を表示させる)
14_007_⑨VLOOKUP関数でデータに重複があるかチェックする方法(例のイメージ)

番号Bのデータがそれぞれ番号Aの中にあるかどうかを返ってくるデータの内容によって判別していく
(※関数はコピーするのでひとつひとつ入力する必要はありません)

1セルD3に関数を入力していく
=VLOOKUP()の中に「検索値」「範囲」「列番号」「検索方法」を入れていく

検索値:C3
検索したい条件はセルC3のデータなのでセル番号で指定して「C3」とする


範囲:$A$3:$A$11
検索をかけたい範囲は「A3:A11」だが、関数をドラッグ&コピーしたときに範囲をずらしたくないので絶対参照にして「$A$3:$A$11」とする


列番号:1
抽出したい列は範囲中の左から数えて1列目なので「1」とする


検索方法:0
検索する形式は完全一致でいいので「0」または「FALSE」とする

これらを公式にあてはめると
=VLOOKUP(C3,$A$3:$A$11,1,0)
14_008_⑩VLOOKUP関数でデータに重複があるかチェックする方法(関数に引数を入力する)

2「#N/A」=エラーを意味する
➔ 指定の条件では一致するデータが見当たらなかったということです
14_009_⑪VLOOKUP関数でデータに重複があるかチェックする方法(関数計算の戻り値がエラーだった場合)

3このセルD3の関数を下段までオートフィルコピー(※オートフィルのやり方14_010_⑫VLOOKUP関数でデータに重複があるかチェックする方法(関数を下段までコピー)

4全セルのデータが表示される

この戻り値(表示されたデータ)によって重複があるかないかを判別する

14_011_⑭VLOOKUP関数でデータに重複があるかチェックする方法(データ行ごとに重複があるかをどうかをチェックする)

表示された戻り値が・・・

  • 「#N/A」なら➔ データに重複なし
  • 検索値と同じ値なら➔ データ重複あり(いくつ重複しているかはわからない)

14_012_⑬VLOOKUP関数でデータに重複があるかチェックする方法(関数計算の戻り値によって重複があるかを判別する)

VLOOKUPを使った方法は「検索値に一致するデータを抽出している」のでCOUNTIF関数とは違い【重複がいくつあったかまでは判別することができません】

重複があるか、ないかさえがわかればOKというとき向けの方法です。

番外編:VLOOKUPのエラー値「#N/A」を別文字に変換して表示させる方法

VLOOKUP関数の重複チェックで表示される「#N/A」のエラー値。

先ほどの例では、これを間接的に重複ナシに判別していましたが「#N/A」を最初から別の文字に置き換えて表示させることも可能です。

それにはIFERROR関数(イフエラー関数)を使います。

IFERROR関数の公式

=IFERROR ( 値, エラーの場合の値)


値:エラー判定したい関数式や数式を入力

エラーの場合の値:エラーのときに表示させたい文字列や関数式、数式を入力

さきほどVLOOKUP関数の例で求めたデータをそのまま使って、エラー値を「重複なし」という文字で表示させてみます。

 Excelでの操作方法

例)VLOOKUP関数を使って重複チェックする、またエラーの時は「重複なし」と表示させたい14_013_⑨VLOOKUP関数でデータに重複があるかチェックする方法(例のイメージ)

1IFERROR関数を入力していく

値:VLOOKUP(C3,$A$3:$A$11,1,0)
エラー判定したい関数式は、そのまま重複をチェックする式を使って「VLOOKUP(C3,$A$3:$A$11,1,0)」とする


エラーの場合の値:"重複なし"
エラーのときに表示させたい文字列を重複なしなので「"」で囲って「"重複なし"」とする

公式にあてはめると以下になる
=IFERROR(VLOOKUP(C3,$A$3:$A$11,1,0),"重複なし")
14_014_⑮戻り値のエラー表示を独自の文字列に変換する方法(例のイメージ)

2エラー値となるところが「重複なし」と表示されるようになる
14_015_⑯戻り値のエラー表示を独自の文字列に変換する方法(IFERROR関数を使ってエラーを特定の文字列に置き換える)

あとは、全セルを処理したければセルD3の関数式をオートフィルコピーするだけでOK(※オートフィルのやり方14_016_⑰戻り値のエラー表示を独自の文字列に変換する方法(戻り値が指定した文字列に置き換わって表示される)

自分が使うだけのデータであれば「#N/A」でも十分ですが、第三者が目に通すものであればこんなひと工夫も気づかいとして素敵ですよね。

CASE2:Excel(エクセル)で重複したデータを削除する方法

重複したデータを見つけてそのまま削除することもできます。

「重複を削除」という機能を使えば、同じ列にある重複データを一瞬で自動削除することができます。

この機能自体は「列データ(縦並びのデータ)」にしか使えませんが、

少し工夫すれば「行データ(横並びのデータ)」にも対応することができるので方法を2つ紹介していきたいと思います。

列データ(縦並びデータ)の重複を消す場合

まずは列データの重複削除の方法です。

 Excelでの操作方法

例)A列にあるデータの重複を削除したい
14_003_重複を削除したいデータ

1まずはA列をまるっと範囲選択して、データタブにある「重複を削除」をクリック
14_004_重複を削除

2ポップアップが開くので重複を削除したい列にチェックマークが入っているのを確認してOKボタンを押す
14_005_メニューでOKボタン

3「重複する1個の値が見つかり、削除されました。一意の値が7個残っています」とポップアップが開けば重複の削除完了
14_006_重複削除

「りんご」のデータが1つ消えましたね!
14_007_重複削除された状態

もし重複データが存在しない場合は「重複する値は見つかりませんでした」と表示されます。

行データ(横並びデータ)の重複を消す場合

今度は ひと手間加えて行データの重複を消してみたいと思います。

方法としては、データを縦にして重複を削除したうえでもう1回横並びに直すっていう単純な作業です。

 Excelでの操作方法

例)Aの行データの重複を削除したい
14_009_行データを削除する例

1まず行データ全体をまるっと範囲選択し適当なセルにカーソルを置いた状態で、マウス右クリック➔「形式を選択して貼り付け」をクリックする
14_010_行データをコピペ

ポップアップで行列を入れ替えるを選択してOKボタンをクリック
14_011_行列の入れ替え

2貼り付けられた縦データを選択してデータタブの「重複を削除」をクリック
ポップアップが開いたらOKボタンを押して重複を削除する
14_012_重複を削除をクリック
14_013_重複を削除する

3重複の消えた縦データ全体をコピーして適当なセルにカーソルを置き、もう一度同じ操作で行列を入れ替える
14_014_再度行列を入れ替える

これで、重複の消えた状態の列データ(横並びデータ)が出来上がりました!
14_015_重複のないデータになった

あとは、不要なデータは消したりして見た目を整えてもらったらばっちりです。

ちょっとひと手間かかりますが、どうしても行データで重複を削除したい場合は使ってみてください。

以上、今日は「データの重複をチェックする方法」「削除する方法」を紹介してきました。

簡単な操作なのでぜひ活用してみてください!

 

この記事を見ている人におすすめの本(Amazonレビュー: