image

Nei nostri articoli precedenti, abbiamo imparato come estrarre valori univoci da un intervallo utilizzando una combinazione di diverse funzioni Excel. Sebbene funzionino in modo fantastico ma siano anche complessi, non si può negarlo. Se esegui spesso l’estrazione di valori univoci, quelle formule potrebbero stancarti. Anche loro rendono la lima pesante e lenta.

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 una funzione unica:

Function UNIQUES(rng As Range) As Variant()

Dim list As New Collection

Dim Ulist() As Variant

'Adding each value of rng to the collection.

On Error Resume Next

For Each Value In rng

'here value and key are the same. The collection does not allow duplicate keys hence only unique values will remain.

list.Add CStr(Value), CStr(Value)

Next

On Error GoTo 0

'Defining the length of the array to the number of unique values. Since the array starts from 0, we subtract 1.

ReDim Ulist(list.Count - 1, 0)

'Adding unique value to the array.

For i = 0 To list.Count - 1

Ulist(i, 0) = list(i + 1)

Next

'Printing the array

UNIQUES = Ulist

End Function

Copia il codice nell’editor VB di Excel.

Utilizzo della funzione UNIQUE

La funzione sopra è una link: / custom-functions-in-vba-create-vba-function-to-return-array [funzione array multi-cella definita dall’utente]. Significa che devi selezionare l’intervallo in cui desideri stampare l’elenco univoco, quindi scrivere la formula e premere 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:

=UNIQUES(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 / D. Puoi usarlo come indicazione della fine di valori univoci. Se non vedi # N / A alla fine della lista, significa che potrebbero esserci più valori univoci .

Spiegazione del codice

Ho usato due concetti principali di VBA in questa funzione UD.

link: / excel-macro-e-vba-come-usare-vba-collezioni-in-excel [Collezioni]

e link: / custom-functions-in-vba-create-vba-function-to-return-array [User Defined Array Function]. Innanzitutto, abbiamo utilizzato una raccolta per ottenere i valori univoci dall’intervallo fornito.

for Each Value In rng

list.Add CStr(Value), CStr(Value) Next

next

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 array nel ciclo for e aggiunto 1 all’indicizzazione della raccolta di elenchi.

Alla fine, abbiamo stampato quella matrice sul foglio.

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

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

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

`link: /wp-content-uploads-2019-12-UNIQUES-function.xls [__ funzione UNIQUES]

Articoli correlati:

link: / custom-functions-in-vba-create-vba-function-to-return-array [Crea funzione VBA per restituire array] | Scopri come creare una funzione di matrice definita dall’utente che restituisce un array.

link: / excel-array-formas-arrays-in-excel-formula [Arrays in Excel Formul] | Scopri cosa sono gli array in Excel.

link: / vba-user-defined-function [Come creare una funzione definita dall’utente tramite VBA] | Imparare a creare funzioni definite dall’utente in Excel `link: / custom-functions-userdefined-functions-from-other-workbooks-using-vba-in-microsoft-excel [Using a User Defined Function (UDF) from another workbook using VBA in Microsoft Excel] `| Utilizzare la funzione definita dall’utente in un’altra cartella di lavoro di Excel `link: / funzioni-personalizzate-restituire-valori-errore-da-funzioni-definite-dall’utente-using-vba-in-microsoft-excel [Restituire valori di errore da definiti dall’utente funzioni utilizzando VBA in Microsoft Excel] `| Scopri come restituire valori di errore da una funzione definita dall’utente