Rimuovere duplicati in base a una corrispondenza parziale

Fabio ha un foglio di lavoro che contiene indirizzi. Alcuni indirizzi sono molto simili: l’indirizzo stradale è lo stesso e differiscono solo per il numero dell’interno. Ad esempio, una riga potrebbe avere l’indirizzo “Via Cristoforo Colombo 85, Interno 10” e un’altra riga potrebbe avere l’indirizzo “Via Cristoforo Colombo 85, Interno 7”. Fabio si chiede come rimuovere i duplicati nell’elenco degli indirizzi in base a una corrispondenza parziale, basata solo sull’indirizzo stradale e ignorando il numero di interno.

La soluzione più semplice è suddividere ulteriormente gli indirizzi in colonne separate, in modo che il numero dell’interno sia nella propria colonna. Puoi farlo seguendo questi passaggi:

  • Assicurati che ci sia una colonna vuota a destra della colonna dell’indirizzo
  • Seleziona le celle che contengono gli indirizzi
  • Visualizza la scheda Dati della barra multifunzione
  • Fai clic sullo strumento Testo in colonne nel gruppo Strumenti dati. Excel avvia la procedura Conversione guidata testo in colonne
Rimuovere duplicati in base a una corrispondenza parziale 1
  • Nel primo passaggio della procedura guidata, assicurati che l’opzione Delimitato sia selezionata, quindi fai clic su Avanti
  • Nel secondo passaggio della procedura guidata, assicurati che la casella di controllo Virgola sia selezionata, quindi fai clic su Avanti
  • Nel terzo passaggio della procedura guidata fai clic su Fine

L’indirizzo dovrebbe ora risiedere nella colonna originale e la colonna precedentemente vuota dovrebbe ora contenere tutto ciò che era dopo la virgola. In altre parole, il numero dell’interno è nella propria colonna. Con i tuoi dati in questa condizione è facile utilizzare il filtro per visualizzare o estrarre gli indirizzi stradali univoci.

Se non vuoi dividere in modo permanente gli indirizzi in due colonne, puoi utilizzare una formula per determinare i duplicati. Supponendo che l’elenco di indirizzi sia ordinato, è possibile utilizzare una formula simile alla seguente:

=SE(O(VAL.ERRORE(TROVA(",";A2));VAL.ERRORE(TROVA(",";A1)));"";SE(SINISTRA(A2;TROVA(",";A2))=SINISTRA(A1;TROVA(",";A1));"Duplicato";""))

Questa formula presuppone che gli indirizzi da controllare siano nella colonna A e che questa formula sia posizionata nella riga 2 di una colonna diversa. Prima controlla se c’è una virgola nell’indirizzo della riga corrente o nell’indirizzo della riga precedente. Se non c’è una virgola in nessuno degli indirizzi, si presume che non ci siano duplicati possibili. Se c’è una virgola in entrambi, la formula controlla la parte degli indirizzi prima della virgola. Se corrispondono, viene restituita la parola “Duplicato”; se non corrispondono, non viene restituito nulla.

Il risultato della copia della formula nella colonna (in modo che una formula corrisponda ad ogni indirizzo) è che apparirà la parola “Duplicato” accanto a quegli indirizzi che corrispondono alla prima parte dell’indirizzo precedente. Puoi quindi decidere cosa fare con i duplicati che vengono trovati.

Un’altra opzione è utilizzare una macro per determinare i possibili duplicati. Ci sono molti modi in cui potrebbe essere ideata una macro per determinare i duplicati. Quello mostrato qui controlla semplicemente i primi X caratteri di un valore “chiave” rispetto a un intervallo e restituisce l’indirizzo della prima cella corrispondente.

Questo contenuto è riservato agli abbonati

Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.

Se sei già abbonato Accedi per sbloccare il contenuto!

In caso contrario abbonati qui! L'abbonamento è conveniente.

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

Tags: , , , , , , , ,

Ti è stato utile?