Išskirkite unikalias „Excel“ vertes naudodami vieną funkciją

Anonim

Ankstesniuose straipsniuose mes išmokome išgauti unikalias vertes iš diapazono, naudojant įvairių „Excel“ funkcijų derinį. Nors jie veikia fantastiškai, tačiau taip pat yra sudėtingi, to negalima paneigti. Jei dažnai išgaunate unikalias vertes, šios formulės gali jus nuvarginti. Jie taip pat daro failą sunkų ir lėtą.

Taigi, šiame straipsnyje mes išmoksime sukurti vartotojo apibrėžtą funkciją, kuri kaip diapazoną laiko argumentu ir grąžina tik unikalias to diapazono vertes. Galite tiesiogiai nukopijuoti kodą į savo failą ir nedelsdami pradėti jį naudoti.

Unikalios funkcijos VBA kodas:

Funkcija UNIQUES (rng kaip diapazonas) kaip variantas () Dim sąrašas kaip naujas rinkinys Dim Ulist () kaip variantas 'Kiekvienos rng vertės pridėjimas prie kolekcijos. Dėl klaidos Tęsti toliau kiekvienai reikšmei „rng“ čia reikšmė ir raktas yra vienodi. Kolekcija neleidžia pasikartojančių raktų, todėl liks tik unikalios vertės. sąrašas. Pridėti CStr (vertė), CStr (vertė) Toliau, kai klaida GoTo 0 'Apibrėžkite masyvo ilgį iki unikalių verčių skaičiaus. Kadangi masyvas prasideda nuo 0, atimame 1. ReDim Ulist (list.Count - 1, 0) 'Unikalaus masyvo pridėjimas. Jei i = 0 Į sąrašą. Skaičius - 1 Ulist (i, 0) = sąrašas (i + 1) Kitas 'Masyvo spausdinimas UNIQUES = Ulist End Function 

Nukopijuokite kodą į „Excel“ VB redaktorių.

Funkcijos UNIQUE naudojimas

Aukščiau pateikta funkcija yra vartotojo apibrėžta kelių ląstelių masyvo funkcija. Tai reiškia, kad turite pasirinkti diapazoną, kuriame norite spausdinti unikalų sąrašą, tada parašyti formulę ir paspausti klavišų kombinaciją CTRL+SHIFT+ENTER.

Aukščiau esančiame gife turime šalių sąrašą. Dabar sąraše yra daug pasikartojančių šalių. Norime gauti tik unikalių šalių sąrašą.

Norėdami tai padaryti, pasirinkite diapazoną, kuriame norite turėti unikalų sąrašą. Dabar parašykite šią formulę:

= UNIKALIAI (A2: B7)

Paspauskite klavišų kombinaciją CTRL+SHIFT+ENTER. Ir tai daroma. Visos unikalios vertės yra išvardytos pasirinktame diapazone.

Pastaba:Jei pasirinktas diapazonas yra didesnis nei unikali vertė, tada bus rodoma klaida #N/A. Galite jį naudoti kaip nuorodą užbaigti unikalias vertes. Jei sąrašo pabaigoje nematote #N/A, tai reiškia, kad gali būti daugiau unikalių verčių.

Kodo paaiškinimas

Šioje UD funkcijoje naudojau dvi pagrindines VBA sąvokas. Kolekcijos ir vartotojo apibrėžta masyvo funkcija. Pirma, mes panaudojome kolekciją, kad gautume unikalias vertes iš pateikto diapazono.

kiekvienos vertės sąraše. Pridėti CStr (vertė), CStr (vertė) Kitas 

Kadangi negalime spausdinti kolekcijos ant lapo, perkėlėme ją į kitą masyvo UList.

i = 0 Į sąrašą. Skaičius - 1 Ulist (i, 0) = sąrašas (i + 1) Kitas 

Pastaba:VBA masyvo indeksavimas prasideda nuo 0, o kolekcijos indeksavimas - nuo 1. Štai kodėl mes atėmėme 1 už masyvą ciklui ir pridėjome 1 prie sąrašo kolekcijos indeksavimo.

Galų gale mes išspausdinome tą masyvą ant lapo.

Yra unikali funkcija, kuri nėra prieinama „Excel 2016“, kuri daro tą patį. Ši funkcija pasiekiama programoje „Excel 2019“. Prieigą prie šios funkcijos turi tik viešai neatskleistos programos nariai. Naudodamiesi šia technika, galite parodyti biure, kad esate prieš MS.

Taigi taip, vaikinai, taip galite sukurti funkciją, kuri paprasčiausiai išskiria unikalias vertybes. Tikiuosi, kad buvau pakankamai aiškus, kad suprastumėte tai. Jei turite kokių nors konkrečių klausimų dėl šio ar bet kurio kito su „VBA“ susijusio klausimo, užduokite jį komentarų skiltyje žemiau.

Norėdami atsisiųsti darbo failą, spustelėkite žemiau esančią nuorodą:

UNIKALIŲ funkcija

Kaip naudoti „VBA“ kolekcijas „Excel“ | Išmokite naudoti kolekciją, kuri gali padėti įgyti unikalių vertybių.

Sukurkite VBA funkciją grąžinti masyvą | Sužinokite, kaip sukurti vartotojo apibrėžtą masyvo funkciją, kuri grąžina masyvą.

Masyvai „Excel Formul“ | Sužinokite, kokie masyvai yra „Excel“.

Kaip sukurti vartotojo apibrėžtą funkciją per VBA | Sužinokite, kaip „Excel“ sukurti vartotojo apibrėžtas funkcijas

Naudotojo apibrėžtos funkcijos (UDF) naudojimas iš kitos darbaknygės naudojant VBA programoje „Microsoft Excel“ | Naudokite vartotojo apibrėžtą funkciją kitoje „Excel“ darbaknygėje

Pateikite klaidų reikšmes iš vartotojo apibrėžtų funkcijų naudodami VBA programoje „Microsoft Excel“ | Sužinokite, kaip galite grąžinti klaidų vertes iš vartotojo nustatytos funkcijos