Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Doppelte Zeilen löschen- 2 Spalten als Kriterium

Doppelte Zeilen löschen- 2 Spalten als Kriterium
07.01.2009 18:32:49
Daniel
Hallo,
ich habe die Suchfunktion benutzt, aber leider ohne zufriedenstellendes Ergebnis.
Ich möchte per Makro alle doppelten Zeilen in einem Blatt löschen, wenn
die Inhalte der Spalten A und E komplett übereinstimmen.
Kann mir jemand helfen?
Grüße,
Daniel
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelte Zeilen löschen- 2 Spalten als Kriterium
07.01.2009 18:43:13
Hajo_Zi
Hallo Daniel,
warum Makro?
Doppelte Löschen
angenommen Deine Daten stehen in A1 bis A?
Bereich markieren = Spalte A anklicken (evtl. eine Leerzeile vorher einfügen)
Daten / Filter / Spezialfilter
keine Duplikate
jetzt kannst du noch einstellen, ob an gleicher Stelle oder woanders placiert; hier also B1 eingeben
Spalte A anschließend löschen
Bei mehreren Spalten, muss die Liste eine Überschrift haben, am besten fett formatiert, dann erkennt sie auch Excel als Überschrift.

Anzeige
AW: Doppelte Zeilen löschen- 2 Spalten als Kriterium
07.01.2009 18:47:35
Stefan
Habe ein ähnliches Problem:
Insgesamt 8 Spalten, über 18000 Zeilen, es sollen die Duplikate gelöscht werden, die in Spalte A,B und E den gleichen Inhalt aufweisen. Das haut bei mir mit dem Spezialfilter nicht hin. Oder was muss genau in den Listen- und Kriterienbereich?
Vielen Dank im Voraus
Stefan
Anzeige
AW: Doppelte Zeilen löschen- 2 Spalten als Kriterium
07.01.2009 19:16:33
Daniel
Hi
hier ein Marko zum Löschen der Duplikate in Spalte A, B und E.
um es zum auf die Duplikaten in A und E anzupassen, muss der fette Teil aus dem Code entfernt werden.

Sub DoppelteLöschen()
Dim sp As Long
Dim ze As Long
'--- Tabellengrösse feststellen
sp = Cells(1, Columns.Count).End(xlToLeft).Column
ze = Cells(Rows.Count, 1).End(xlUp).Row
'--- Original-Reihenfolge sichern
With Cells(1, sp + 1).Resize(ze, 1)
.FormulaR1C1 = "=Row()"
.Formula = .Value
End With
'--- Daten umsortieren für höhere Geschwindigkeit
Range("A1").CurrentRegion.Sort _
Key1:=Range("A2"), order1:=xlAscending, _
Key2:=Range("E2"), order1:=xlAscending, _
Key3:=Range("B2"), order1:=xlAscending, _
header:=xlYes
'--- Doppelte Datensätze mit Formel markieren und löschen
With Cells(2, sp + 2).Resize(ze - 1, 1)
.FormulaR1C1 = "=IF(AND(RC1=R[-1]C1,RC2=R[-1]C2,RC5=R[-1]C5),"""",RC[-1])"
.Formula = .Value
.CurrentRegion.Sort Key1:=Cells(2, sp + 2), order1:=xlAscending, header:=xlYes
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
Cells(1, sp + 1).Resize(ze, 2).ClearContents
End Sub


die Bedingungen, damit das Makro funktioniert:
- die Tabelle an sich ist geschlossen, dh sie enthält keine Leerzeilen und -Spalten
- die Tabelle hat eine einzeilige Überschrift
- die Tabelle darf umsortiert werden (allerdings wird die originalsortierung am Ende wieder hergestellt)
- das Blatt enthält außer der Tabelle keine weiteren Daten
Gruß, Daniel

Anzeige
AW: Doppelte Zeilen löschen- 2 Spalten als Kriterium
07.01.2009 19:26:23
Daniel
Cool, danke.
AW: Doppelte Zeilen löschen- 2 Spalten als Kriterium
12.01.2009 16:16:44
Daniel
Mit dem angegebenen Code kommt eine Fehlermeldung, falls es keine doppelten Einträge gibt. Wie kann diese Meldung umgangen werden?
Laufzeitfehler '1004':
Keine Zellen gefunden.
AW: Doppelte Zeilen löschen- 2 Spalten als Kriterium
12.01.2009 17:39:50
Jan
Hi,
Sub marine()
On Error Resume Next
'...Dein Code
If err 0 Then Msgbox "Nichts gefunden!"
Exit Sub
mfg Jan
Anzeige
AW: Doppelte Zeilen löschen- 2 Spalten als Kriterium
07.01.2009 19:22:20
Hajo_Zi
Hallo Stefan,
die Daten müssen tatsächlich identisch sein, keine Leerstellen davor oder dahinter.
Gruß Hajo
AW: Doppelte Zeilen löschen- 2 Spalten als Kriterium
07.01.2009 19:11:00
Daniel
Makro: weil ich das in ein bestehendes Makro einbauen will.
AW: Doppelte Zeilen löschen- 2 Spalten als Kriterium
07.01.2009 19:14:27
OttoH
Hallo Hajo,
mit einer Spalte ist das ok.
Aber wie funktioniert es, wenn die Kriterien, an Hand denen ich die Duplikate bestimme, in mehreren Spalten stehen?. Man könnte dann eine Hilfsspalte bauen, in der die Kriterien satzweise verknüpft werden und dann nach dieser filtern.
Aber an Hand welcher Spalte reagiert Excel's Spezialfilter auf Duplikate? Nimmer er nicht jeweils den kompletten Satz?
Gruß OttoH
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Doppelte Zeilen in Excel Löschen: So Geht's


Schritt-für-Schritt-Anleitung

Um doppelte Zeilen in Excel zu löschen, insbesondere wenn du zwei Spalten als Kriterium verwenden möchtest, kannst du folgende Schritte ausführen:

  1. Daten markieren: Markiere den Bereich deiner Daten, z. B. A1 bis E10.
  2. Spezialfilter anwenden:
    • Gehe zu Daten > Filter > Spezialfilter.
    • Wähle die Option „Keine Duplikate“.
    • Gib den Zielbereich ein, in dem die bereinigten Daten angezeigt werden sollen, z. B. B1.
  3. Spalte löschen: Lösche die ursprüngliche Spalte A, wenn du die Duplikate entfernt hast.

Wenn du mit mehreren Spalten arbeitest, stelle sicher, dass deine Liste eine Überschrift hat, damit Excel diese als solche erkennt.

Für eine VBA-Lösung kannst du den folgenden Code verwenden:

Sub DoppelteLöschen()
    Dim sp As Long
    Dim ze As Long
    sp = Cells(1, Columns.Count).End(xlToLeft).Column
    ze = Cells(Rows.Count, 1).End(xlUp).Row

    With Cells(1, sp + 1).Resize(ze, 1)
        .FormulaR1C1 = "=Row()"
        .Formula = .Value
    End With

    Range("A1").CurrentRegion.Sort Key1:=Range("A2"), order1:=xlAscending, Key2:=Range("E2"), order1:=xlAscending, header:=xlYes

    With Cells(2, sp + 2).Resize(ze - 1, 1)
        .FormulaR1C1 = "=IF(AND(RC1=R[-1]C1,RC5=R[-1]C5),"""",RC[-1])"
        .Formula = .Value
        .CurrentRegion.Sort Key1:=Cells(2, sp + 2), order1:=xlAscending, header:=xlYes
        .SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    End With

    Cells(1, sp + 1).Resize(ze, 2).ClearContents
