• ベストアンサー

重複行を削除するエクセルのマクロ

重複している行を削除したいです。     A    B    C    D 1   a123   4567   PX2   0 2   a456   4567  PX3  5000 3   a789  4567   PX5   10 4   a567   4567   PX4   20 5   a123   4567   PX2   0 A行とC行を検索し両方が重複していたら重複している一行を削除するボタンを作りたいと思っております。どうぞご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

禁止事項に丸投げ・依頼と言う項目があるのをご存知ですか? 一度目を通してください、丸投げは禁止されています 参考になりそうなコードを提示しておきますが 以上の理由からエラー処理していません 詳細やエラー処理はご自分でお願いします ’---------------------------------------------------------- Sub test() Dim i, ii As Long For i = 1 To Range("a65336").End(xlUp).Row For ii = Range("a65336").End(xlUp).Row To i + 1 Step -1 If Cells(i, 1).Value = Cells(ii, 1).Value _ And Cells(i, 3).Value = Cells(ii, 3).Value Then Rows(ii).Delete Shift:=xlUp End If Next ii Next i End Sub ’---------------------------------------------------------- 参考までに

その他の回答 (2)

  • kuma56
  • ベストアンサー率31% (1423/4528)
回答No.3

>どうぞご教授ください。 どういうやり方をして、どの部分が分からないのでしょうか? そういう事をきちんと書かないと、丸投げと判断されて削除の対象になりますよ。 ボタンを作るのなら、フォームやオートシェイプなどで出来るだろうし、マクロで処理したいのならマクロの記録と言う機能を使えば比較的簡単にできるでしょう。 まずはご自身が考える事が必要だと思います。 >A行とC行を検索し両方が重複していたら・・・・・ まず、手作業でやるとしたらどうやるでしょうねぇ?? とうぜんA列とC列の値を眼で追って見比べばすよね? でも沢山ある中から(有るかどうか分からない物を)探すのは大変だし、見落としも考えられるでしょう。 ならばA列とC列をキーにしてソートしてやれば、重複しているデータは上下に並んでくれるだろうから、見つけやすくなるのではないでしょうか。 それでも人間が眼で見ているだけでは見間違えや見落としがあるだろうから、エクセル自身にも探してもらいましょう。 例えばどこか空きセルにIF関数とAND関数を使ってA列・C列の値が上のセルと同じなら1そうでなければ0としてやって、1になったデータを削除すればいいのではないでしょうか? これをマクロの記録でマクロ化して、フォーム等のボタンに登録すればご希望の事はできませんか??

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

AとCが共に重複している場合は、BとDも重複しているのですか? 重複していない場合、削除するのは先データor後データ?

関連するQ&A