Udtræk unikke værdier i Excel ved hjælp af en funktion

Anonim

I vores tidligere artikler har vi lært at udtrække unikke værdier fra et område ved hjælp af en kombination af forskellige excel -funktioner. Selvom de fungerer fantastisk, men de også er komplekse, er der ingen tvivl om dette. Hvis du ofte udtrækker unikke værdier, kan disse formler trætte dig. De gør også filen tung og langsom.

Så i denne artikel lærer vi, hvordan man opretter en brugerdefineret funktion, der tager et område som et argument og kun returnerer unikke værdier fra dette område. Du kan kopiere koden direkte til din fil og begynde at bruge den med det samme.

VBA -kode til unik funktion:

Funktion UNIQUES (rng As Range) As Variant () Dim list As New Collection Dim Ulist () As Variant 'Tilføjelse af hver værdi af rng til samlingen. Ved fejl Genoptag næste for hver værdi i rng 'her er værdi og nøgle de samme. Samlingen tillader ikke dublerede nøgler, derfor forbliver kun unikke værdier. list.Add CStr (Value), CStr (Value) Next On Error Gå til 0 'Definerer længden af ​​arrayet til antallet af unikke værdier. Da matrixen starter fra 0, fratrækker vi 1. ReDim Ulist (list.Count - 1, 0) 'Tilføjelse af unik værdi til arrayet. For i = 0 To list.Count - 1 Ulist (i, 0) = list (i + 1) Næste 'Udskrivning af array UNIQUES = Ulist -slutfunktion 

Kopiér koden til VB -editoren i excel.

Brug af UNIQUE -funktionen

Ovenstående funktion er en brugerdefineret multicellearrayfunktion. Det betyder, at du skal vælge det område, hvor den unikke liste skal udskrives, derefter skrive formlen og trykke på tasten CTRL+SKIFT+ENTER.

I gif'en ovenfor har vi en liste over lande. Nu er der mange dublerede lande på listen. Vi ønsker kun at få listen over unikke lande.

For at gøre det skal du vælge et område, hvor du vil have den unikke liste. Skriv nu denne formel:

= UNIQUES (A2: B7)

Tryk på tasten CTRL+SKIFT+ENTER. Og det er gjort. Alle unikke værdier er angivet i det valgte område.

Bemærk:Hvis det område, du har valgt, er mere end den unikke værdi, viser de #N/A fejl. Du kan bruge det som en indikation på at afslutte unikke værdier. Hvis du ikke kan se #N/A i slutningen af ​​listen, betyder det, at der kan være flere unikke værdier.

Forklaring af kode

Jeg har brugt to hovedbegreber VBA i denne UD -funktion. Samlinger og brugerdefineret matrixfunktion. For det første har vi brugt en samling til at få de unikke værdier fra det leverede område.

for hver værdi på listen. Tilføj CStr (værdi), CStr (værdi) Næste næste 

Da vi ikke kan udskrive en samling på arket, overførte vi den til et andet array UList.

for i = 0 To list.Count - 1 Ulist (i, 0) = list (i + 1) Næste næste 

Bemærk:VBA -arrayindeksering starter fra 0 og Collection indexing starter fra 1. Det er derfor, vi har trukket 1 for array in for loop og tilføjet 1 til indeksering af listesamling.

Til sidst har vi udskrevet det array til arket.

Der er en UNIK funktion, der ikke er tilgængelig for at udmærke sig i 2016, der gør det samme. Denne funktion er tilgængelig i Excel 2019. Kun medlemmerne af insiderprogrammet har adgang til denne funktion. Ved at bruge denne teknik kan du vise dig frem på kontoret for at være foran MS.

Så ja fyre, sådan kan du oprette en funktion, der simpelthen udtrækker unikke værdier. Jeg håber, jeg var forklarende nok til at få dig til at forstå dette. Hvis du har specifikke spørgsmål vedrørende dette eller et andet Excel VBA -relateret spørgsmål, kan du stille det i kommentarfeltet herunder.

Klik på nedenstående link for at downloade arbejdsfilen:

UNIQUES funktion

Sådan bruges VBA -samlinger i Excel | Lær brug af samling, der kan hjælpe dig med at få unikke værdier.

Opret VBA -funktion for at returnere matrix | Lær, hvordan du opretter en brugerdefineret matrixfunktion, der returnerer en matrix.

Arrays i Excel Formul | Lær, hvad arrays er i excel.

Sådan oprettes brugerdefineret funktion via VBA | Lær, hvordan du opretter brugerdefinerede funktioner i Excel

Brug af en brugerdefineret funktion (UDF) fra en anden projektmappe ved hjælp af VBA i Microsoft Excel | Brug den brugerdefinerede funktion i en anden Excel-projektmappe

Returner fejlværdier fra brugerdefinerede funktioner ved hjælp af VBA i Microsoft Excel | Lær, hvordan du kan returnere fejlværdier fra en brugerdefineret funktion