Clever-Excel-Forum

Normale Version: Duplikate/Doppelte Werte aus mehreren Spalten löschen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo CEF,

ich habe mal wieder eine Frage, bei der ich im Forum leider keine Antwort gefunden habe.

Ich möchte gerne Duplikate entfernen, die sich in mehreren Spalten befinden. 

Ursprungsdatei ist also so:

Spalte 1  Spalte 2 Spalte 3
1                3          2
2                4          6
3                5          10
4                6          11
5                7

Jetzt möchte ich gerne in Spalte 2 die Werte 3,4 und 5 gelöscht haben, weil diese schon in Spalte 1 vorkommen (Priorität also von links kommend).

Und in Spalte 3 müssen die Werte 2 und 6 gelöscht werden, weil diese weiter links schon vorkommen.

Das Ganze sollte optimalerweise für mehrere Spalten funktionieren, also z.B. 10 auf einmal, und gleichzeitig nicht nur für Zahlen sondern auch für Text funktionieren.

Ich hatte diesen Beitrag von Klaus-Dieter gesehen (https://www.clever-excel-forum.de/Thread...re+spalten), das würde allerdings in meinem Fall damit nicht funktionieren, oder?

Ich wäre für Ratschläge sehr dankbar.

Viele Grüße

Hannes
Hallo,

eine Konzeptidee:

man beginnt mit der letzten Zahl und prüft mit VBA und Zählenwenn, ob es ein Duplikat ist. Falls ja, wird die Zahl gelöscht.

Ohne weitere Informationen zum Sinn/Hintergrund der Fragestellung werde ich meinen PC mit Excel aber nicht aufwecken.

mfg
Hallo Fennek, 

danke für die Idee!

Also quasi beginnt man mit der letzten Zahl/letztem Text der letzten ausgewählten Spalte und prüft von da aus zunächst nach oben gehend und dann wenn man bei der obersten Zeile ist "springt" der Befehl in die Spalte links davon zum untersten Datensatz usw. usw. Richtig?

Der Hintergrund der Frage ist durch die Arbeit bedingt. Ich spare viel Zeit im Vergleich zu:

Daten aus Spalte 2 ausschneiden -> unter den Daten von Spalte 1 einfügen und farblich markieren, Daten von Spalte 3 ausschneiden, farblich anders markieren und auch dort einfügen (..) und dann alles auswählen und Duplikate entfernen machen.
Meine Idee war einfach, die Umsetzung etwas komplizierter als gehofft. Wenn du den Code nachvollzogen hast, ersetze die Farbe durch "clear"

Code:
Sub T_1()

Dim WSf As WorksheetFunction: Set WSf = Application.WorksheetFunction
Dim rng As Range

Set rng = Range("A3").CurrentRegion


For j = rng.Columns.Count To 1 Step -1
    For i = rng.Columns(j).Cells.Count To 1 Step -1
        If IsEmpty(rng.Cells(i, j)) = False Then
            If WSf.CountIf(rng, rng.Cells(i, j)) > 1 Then rng.Cells(i, j).Interior.Color = vbYellow
        End If
    Next i
Next j

End Sub
Hallo Fennek,

vielen Dank für deine Mühe, das ist wirklich nett. Hilfst mir damit sehr :)

VG

Hannes