この記事を読むのに必要な時間は約 7 分です。
Excelの表、CSVなど、重複行を削除したいことってありますよね。
データが数件なら、目で見て探し出すこともカンタンですが、100行を超えてくるとかなり大変です。
以前、数万行のCSVデータをデータベースに登録するとき、重複行のためエラーになりました。
目視で確認するのはムリすぎる量なので、ツールを使わないといけません。
今回は、エクセルで出来る重複行の削除方法を3つ紹介します。
3つの削除方法
今回紹介するのはこの3つです。
- 「重複の削除」機能を使って削除
- ソートして削除
- COUNTIFを使って削除
「重複の削除」機能はエクセルに付いていて、手っ取り早く削除するとき便利です。
ただ、どの行が重複しているのか確認できず、サクッと消えてしまうので、あらかじめ確認しておきたい場合はあとの2つの方法で行うのが良いでしょう。
ソートして削除する方法は、重複行なら連続して並ぶことを利用したやり方です。
ソートした後1つ上の行と比較して、重複かどうかを判断します。
このやり方の欠点は、並び替える必要があるのと、1列分しか比較できないこと。
データをいったんCSVに変換して1つの列に貼るなどのやり方で、もともと複数列のデータでも対応可能です。
COUNTIFを使って削除する方法も、データを1列にしないといけません。
ただし、並べ替えなくてもCOUNTIFで1以上となった行が重複していると分かるので、ソートするよりは元のデータに手を加えなくて済みます。
では、ここからは具体的なやり方を、画像と共に紹介します。
「重複の削除」機能を使って削除
重複行を削除する例ということで、とある日の気象庁のデータをエクセルシートに貼りました。
そして、途中のデータを最終行にもコピペし、重複行を用意しました。
これをエクセルの機能「重複の削除」で削除します。
データタブの中に「重複の削除」ボタンがあります。
エクセルのウインドウを画面の半分とか狭く表示していると、ボタン名が隠れたりボタン自体が見えないかもしれません。
見当たらなかったら、画面全体に最大化してみてください。
では、「重複の削除」ボタンを押します。
今回は削除対象の行が含まれるデータ部を自動で選択してくれました。
意図しない範囲も含まれてしまうことがあれば、最初から対象のデータ部を選択しておいた方が良いでしょう。
「重複の削除」ボタンを押すと、下図のウインドウが表示されるので、表に含まれる列が問題ない事を確認してOKボタンを押します。
重複した行の内、下方にあるものが削除されました。
ソートして削除
最初に用意したデータを、いったんCSVにしてB列に収まるよう貼りました。
重複した行は同じく先頭が「5」のものです。
「ホーム」タブの「並べ替えとフィルター」の中から「昇順」をクリックします。
これで昇順に並びました。
C2セルに、「=B2=B1」と書いて下までコピペします。
重複した行は連続して並ぶので「TRUE」。
少しでも異なれば「FALSE」になります。
あとはヘッダ行を付けてフィルタすれば、重複行を除外できます。
フィルタして非表示にしても良いし、いったん重複行だけ表示して行削除することも出来ます。
COUNTIFを使って削除
重複行が1つだけだと味気ないので、さらにもう1行用意しました。
構文は、COUNTIF(範囲, 検索条件) 。
下図のように7行目の判定であれば、
=COUNTIF(B$1:B6,B7)
と書きます。
B列の1行目から、7行目より1つ上の6行目までの範囲に同じ値が1つあれば、1とカウントされるわけです。
2つあれば2、3つなら3、そのままですね。
先ほどと同じように、ヘッダ行を付けてフィルタすれば、重複行を除外できます。
COUNTIFの結果、0以外の行が重複行です。
こちらも、フィルタして非表示にしても良いし、いったん重複行だけ表示して行削除することも出来ます。
まとめ:重複したデータを削除する3つの方法
重複行を削除するやり方でした。
- エクセルの「重複の削除」機能を使う
- ソートして、1つ上の行と比較し判定する
- COUNTIF関数で、先頭行から1つ上までの範囲で一致する値をカウントする
やり方は色々あります。
どれだけ重複データがあるのか知りたかったり、削除前にいったん確認しておきたい場合は、ソートやCOUNTIFで見てみると良いです。
いきなり消えたら困る場合は便利ですね。
その場に合ったやり方を選んでもらえればと思います。
最後までお読みいただき、ありがとうございました。