Pakk ut unike verdier i Excel ved hjelp av en funksjon

Anonim

I våre tidligere artikler har vi lært hvordan vi kan trekke ut unike verdier fra et område ved å bruke en kombinasjon av forskjellige excel -funksjoner. Selv om de fungerer fantastisk, men de er også komplekse, kan det ikke nektes for dette. Hvis du trekker ut unike verdier ofte, kan disse formlene trette deg. Også de gjør filen tung og treg.

Så i denne artikkelen vil vi lære hvordan du oppretter en brukerdefinert funksjon som tar et område som et argument og bare returnerer unike verdier fra det området. Du kan kopiere koden direkte til filen din og begynne å bruke den umiddelbart.

VBA -kode for unik funksjon:

Funksjon UNIQUES (rng As Range) As Variant () Dim list As New Collection Dim Ulist () As Variant 'Legger til hver verdi av rng i samlingen. Ved feil Fortsett neste for hver verdi i rng 'her er verdien og nøkkelen de samme. Samlingen tillater ikke duplikatnøkler, derfor vil bare unike verdier forbli. list.Add CStr (Value), CStr (Value) Next On Error Gå til 0 'Definere lengden på matrisen til antall unike verdier. Siden matrisen starter fra 0, trekker vi fra 1. ReDim Ulist (list.Count - 1, 0) 'Legger til unik verdi i matrisen. For i = 0 To list.Count - 1 Ulist (i, 0) = list (i + 1) Neste 'Skrive ut matrisen UNIQUES = Ulist End Function 

Kopier koden til VB -redaktøren for excel.

Bruker UNIQUE -funksjonen

Funksjonen ovenfor er en brukerdefinert flercellet matrisefunksjon. Det betyr at du må velge området der du vil at den unike listen skal skrives ut, deretter skrive formelen og trykke CTRL+SKIFT+ENTER tastekombinasjon.

I gifen ovenfor har vi en liste over land. Nå er det mange dupliserte land på listen. Vi vil bare få listen over unike land.

For å gjøre det, velg et område der du vil ha den unike listen. Skriv nå denne formelen:

= UNIQUES (A2: B7)

Trykk CTRL+SKIFT+ENTER tastekombinasjon. Og det er gjort. Alle unike verdier er oppført i det valgte området.

Merk:Hvis området du har valgt er mer enn den unike verdien, viser de #N/A -feil. Du kan bruke den som en indikasjon på å avslutte unike verdier. Hvis du ikke ser #N/A på slutten av listen, betyr det at det kan være flere unike verdier.

Forklaring av kode

Jeg har brukt to hovedbegreper om VBA i denne UD -funksjonen. Samlinger og brukerdefinert matrisefunksjon. For det første har vi brukt en samling for å få de unike verdiene fra det angitte området.

for Hver verdi I rng -listen. Legg til CStr (verdi), CStr (verdi) Neste neste 

Siden vi ikke kan skrive ut en samling på arket, overførte vi den til en annen UList -matrise.

for i = 0 To list.Count - 1 Ulist (i, 0) = list (i + 1) Neste neste 

Merk:Indeksering av VBA -array starter fra 0 og Collection indeksering starter fra 1. Dette er grunnen til at vi har trukket fra 1 for array in for loop og lagt 1 til indeksering av listesamling.

Til slutt har vi skrevet ut matrisen på arket.

Det er en UNIK funksjon som ikke er tilgjengelig for Excel 2016 som gjør det samme. Denne funksjonen er tilgjengelig i Excel 2019. Bare medlemmene av insiderprogrammet har tilgang til den funksjonen. Ved å bruke denne teknikken kan du vise deg frem på kontoret for å være foran MS.

Så ja gutta, slik kan du lage en funksjon som trekker ut unike verdier ganske enkelt. Jeg håper jeg var forklarende nok til å få deg til å forstå dette. Hvis du har spesifikke spørsmål angående dette eller andre Excel -VBA -relaterte spørsmål, kan du stille det i kommentarfeltet nedenfor.

Klikk på lenken nedenfor for å laste ned arbeidsfilen:

UNIQUES -funksjon

Hvordan bruke VBA -samlinger i Excel | Lær bruk av samling som kan hjelpe deg med å få unike verdier.

Lag VBA -funksjon for å returnere matrise | Lær hvordan du oppretter en brukerdefinert matrisefunksjon som returnerer en matrise.

Matriser i Excel Formul | Finn ut hvilke matriser som er i excel.

Hvordan lage brukerdefinert funksjon gjennom VBA | Lær hvordan du oppretter brukerdefinerte funksjoner i Excel

Bruke en brukerdefinert funksjon (UDF) fra en annen arbeidsbok ved hjelp av VBA i Microsoft Excel | Bruk den brukerdefinerte funksjonen i en annen arbeidsbok i Excel

Returner feilverdier fra brukerdefinerte funksjoner ved hjelp av VBA i Microsoft Excel | Lær hvordan du kan returnere feilverdier fra en brukerdefinert funksjon