End Sub

Achte darauf, dass deine Tabelle keine Leerzeilen oder -spalten enthält und dass sie eine einzeilige Überschrift hat.


Häufige Fehler und Lösungen

  • Fehlermeldung „Keine Zellen gefunden“:

    • Diese Meldung tritt auf, wenn keine doppelten Werte vorhanden sind. Du kannst dies umgehen, indem du im Makro On Error Resume Next verwendest.
  • Kein Ergebnis nach dem Spezialfilter:

    • Stelle sicher, dass die Daten wirklich identisch sind, ohne Leerzeichen davor oder dahinter. Überprüfe auch die verwendeten Kriterien.

Alternative Methoden

Eine weitere Möglichkeit, um doppelte Werte zu löschen, ist die Verwendung von bedingter Formatierung:

  1. Markiere die relevanten Spalten.
  2. Gehe zu Start > Bedingte Formatierung > Regeln zum Hervorheben von Zellen > Doppelte Werte.
  3. Wähle ein Format aus, um die doppelten Werte hervorzuheben.

Du kannst dann manuell die hervorgehobenen Zeilen löschen.


Praktische Beispiele

Angenommen, du hast folgende Daten:

A B E
Max 100 Berlin
Max 100 Berlin
Tom 200 Hamburg
Max 100 Berlin

Um die doppelten Zeilen zu löschen, die in Spalte A und E identisch sind, kannst du die oben genannte Schritt-für-Schritt-Anleitung verwenden. Nach dem Löschen solltest du nur noch:

A B E
Max 100 Berlin
Tom 200 Hamburg

sehen.


Tipps für Profis

  • Makros automatisieren: Wenn du häufig mit doppelten Werten arbeitest, speichere dein Makro und weise ihm eine Tastenkombination zu, um es schnell zu starten.
  • Daten validieren: Verwende die Datenvalidierung, um sicherzustellen, dass keine doppelten Eingaben zulässig sind, bevor sie in deine Tabelle gelangen.
  • Excel-Duplikate automatisch entfernen: Nutze Excel's integrierte Funktionen, um regelmäßig eine Überprüfung auf doppelte Werte durchzuführen.

FAQ: Häufige Fragen

1. Wie kann ich doppelten Inhalt aus mehreren Spalten entfernen? Du kannst die oben beschriebene Methode mit dem Spezialfilter verwenden oder ein Makro anpassen, das mehrere Spalten berücksichtigt.

2. Was passiert mit den gelöschten Zeilen? Die gelöschten Zeilen werden dauerhaft aus der Tabelle entfernt. Stelle sicher, dass du eine Sicherungskopie deiner Daten hast, bevor du das Löschen durchführst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige