【Excel】「重複の削除」で残る重複データは初めのデータ

Excelの機能の1つとして、「重複データの削除」というものがあります。

Excel2007から登場した機能であり、読んで字のごとく、「重複するデータの削除」を行う機能なのですが、これについて少しだけ調べたのでまとめます。

実験
・テーブルをいくつか用意し、「重複データの削除」を用いて結果を確認
・「マクロの記録」による「重複データの削除」のメソッドを確認

「重複の削除」機能について

「重複の削除」機能について例に触れながら説明します。

この機能は、選択範囲において「基準」を軸に重複するデータを削除する機能です。
この時、基準は扱うデータにおいて様々です。

例を使って説明します。

以下のテーブルで基準を「氏名」にして重複データの削除を行います。
色を付けている部分は、「氏名」列で被りがある行です。「中村」が被っています。

初期テーブル

したがって、被りがある「中村」の行のどちらかは削除されます。
「性別」や「居住地」が違っていようと、基準は「名前」なので問答無用で削除されます。

この操作を行うことはつまり、「氏名」の被りは許さないという事です。

重複の削除操作

範囲を選択し、「データ」タブの「重複の削除」より行います。

重複の削除の操作画面

すると、以下のように表示されますので、「氏名」のみにチェックを入れます。

重複の削除操作の列選択

すると、以下のように重複データが削除されたテーブルとなりました。

削除後テーブル1

この時、行方向から見て後に出てくる「中村」データが消え、最初のデータが残っています(行番号3)。

念のため、「中村」データをもう一行追加して確認してみると、これもやはり最初のデータが残りました。

削除後テーブル2

「重複データの削除」では、最初に出てきたデータが残されるようです。

ここが重要ですね。

結論自体は色々な所に載ってはいますが、実際に挙動を確認しながら再確認できました。

「重複データの削除」をマクロで記録する。

では、VBAで確認するとどうなるか、というところで確認しました。
記録すると、以下の通り記述されています。

ActiveSheet.Range("$B$3:$E$8").RemoveDuplicates Columns:=1, Header:=xlYes

「RemoveDuplicates」という記述で重複の削除が出来るようです。
オプションでカラム(列1:氏名)指定及び見出しも重複確認に含めています。

その他の注意点

「氏名」列しか選択していない状態で、「重複の削除」を押すと、以下のようなメッセージが出てきます。

「隣にもデータが入ってるけど、これは含めなくて良いの?」というメッセージです。

「現在選択されている範囲を並び替える」にチェックすると、以下のように他の部分は無視して削除されます。

終わりに

まとめると、「重複の削除」機能=RemoveDuplicates

  • 「重複の削除」機能=RemoveDuplicates
  • 重複したデータは最初に現れた行のみ残す。

です。

機能が追加された際には、VBAのメソッドではどうなっているかも併せて確認すると良いでしょう。

IT, ExcelExcel

Posted by 行未