エクセル関数やVBAでよくある悩み。
- データに重複しているデータ存在しているので、削除したい。
- でも、どんな関数を利用したらいいのかわからない。
そこで、本章では、
ポイント
- エクセル関数を利用して重複データを削除する方法
- 重複データを1件だけ残して、重複のないデータにする
この2つの方法について解説していきます。
エクセル関数の重複データの確認の仕方
重複データを確認する方法は、それほど難しくありません。エクセルの機能に重複データを調べる方法がありますので、それを活用しましょう。
その方法が、「条件付き書式設定」で確認・設定することが可能です。
エクセルの機能で調べることができるので、非常に簡単です。
条件付き書式設定➡一意の値または重複する値だけを書式設定➡書式(背景色を設定)➡OK
この設定をした後で、さらに「OK」を返すと適用されますので、ご注意下さい。
また重複があるかどうかについても「COUNTIF関数」を使って、その重複個数を調べればいいので、シンプルな方法で調べることができます。
重複データを1件だけ残す2つの考え方
但し、この後その重複している案件のうち1つだけを残して削除したい場合には、その方法は少し小手先テクニックが必要です。
2つ考え方があります。
【重複データを1件だけ残す2つの考え方】
- 重複しているものに一つだけ残して他はフラグを立てる方法
- 同じデータに連番を振り、「1」以外のカウントアップされたものは削除する方法
1つ目は、重複しているものに1つだけを残して他には全てフラグを立てる方法で、これは、IF文とCountif文の2つの組み合わせで記述する方法です。
もう一つが1件のものには「1」を、重複するデータには、その個数をカウントアップしていく方法です。
Countif文を活用して、1の案件だけに絞れれば、1以外を削除することで、その値は1件ものの重複の無い案件になります。
それではまず、「重複データのうち一つだけを残して削除する」方法について解説していきましょう。
1.1より大きいものはフラグを立てる
まずは、A・B列をご覧ください。
1 | IF(COUNTIF($A$2:A2,A2)>1,1,"") |
- $A$2:A2:検索範囲
- A2:検索文字
こちらの記述は、$A$2を固定で持ち、最初の行から読み込み行を徐々に引き延ばすことで、重複データを確認していく方法です。
Countifは重複「=IF(COUNTIF($A$2:A2,A2)>1,1,"")」が見つかるとその重複件数を表示してくれますので、1個より大きい場合には、If文で「1」を返す,そうでなければ空白を返すというロジックになっています。
この構文を利用すれば、B列の「1」を削除してしまえば重複がなくなるというわけですね。
2.重複データに連番を振る
もう一つは、その個数ごとに数をカウントアップして、連番を振っていく方法です。その記述がこちら。
下記D,E列をご覧ください。
重複するものには連番を振っていくという考え方でも、重複データを削除できます。その記述がこちら。
ポイント
- Countif(Indirect("D2:D"&ROW()),D2)
- Indirect関数:その()内を文字列として指定する
すると、上からカウントしたときに2つ目の重複については「2」、3つ目は「3」の数字がたちます。
これで重複しているデータに連番をふることが出来ました!
重複を削除したいときは、2以上の番号がふられている行を削除すれば、重複しているものも1件だけ残して削除することができます。これで、重複がないデータを作ることができます。
おすすめExcel関数参考書のご案内
上記のようなExcel関数に関してもっと調べる環境があったらと感じる方も少なくありません。
そこで、おすすめなのが私自身もVBAやエクセル関数を利用する際に今でもよく利用している下記参考書がかなり有益な情報が入っています。しかもサンプル動画や電話環サポート付きという優れもの。
7500万部売れていて、かなり実用性のある内容が盛り込まれているので、よく関数などを利用される際には、こちらの教本が一冊あるだけで色々な関数に対しても汎用性が効くようになるので、ぜひ上手に活用してみて下さい。
(※OFFICE365,2019,2016,2013,2010に対応・動画・電話サポート付き)
まとめ
このように、重複しているものを判断するには、エクセルの条件付き書式の機能で、容易に解決することができます。
重複したデータを1件だけを残して削除する方法は、色々なやり方があるようです。IF文などを併用して上手に関数を組み込みながら作っていきましょう。
<楽天Web検索の自動クリックツール>
楽天Web検索を自動でクリックできる機能を開発しました。これにより、何度も手動で検索しなくても、自動で検索してくれるので、手軽にポイントをゲットできるVBAによる仕組みです。noteのページにて期間限定価格で100部ご紹介しております。ご興味のある方は下記ページより詳細をご確認下さい。^^
【VBA】デバッグってなに?覚えておきたい5つのデバッグ機能
続きを見る