Rimozione di duplicati in base a una corrispondenza parziale (Microsoft Excel)
Farris ha un foglio di lavoro che contiene indirizzi. Alcuni indirizzi sono molto vicini allo stesso, in modo che l’indirizzo stradale sia lo stesso e solo la parte relativa al numero della suite sia diversa. Ad esempio, una riga può avere un indirizzo di “85 Seymour Street, Suite 101” e un’altra riga può avere un indirizzo di “85 Seymour Street, Suite 412”. Farris si sta chiedendo come rimuovere i duplicati nell’elenco di indirizzi in base a una corrispondenza parziale, basata solo sull’indirizzo e ignorando il numero della suite.
La soluzione più semplice è suddividere ulteriormente gli indirizzi in colonne separate, in modo che il numero della suite si trovi nella sua colonna. Puoi farlo seguendo questi passaggi:
-
Assicurati che ci sia una colonna vuota a destra della colonna dell’indirizzo.
-
Seleziona le celle che contengono indirizzi.
-
Visualizza la scheda Dati della barra multifunzione.
-
Fare clic sullo strumento Testo in colonne nel gruppo Strumenti dati. Excel avvia la procedura guidata Converti testo in colonne. (Vedi figura 1.)
-
Nel primo passaggio della procedura guidata, assicurati che l’opzione Delimitato sia selezionata, quindi fai clic su Avanti.
-
Nella seconda fase della procedura guidata, assicurarsi che la casella di controllo Virgola sia selezionata, quindi fare clic su Avanti.
-
Nella terza fase della procedura guidata, fare 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 negli indirizzi originali. In altre parole, il numero della suite è nella sua colonna. Con i tuoi dati in questa condizione, è facile utilizzare il filtro per visualizzare o estrarre gli indirizzi univoci.
Se non desideri dividere in modo permanente gli indirizzi in due colonne, puoi utilizzare una formula per determinare i duplicati. Supponendo che l’elenco degli indirizzi sia ordinato, potresti usare una formula simile alla seguente:
=IF(OR(ISERROR(FIND(",",A3)),ISERROR(FIND(",",A2))), "",IF(LEFT(A3,FIND(",",A3))=LEFT(A2,FIND(",",A2)), "Duplicate",""))
Questa formula presuppone che gli indirizzi da controllare siano nella colonna A e che questa formula sia collocata da qualche parte nella riga 3 di una colonna diversa. Prima controlla se c’è una virgola nell’indirizzo nella riga corrente o nell’indirizzo nella riga precedente. Se non è presente una virgola in nessuno degli indirizzi, si presume che non sia possibile duplicare.
Se c’è una virgola in entrambi, la formula controlla la parte degli indirizzi prima della virgola. Se corrispondono, la parola “Duplica”
viene restituito; se non corrispondono, non viene restituito nulla.
Il risultato della copia della formula in basso nella colonna (in modo che una formula corrisponda a ciascun indirizzo) è che avrai la parola “Duplica”
vengono visualizzati accanto a quegli indirizzi che corrispondono alla prima parte dell’indirizzo precedente. Puoi quindi capire cosa vuoi fare con quei duplicati che vengono trovati.
Un’altra opzione è utilizzare una macro per determinare i possibili duplicati.
Ci sono molti modi in cui una macro per determinare i duplicati potrebbe essere concepita; 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.
Function NearMatch(vLookupValue, rng As Range, iNumChars) Dim x As Integer Dim sSub As String Set rng = rng.Columns(1) sSub = Left(vLookupValue, iNumChars) For x = 1 To rng.Cells.Count If Left(rng.Cells(x), iNumChars) = sSub Then NearMatch = rng.Cells(x).Address Exit Function End If Next NearMatch = CVErr(xlErrNA) End Function
Ad esempio, supponiamo che i tuoi indirizzi siano nell’intervallo A2: A100.
Nella colonna B è possibile utilizzare questa funzione NearMatch per restituire indirizzi di possibili duplicati. Nella cella B2 inserisci la seguente formula:
=NearMatch(A2,A3:A$100,12)
Il primo parametro per la funzione (A2) è la cella che desideri utilizzare come “chiave”. I primi 12 caratteri di questa cella vengono confrontati con i primi 12 caratteri di ogni cella nell’intervallo A3: A $ 100. Se una cella si trova in quell’intervallo in cui corrispondono i primi 12 caratteri, l’indirizzo di quella cella viene restituito dalla funzione. Se non viene rilevata alcuna corrispondenza, viene restituito l’errore # N / D. Se copi la formula in B2 verso il basso, nelle celle B3: B100, ogni indirizzo corrispondente nella colonna A viene confrontato con tutti gli indirizzi sottostanti. Finisci con un elenco di possibili duplicati nell’elenco originale.
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (7886) si applica a Microsoft Excel 2007, 2010, 2013 e 2016.
Puoi trovare una versione di questo suggerimento per la vecchia interfaccia del menu di Excel qui: