V našich predchádzajúcich článkoch sme sa naučili extrahovať jedinečné hodnoty z určitého rozsahu pomocou kombinácie rôznych funkcií programu Excel. Aj keď fungujú fantasticky, ale sú tiež zložité, toto sa nedá poprieť. Ak často získavate jedinečné hodnoty, tieto vzorce vás môžu unaviť. Tiež robia súbor ťažkým a pomalým.
V tomto článku sa teda naučíme, ako vytvoriť užívateľom definovanú funkciu, ktorá ako argument berie rozsah a vracia z neho iba jedinečné hodnoty. Kód môžete priamo skopírovať do svojho súboru a ihneď ho začať používať.
Kód VBA pre jedinečnú funkciu:
Funkcia UNIQUES (rng ako rozsah) Ako variant () Dim zoznam ako nová kolekcia Dim Ulist () Ako variant 'Pridanie každej hodnoty rng do zbierky. Pri chybe Pokračovať ďalej pre každú hodnotu V rng 'tu sú hodnota a kľúč rovnaké. Kolekcia nepovoľuje duplicitné kľúče, takže zostanú iba jedinečné hodnoty. zoznam. Pridajte CStr (hodnota), CStr (hodnota) Ďalej pri chybe GoTo 0 'Definovanie dĺžky poľa pre počet jedinečných hodnôt. Pretože pole začína od 0, odpočítame 1. ReDim Ulist (list.Count - 1, 0) 'Pridanie jedinečnej hodnoty do poľa. Pre i = 0 Do zoznamu. Počet - 1 Ulist (i, 0) = zoznam (i + 1) Ďalej 'Tlač poľa UNIQUES = Ulist Koniec Funkcia
Skopírujte kód do editora VB programu Excel.
Použitie funkcie UNIQUE
Vyššie uvedená funkcia je užívateľom definovaná funkcia viacerých buniek poľa. Znamená to, že musíte vybrať rozsah, v ktorom sa má jedinečný zoznam vytlačiť, potom napísať vzorec a stlačiť kombináciu klávesov CTRL+SHIFT+ENTER.
V gifu uvedenom vyššie máme zoznam krajín. Teraz je v zozname veľa duplicitných krajín. Chceme získať iba zoznam jedinečných krajín.
Ak to chcete urobiť, vyberte rozsah, v ktorom chcete jedinečný zoznam. Teraz napíšte tento vzorec:
= JEDNOTKY (A2: B7) |
Stlačte kombináciu klávesov CTRL+SHIFT+ENTER. A je hotovo. Všetky jedinečné hodnoty sú uvedené vo vybranom rozsahu.
Poznámka:Ak je rozsah, ktorý ste vybrali, vyšší ako jedinečná hodnota, zobrazí sa chyba #N/A. Môžete ho použiť ako indikátor ukončenia jedinečných hodnôt. Ak nevidíte #N/A na konci zoznamu, znamená to, že môže existovať viac jedinečných hodnôt.
Vysvetlenie kódu
V tejto funkcii UD som použil dva hlavné koncepty VBA. Zbierky a funkcia poľa definovaná používateľom. Najprv sme použili kolekciu na získanie jedinečných hodnôt z poskytnutého rozsahu.
pre každú hodnotu v zozname. Pridajte CStr (hodnota), CStr (hodnota) Ďalej
Pretože nemôžeme zbierku vytlačiť na hárok, preniesli sme ju do iného poľa UList.
pre i = 0 Do zoznamu. Počet - 1 Ulist (i, 0) = zoznam (i + 1) Ďalší ďalší
Poznámka:Indexovanie poľa VBA začína od 0 a indexovanie zbierky začína od 1. Preto sme odpočítali 1 pre cyklus in for a pridali sme 1 k indexovaniu zbierky zoznamov.
Nakoniec sme toto pole vytlačili na list.
K dispozícii je JEDINEČNÁ funkcia, ktorá nie je k dispozícii na Excel 2016 a robí to isté. Táto funkcia je k dispozícii v programe Excel 2019. K tejto funkcii majú prístup iba členovia programu insider. Použitím tejto techniky sa môžete v kancelárii predviesť ako náskok pred MS.
Takže áno, chlapci, takto môžete vytvoriť funkciu, ktorá jednoducho extrahuje jedinečné hodnoty. Dúfam, že som bol dostatočne vysvetľujúci, aby ste to pochopili. Ak máte nejaké konkrétne otázky týkajúce sa tejto alebo akejkoľvek inej otázky súvisiacej s Excelom VBA, opýtajte sa ich v sekcii komentárov nižšie.
Kliknutím na odkaz nižšie si stiahnete pracovný súbor:
Funkcia UNIQUESAko používať zbierky VBA v programe Excel | Naučte sa používať zbierku, ktorá vám môže pomôcť získať jedinečné hodnoty.
Vytvorte funkciu VBA na vrátenie poľa | Naučte sa vytvoriť používateľom definovanú funkciu poľa, ktorá vráti pole.
Polia v programe Excel Formul | Zistite, aké polia sú v programe Excel.
Ako vytvoriť funkciu definovanú používateľom prostredníctvom VBA | Naučte sa vytvárať v programe Excel funkcie definované používateľom
Použitie funkcie definovanej používateľom (UDF) z iného zošita pomocou jazyka VBA v programe Microsoft Excel | Používateľom definovanú funkciu použite v inom zošite programu Excel
Vráťte chybové hodnoty z funkcií definovaných používateľom pomocou jazyka VBA v programe Microsoft Excel | Zistite, ako môžete vrátiť chybové hodnoty z funkcie definovanej používateľom