3行マクロ重複行を見つけて削除
動画で3行マクロ解説
重複行を削除する
Excelの3行マクロ~すぐに使えるミニマクロ11回です。
今回は データ集計時の 困った ナンバーワン 重複行の削除です。 データが重複していると正確な集計ができません。
しかし 大量のデータを複数で入力するケースなどでは起こりがちです。
重複業を除いて集計するためには 、 元のデータはそのまま取っておいて重複行だけを非表示にするとか、 あるいは非表示しないで完全に削除するとかの場合によって使い分ける必要があるかもしれませんけれども、 今回のケースでは完全に 削除します。
複数列からなる1行のデータ のすべてが一致した場合に削除と言う パターンです。
それでは、4列からなる表で全部一致しないと重複としないケースと、それ以外で、指定した2列や3列が一致したら重複とする場合などでは、どのように書き分けたらよいのでしょうか。
VBAでは重複するかどうかの判定をする列にArray(配列)を使っています。4列の表で4列すべて指定するなら、Array(1,2,3,4)などとするわけです。
それで、日付は同じでなくてもいいという場合、1列が日付なら、Array(2,3,4)というような指定です。
(サンプルファイルは、こちらです。 重複削除する3行マクロ、時短激うまExcelの3行マクロ~すぐに使えるミニマクロ11回サンプル)
マクロで重複行を削除する
https://youtu.be/OwQLjqkN08wVBA 重複行を削除するマクロ、Excelはどのように重複を削除しているのかしくみがわかるVBAコード
3行マクロの重複を削除する動画内で紹介したVBAコード
'============================================================== '=3行マクロ講座入門編 11回 https://kokodane.com/ '============================================================== Sub 重複削除() Selection.AdvancedFilter Action:=xlFilterInPlace, Unique:=True Selection.Copy Sheets.Add After:=ActiveSheet ActiveSheet.Paste End Sub Sub 重複削除2() ActiveCell.CurrentRegion.Select Selection.RemoveDuplicates Columns:=Array(1, 2, 3, 4), Header:=xlYes End Sub Sub 重複削除3() ActiveSheet.Range("B:E").RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes End Sub Sub 重複削除4() Dim lastR As Long lastR = Cells(Rows.Count, 2).End(xlUp).Row Range("B2", "E" & lastR).RemoveDuplicates Columns:=Array(1, 2, 3, 4), _ Header:=xlYes End Sub