Excel - Zellen der Spalten vergleichen und Zeile löschen, wenn sie teilweise denselben Wert enthalten

0

Ich versuche, Zeilen einer CSV-Datei zu löschen, wobei zwei Spalten teilweise denselben Wert enthalten, wie folgt:

ColA                     ColB                 ColC       ColD
mydom/users/michael      mydom2\michael       blabla     false
mydom/users/julia        mydom2\sandra        blabla     true
mydom/users/charlie      mydom2\charlie       blabla     false
mydom/users/max          mydom2\albert        blabla     false

Wenn ColA nach dem letzten Schrägstrich (z. B. Michael) denselben Namen wie ColB enthält Nach dem Backslash (wie in Zeile 1 und 3) sollte die gesamte Zeile gelöscht werden.

Gibt es eine Möglichkeit, Duplikate mit speziellen Kriterien zu entfernen? Brauche Hilfe, danke.

Clam
quelle
Willkommen bei Super User. Wir sind kein Skriptschreibservice. Wir erwarten von den Anwendern, dass sie uns mitteilen, was sie bisher ausprobiert haben (einschließlich der von ihnen verwendeten Skripts) und wo sie stecken bleiben, damit wir bei bestimmten Problemen helfen können. Fragen, die nur nach Skripten fragen, sind zu umfangreich und wahrscheinlich zu beantworten Halten oder geschlossen . Lesen Sie bitte Wie stelle ich eine gute Frage? .
DavidPostill
Tut mir leid, dass ich das weiß. Eigentlich habe ich selbst an einem Skript gearbeitet, aber ich fragte mich, ob ich das in Excel tun könnte. Deshalb habe ich die Frage gestellt. Und in Excel kenne ich nur die Option zum Entfernen von Duplikaten.
Clam

Antworten:

0

Mit Powershell

Select-String -n -path file.csv -Pattern "/([^/,]+).*\\\1" | select -exp Line

-n gibt nicht übereinstimmende Werte zurück, Muster sind die gewünschten Bedingungen (mit zusätzlicher Prüfung des Trennzeichens der CSV-Datei) Einmal getestet, können Sie hinzufügen > new_file.csv am Ende der Zeile.

SΛLVΘ
quelle
1
Vielen Dank! Ich habe versucht, das Problem mit Regex zu lösen, aber ich bin neu dazu, das war sehr hilfreich! Ich verwende ein Semikolon als csv-Trennzeichen, also sollte ich diesen Teil [^ /,] auf dieses [^ /;] ändern, oder? Was macht der Teil ". * \\\\ 1"? Danke vielmals!
Clam
Richtig, verwenden ; stattdessen. .* sucht 0 oder mehr ( * ) Zeichen ( ., irgendein). \\ ist der Backslash, für den ein Backslash erforderlich ist. \1 ist ein Rückverweis auf durch Klammern erfasste Inhalte: Wenn Sie nach dem Schrägstrich "Michael" haben, müssen Sie nach dem Backslash "Michael" haben.
SΛLVΘ
Das ist mir jetzt klar, danke nochmal!
Clam