Come rimuovere i duplicati in una cella in Excel

  • Condividi Questo
Michael Brown

Ci sono tre modi per trovare ed eliminare i duplicati all'interno di una cella in Excel. Scegliete quello che funziona meglio per voi.

Quando si tratta di rimuovere valori o righe duplicate, Microsoft Excel offre una serie di opzioni diverse. Ma quando si tratta di rimuovere un testo identico all'interno di una data cella, Excel non fornisce nulla. Nessuno strumento, nessuna funzione, nessuna formula, niente di niente. Questo ci impedirà di raggiungere il nostro obiettivo? In nessun caso. Se Excel non ha la funzione di cui abbiamo bisogno, andiamo a scriverne una nostra :)

    Come rimuovere le parole ripetute in una cella di Excel

    Problema Si hanno le stesse parole o stringhe di testo in una cella e si desidera rimuovere la seconda e tutte le successive ripetizioni.

    Soluzione : una funzione definita dall'utente o una macro VBA personalizzata.

    Funzione definita dall'utente per rimuovere i duplicati all'interno di una cella

    Per eliminare il testo duplicato in una cella, è possibile utilizzare la seguente funzione definita dall'utente (UDF), denominata RimuoviParoleDupe :

    Function RemoveDupeWords(text As String , Optional delimiter As String = " " ) As String Dim dictionary As Object Dim x, part Set dictionary = CreateObject ( "Scripting.Dictionary" ) dictionary.CompareMode = vbTextCompare For Each x In Split(text, delimiter) part = Trim(x) If part "" And Not dictionary.Exists(part) Then dictionary.Add part, Nothing End If Next If dictionary.Count> 0 ThenRemoveDupeWords = Join(dictionary.keys, delimiter) Else RemoveDupeWords = "" End If Set dictionary = Nothing End Function

    Come inserire il codice della funzione nella cartella di lavoro

    Per aggiungere il codice di cui sopra al vostro Excel, ecco cosa dovete fare:

    1. Premere Alt + F11 per aprire l'editor di Visual Basic.
    2. Nel riquadro di sinistra, fare clic con il tasto destro del mouse su Questo libro di lavoro e selezionare Inserire > Modulo .
    3. Incollare il codice precedente nella cartella Codice finestra.

    Per ulteriori informazioni, vedere Come inserire il codice VBA in Excel.

    Sintassi della funzione RemoveDupeWords

    La funzione appena creata per rimuovere il testo duplicato in una cella ha la seguente sintassi:

    RemoveDupeWords(testo, [delimitatore])

    Dove:

    • Testo (obbligatorio) - una stringa o una cella da cui si desidera eliminare il testo ripetuto.
    • Delimitatore (facoltativo) - il delimitatore da cui viene separato il testo ripetuto. Se omesso, viene utilizzato uno spazio come delimitatore.

    La funzione è non sensibile alle maiuscole , il che significa che le lettere minuscole e maiuscole sono trattate come gli stessi caratteri.

    Come utilizzare la funzione RemoveDupeWords

    Una volta aggiunto il codice della funzione alla cartella di lavoro, è possibile utilizzarlo nelle formule allo stesso modo in cui si utilizzano le funzioni integrate di Excel.

    È sufficiente iniziare a digitare il nome della funzione dopo il segno di uguale per farla apparire nell'intellisense delle formule. Facendo doppio clic sulla funzione, la si inserisce in una cella. Definire gli argomenti, digitare la parentesi di chiusura, premere Invio e la formula è completata.

    Ad esempio, per eliminare le parole doppie separate da una virgola e da uno spazio da A2, inserite la formula seguente in B2 e poi trascinatela verso il basso in tutte le celle necessarie:

    =RimuoviDupeParole(A2, ", ")

    Il risultato è un elenco di parole o sottostringhe univoche separate da un virgola e spazio :

    Se si preferisce ottenere un elenco separato da virgole, si può usare il metodo solo una virgola per il delimitatore:

    =RimuoviDupeParole(A2, ",")

    Se i dati di origine sono separati da un spazio , il secondo argomento deve essere " " o omesso:

    =RimuoviDupeParole(A2)

    Come qualsiasi altra funzione di Excel, la nostra UDF ricalcola automaticamente quando i dati di origine cambiano, in modo che i risultati siano sempre aggiornati.

    Macro VBA per eliminare il testo duplicato da più celle contemporaneamente

    Se si desidera rimuovere il testo ripetuto da più celle in una sola volta, è possibile richiamare il metodo RimuoviParoleDupe all'interno di una macro. In questo caso, il delimitatore è codificato e si dovrà aggiornare il codice della macro ogni volta che il delimitatore cambia. In alternativa, si possono scrivere alcune varianti di codice per i delimitatori più comuni, ad esempio uno spazio, una virgola o una virgola e uno spazio, e assegnare alle macro nomi significativi, ad esempio RimuoviDupiSpazio .

    Il codice della macro è il seguente:

    Public Sub RemoveDupeWords2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Next End Sub

    Nel codice sopra riportato, il delimitatore è un virgola e spazio Per utilizzare un altro delimitatore, sostituire ", " con un altro o più caratteri in questa riga di codice:

    cell.Value = RemoveDupeWords(cell.Value, ", ")

    Nota: affinché la macro funzioni, il suo codice e quello della funzione RemoveDupeWords devono essere inseriti nello stesso modulo.

    Come utilizzare la macro

    Inserite il codice della macro nella vostra cartella di lavoro o aprite la nostra cartella di lavoro di esempio con il codice, quindi eseguite i seguenti passaggi per eseguire la macro.

    1. Selezionare un intervallo di celle da cui si desidera rimuovere il testo ripetuto.
    2. Premere Alt + F8 per aprire il menu Macro finestra di dialogo.
    3. Nell'elenco delle macro, selezionare RimuoviDupeParole2 .
    4. Cliccare Correre .

    Per maggiori dettagli, vedere Come eseguire una macro in Excel.

    Nota: poiché l'azione di una macro non può essere annullato Si consiglia vivamente di salvare la cartella di lavoro prima di utilizzare la macro. In questo modo, se qualcosa va storto, è sufficiente chiudere e riaprire la cartella di lavoro per tornare esattamente al punto di partenza. Oppure si può semplicemente fare una copia del foglio di lavoro che potrebbe essere interessato dalla macro.

    Come rimuovere i caratteri duplicati in una cella

    Problema Si hanno più occorrenze dello stesso carattere in una cella, mentre ogni cella dovrebbe contenere una sola occorrenza di un determinato carattere.

    Soluzione : una funzione definita dall'utente o una macro VBA personalizzata.

    Funzione definita dall'utente per eliminare i caratteri ripetuti

    Per rimuovere i caratteri duplicati all'interno di una cella mantenendo solo le prime occorrenze, è possibile utilizzare la seguente funzione definita dall'utente, denominata RimuoviDupeCaratteri :

    Function RemoveDupeChars(text As String ) As String Dim dictionary As Object Dim char As String Dim result As String Set dictionary = CreateObject ("Scripting.Dictionary" ) For i = 1 To Len(text) char = Mid(text, i, 1) If Not dictionary.Exists(char) Then dictionary.Add char, Nothing result = result & char End If Next RemoveDupeChars = result Set dictionary = Nothing End Function

    Per inserire il codice della funzione nella cartella di lavoro, i passaggi sono esattamente gli stessi dell'esempio precedente.

    Sintassi della funzione RemoveDupeChars

    La sintassi di questa funzione personalizzata è la più semplice possibile: è richiesto un solo argomento:

    RimuoviDupeCaratteri(testo)

    Dove testo è una stringa o una cella da cui si desidera rimuovere i caratteri duplicati.

    La funzione è sensibile alle maiuscole e alle minuscole e tratta le lettere minuscole e maiuscole come caratteri diversi.

    Come utilizzare la funzione RemoveDupeChars

    Tutto ciò che abbiamo detto sull'uso di RemoveDupeWords è vero per RimuoviDupeCaratteri Quindi, senza addentrarci troppo nella teoria, passiamo subito a un esempio.

    Per eliminare i caratteri duplicati dalla colonna A a partire da A2, inserire questa formula in B2 e copiarla in basso:

    =RimuoviDupeCaratteri(A2)

    Come si può vedere nell'immagine sottostante, la funzione gestisce con successo diversi tipi di caratteri, tra cui lettere, cifre e simboli speciali:

    Suggerimento: se i personaggi sono separati l'uno dall'altro da qualche delimitatore come uno spazio, una virgola o un trattino, quindi utilizzare l'opzione RimuoviParoleDupe come mostrato nell'esempio precedente.

    Macro VBA per rimuovere gli stessi caratteri da una cella

    Come RimuoviParoleDupe , il RimuoviDupeCaratteri può essere richiamata anche all'interno di una macro:

    Public Sub RemoveDupeChars2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeChars(cell.Value) Next End Sub

    Poiché questa UDF non utilizza alcun delimitatore, non è necessario apportare alcuna modifica al codice.

    Nota: affinché la macro funzioni, il suo codice e quello della UDF RemoveDupeChars devono essere inseriti nello stesso modulo dell'editor VBA.

    Come utilizzare la macro

    Supponendo di aver già inserito il codice della macro nella cartella di lavoro o di aver aperto la cartella di lavoro di esempio contenente il codice, lanciate la macro in questo modo.

    1. Selezionate un intervallo di celle da cui desiderate rimuovere i caratteri ripetuti.
    2. Premere Alt + F8 per aprire il menu Macro finestra di dialogo.
    3. Nell'elenco delle macro, selezionare RimuoviDupeCaratteri2 .
    4. Cliccare Correre .

    Rimuovere le sottostringhe duplicate con Ultimate Suite

    All'inizio di questa esercitazione è stato detto che Microsoft Excel non ha una funzione integrata per rimuovere i duplicati all'interno di una cella, ma la nostra Ultimate Suite ce l'ha!

    Lo si può trovare nella sezione Rimuovi duplicati nel menu a discesa del Dati Ablebits nella scheda Dedupe Se il gruppo Rimuovere le sottostringhe duplicate non appare in Excel, assicuratevi di aver installato l'ultima versione di Ultimate Suite (una versione di prova gratuita può essere scaricata qui).

    Per rimuovere parole o testo ripetuti da più celle in 5 secondi (un secondo per ogni passaggio:), ecco cosa dovete fare:

    1. Selezionare i dati di origine e lanciare il programma Rimuovere le sottostringhe duplicate strumento.
    2. Specificare il delimitatore .
    3. Definire se trattare o meno delimitatori consecutivi come uno (impostazione predefinita).
    4. Scegliere se eseguire sensibile alle maiuscole e alle minuscole o senza distinzione tra maiuscole e minuscole ricerca.
    5. Cliccare Rimuovere .

    Senza armeggiare con VBA o formule, solo risultati rapidi e precisi.

    Per saperne di più su questo fantastico componente aggiuntivo, visitate la sua home page o, ancora meglio, scaricate una versione di valutazione qui sotto e provatelo!

    Ecco come rimuovere il testo duplicato in una cella. Vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana!

    Download disponibili

    Esempi per rimuovere i duplicati nelle celle (file .xlsm)

    Ultimate Suite 14 giorni versione completamente funzionale (file .exe)

    Michael Brown è un appassionato di tecnologia dedicato con una passione per la semplificazione di processi complessi utilizzando strumenti software. Con oltre un decennio di esperienza nel settore tecnologico, ha affinato le sue competenze in Microsoft Excel e Outlook, nonché in Fogli Google e Documenti. Il blog di Michael è dedicato alla condivisione delle sue conoscenze e competenze con gli altri, fornendo suggerimenti e tutorial facili da seguire per migliorare la produttività e l'efficienza. Che tu sia un professionista esperto o un principiante, il blog di Michael offre spunti preziosi e consigli pratici per ottenere il massimo da questi strumenti software essenziali.