Excel: confronta le celle delle colonne ed elimina la riga se contengono parzialmente lo stesso valore


0

Provo a eliminare le righe di un file CSV, in cui due colonne contengono in parte lo stesso valore, in questo modo:

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

Se ColA contiene lo stesso nome dopo l'ultima barra (ad es. Michael) di ColB dopo la barra rovesciata (come nelle righe 1 e 3), l'intera riga deve essere eliminata.

C'è un modo per utilizzare rimuovere i duplicati con criteri speciali? Hai bisogno di aiuto, grazie.


Benvenuto in Super User. Non siamo un servizio di scrittura di script. Ci aspettiamo che gli utenti ci dicano cosa hanno provato finora (inclusi eventuali script che stanno utilizzando) e dove sono bloccati in modo da poter aiutare con problemi specifici. Le domande che richiedono solo script sono troppo ampie e possono essere messe in attesa o chiuse . Si prega di leggere Come posso fare una buona domanda? .
DavidPostill

Ehi, scusa lo so, in realtà stavo lavorando a una sceneggiatura da solo, ma mi chiedevo se potevo farlo in Excel, ecco perché ho pubblicato la domanda. E in Excel conosco solo l'opzione Rimuovi duplicati.
Vongole

Risposte:


0

Con Powershell,

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

-nrestituisce non corrispondenti, il modello è le condizioni desiderate (con un ulteriore controllo sul delimitatore del file CSV). Una volta testato, è possibile aggiungere > new_file.csvalla fine della riga.


1
Grazie mille! Stavo cercando di risolvere il problema con regex ma sono nuovo, quindi è stato molto utile! Sto usando un semikolon come delimitatore CSV, quindi dovrei cambiare quella parte [^ /,] in questo [^ /;] giusto? Che cosa sta facendo la parte ". * \\\ 1"? Molte grazie!
Vongole

Corretto, utilizzare ;invece. .*cerca 0 o più ( *) caratteri ( ., qualsiasi). \\ è la barra rovesciata, che deve essere salvata da una barra rovesciata. \1è un riferimento ai contenuti acquisiti tra parentesi: se dopo "barra" hai "michael", devi avere "michael" dopo la barra rovesciata.
SΛLVΘ
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.