Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Duplikate/Doppelte Werte aus mehreren Spalten löschen
#1
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
Antworten Top
#2
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
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Hannes
Antworten Top
#3
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.
Antworten Top
#4
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


Angehängte Dateien
.xlsm   Hannes.xlsm (Größe: 17,26 KB / Downloads: 3)
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Hannes
Antworten Top
#5
Hallo Fennek,

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

VG

Hannes
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste