Estrai valori univoci in Excel utilizzando una funzione

Anonim

Nei nostri articoli precedenti, abbiamo imparato come estrarre valori univoci da un intervallo utilizzando una combinazione di diverse funzioni di Excel. Sebbene funzionino in modo fantastico, ma sono anche complessi, non si può negare questo. Se esegui spesso l'estrazione di valori univoci, queste formule potrebbero stancarti. Anche loro rendono il file pesante e lento.

Quindi, in questo articolo, impareremo come creare una funzione definita dall'utente che accetta un intervallo come argomento e restituisce solo valori univoci da quell'intervallo. Puoi copiare direttamente il codice nel tuo file e iniziare a usarlo immediatamente.

Codice VBA per funzione univoca:

Funzione UNIQUES(rng As Range) As Variant() Dim list As New Collection Dim Ulist() As Variant 'Aggiungendo ogni valore di rng alla collection. In caso di errore Riprendi successivo per ogni valore In rng 'qui il valore e la chiave sono gli stessi. La raccolta non consente chiavi duplicate, quindi rimarranno solo valori univoci. list.Add CStr(Value), CStr(Value) Next On Error GoTo 0 'Definizione della lunghezza dell'array al numero di valori univoci. Poiché l'array inizia da 0, sottraiamo 1. ReDim Ulist(list.Count - 1, 0) 'Aggiunta di un valore univoco all'array. For i = 0 To list.Count - 1 Ulist(i, 0) = list(i + 1) Next 'Stampa l'array UNIQUES = Ulist End Function 

Copia il codice nell'editor VB di Excel.

Utilizzo della funzione UNICO

La funzione sopra è una funzione di matrice multicella definita dall'utente. Significa che devi selezionare l'intervallo in cui vuoi che venga stampato l'elenco univoco, quindi scrivi la formula e premi la combinazione di tasti CTRL+MAIUSC+INVIO.

Nella gif sopra, abbiamo un elenco di paesi. Ora ci sono molti paesi duplicati nell'elenco. Vogliamo ottenere solo l'elenco dei paesi unici.

Per fare ciò, seleziona un intervallo in cui desideri l'elenco univoco. Ora scrivi questa formula:

=UNICI(A2:B7)

Premi la combinazione di tasti CTRL+MAIUSC+INVIO. Ed è fatto. Tutti i valori univoci sono elencati nell'intervallo selezionato.

Nota:Se l'intervallo selezionato è maggiore del valore univoco, verrà visualizzato l'errore #N/A. Puoi usarlo come indicazione della fine di valori univoci. Se non vedi #N/A alla fine dell'elenco, significa che potrebbero esserci più valori univoci.

Spiegazione del codice

Ho usato due concetti principali di VBA in questa funzione UD. Raccolte e funzione array definita dall'utente. Innanzitutto, abbiamo utilizzato una raccolta per ottenere i valori univoci dall'intervallo fornito.

per ogni valore nell'elenco rng.Aggiungi CStr(Valore), CStr(Valore) Avanti avanti 

Poiché non possiamo stampare una raccolta sul foglio, l'abbiamo trasferita su un altro array UList.

for i = 0 To list.Count - 1 Ulist(i, 0) = list(i + 1) Next next 

Nota:L'indicizzazione dell'array VBA inizia da 0 e l'indicizzazione della raccolta inizia da 1. Questo è il motivo per cui abbiamo sottratto 1 per l'array nel ciclo for e aggiunto 1 all'indicizzazione della raccolta di elenchi.

Alla fine, abbiamo stampato quell'array sul foglio.

C'è una funzione UNICA che non è disponibile per Excel 2016 che fa la stessa cosa. Tale funzione è disponibile in Excel 2019. Solo i membri del programma insider hanno accesso a tale funzione. Usando questa tecnica, puoi metterti in mostra in ufficio per essere davanti alla SM.

Quindi sì ragazzi, ecco come potete creare una funzione che estrae semplicemente valori univoci. Spero di essere stato abbastanza esplicativo da farti capire questo. Se hai domande specifiche su questa o qualsiasi altra domanda relativa a Excel VBA, chiedi nella sezione commenti qui sotto.

Fare clic sul collegamento sottostante per scaricare il file di lavoro:

Funzione UNICI

Come utilizzare le raccolte VBA in Excel | Impara l'uso della raccolta che può aiutarti a ottenere valori univoci.

Crea funzione VBA per restituire l'array | Scopri come creare una funzione array definita dall'utente che restituisce un array.

Array in Excel Formul|Scopri cosa sono gli array in Excel.

Come creare una funzione definita dall'utente tramite VBA | Scopri come creare funzioni definite dall'utente in Excel

Utilizzo di una funzione definita dall'utente (UDF) da un'altra cartella di lavoro utilizzando VBA in Microsoft Excel | Usa la funzione definita dall'utente in un'altra cartella di lavoro di Excel

Restituisce i valori di errore dalle funzioni definite dall'utente utilizzando VBA in Microsoft Excel | Scopri come restituire valori di errore da una funzione definita dall'utente