Meie eelmistes artiklites oleme õppinud, kuidas erinevate Exceli funktsioonide kombinatsiooni abil eraldada vahemikust ainulaadseid väärtusi. Kuigi nad töötavad fantastiliselt, kuid on ka keerulised, ei saa seda eitada. Kui ekstraheerite kordumatuid väärtusi sageli, võivad need valemid teid väsitada. Ka nemad muudavad faili raskeks ja aeglaseks.
Niisiis, selles artiklis õpime, kuidas luua kasutaja määratud funktsiooni, mis võtab argumendina vahemiku ja tagastab ainult selle vahemiku ainulaadsed väärtused. Saate koodi otse oma faili kopeerida ja seda kohe kasutama hakata.
Unikaalse funktsiooni VBA -kood:
Funktsioon UNIQUES (rng As Range) Variandina () Dim nimekiri uue kollektsioonina Dim Ulist () Variant 'rng iga väärtuse lisamine kogusse. Vea korral Jätka iga rng 'väärtuse puhul siin väärtus ja võti on samad. Kogu ei luba topeltvõtmeid, seega jäävad alles ainult unikaalsed väärtused. loend. Lisage CStr (väärtus), CStr (väärtus) Järgmine vea korral GoTo 0 'Massiivi pikkuse määramine unikaalsete väärtuste arvuni. Kuna massiiv algab nullist, lahutame 1. ReDim Ulist (list.Count - 1, 0) 'Unikaalse väärtuse lisamine massiivile. Kui i = 0 loendisse. Loend - 1 Ulist (i, 0) = loend (i + 1) Järgmine 'Massiivi printimine UNIQUES = Ulist End Function
Kopeerige kood Exceli VB redaktorisse.
Funktsiooni UNIQUE kasutamine
Ülaltoodud funktsioon on kasutaja määratud mitmerakuline massiivifunktsioon. See tähendab, et peate valima vahemiku, kuhu soovite unikaalse loendi printida, seejärel kirjutada valem ja vajutada klahvikombinatsiooni CTRL+SHIFT+ENTER.
Ülaltoodud gifis on meil riikide loend. Nüüd on loendis palju dubleerivaid riike. Soovime saada ainult ainulaadsete riikide loendi.
Selleks valige vahemik, kuhu soovite ainulaadse loendi. Nüüd kirjutage see valem:
= UNIKUMID (A2: B7) |
Vajutage klahvikombinatsiooni CTRL+SHIFT+ENTER. Ja seda tehakse. Kõik unikaalsed väärtused on loetletud valitud vahemikus.
Märge:Kui teie valitud vahemik on rohkem kui kordumatu väärtus, kuvatakse neil viga #N/A. Saate seda kasutada unikaalsete väärtuste lõpetamise märgina. Kui te ei näe loendi lõpus numbrit #N/A, tähendab see, et unikaalseid väärtusi võib olla rohkem.
Koodi selgitus
Olen selles UD -funktsioonis kasutanud kahte peamist VBA mõistet. Kogud ja kasutaja määratud massiivi funktsioon. Esiteks kasutasime kogu, et saada pakutud vahemikust ainulaadseid väärtusi.
iga väärtuse rng loendi jaoks. Lisage CStr (väärtus), CStr (väärtus) Järgmine
Kuna me ei saa lehele kollektsiooni printida, kandsime selle üle teise massiivi UList.
i = 0 Loendamiseks. Loend - 1 Ulist (i, 0) = loend (i + 1) Järgmine järgmine
Märge:VBA massiivi indekseerimine algab 0 -st ja kollektsiooni indekseerimine algab 1. Sellepärast oleme massiivi jaoks ahela jaoks lahutanud 1 ja loendikogumiku indekseerimiseks lisanud 1.
Lõpuks oleme selle massiivi lehele printinud.
Seal on UNIKAALNE funktsioon, mis pole 2016. aasta tipptasemel saadaval ja mis teeb sama. See funktsioon on saadaval rakenduses Excel 2019. Sellele funktsioonile on juurdepääs ainult siseringi programmi liikmetel. Seda tehnikat kasutades saate end kontoris näidata, kuna olete MS -st ees.
Nii et jah, poisid, nii saate luua funktsiooni, mis ekstraheerib unikaalsed väärtused lihtsalt. Loodan, et olin piisavalt selgitav, et saaksite sellest aru. Kui teil on selle või mõne muu Exceli VBA -ga seotud küsimuse kohta konkreetseid küsimusi, küsige seda allpool kommentaaride osas.
Tööfaili allalaadimiseks klõpsake alloleval lingil:
Funktsioon UNIQUESVBA kogude kasutamine Excelis | Õppige kasutama kollektsiooni, mis aitab teil saada ainulaadseid väärtusi.
Looge massiivi tagastamiseks VBA funktsioon | Siit saate teada, kuidas luua massiivi tagastav kasutaja määratud massiivifunktsioon.
Massiivid Excel Formulis | Lugege, millised massiivid on Excelis.
Kuidas luua kasutaja määratud funktsiooni VBA kaudu | Siit saate teada, kuidas Excelis kasutaja määratud funktsioone luua
Kasutaja määratud funktsiooni (UDF) kasutamine teisest töövihikust, kasutades Microsoft Excelis VBA -d | Kasutaja määratud funktsiooni saate kasutada mõnes teises Exceli töövihikus
Tagastab vigade väärtused kasutaja määratud funktsioonidest, kasutades Microsoft Excelis VBA-d | Siit saate teada, kuidas saate kasutaja määratud funktsiooni veaväärtusi tagastada