非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

Excel/VBA:重複しないデータを抽出して別のセルに表示させる方法

   

Excel/VBAでデータ群から重複しないものだけ抽出して別のセルに表示させる方法です。

元々、Excelには「重複の削除」機能があるのですが、元データを消してしまうので元データを残したい場合はあまり役立ちません。

[ad#top-1]

「メニュー」-「重複の削除」機能は重複を削除したデータを上書きしてしまうのです。

 

そうではなく、下のように重複を削除したデータを隣の行に表示させたい場合はどうすれば良いのか。

 

 

VBAで書こう!

A列には重複した188データがあります。これを重複部分を削除してB列に生成させたいと思います。

 

ソースコードは以下の通りです。

Sub UniqueList()
  Range("A1:A189").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("B1"), Unique:=True
End Sub
 

 

実行すると以下の通り、B列に重複しないデータが生成されました。

 

A列には188ものデータがあったのですが、重複部分を削除して47データになってくれています。

 

このプログラムの注意点としてB列の先頭(B1セル)が以下の条件になっている必要があります。

  1. 空白
  2. A列の先頭行(A1セル)と同じ文字列(今回は「県名」)

この条件以外(B1に別の文字列が入っている)だと、エラーになるので注意ください。

 

[ad#ad-1]

スポンサーリンク

 - Excel, VBA