V našich předchozích článcích jsme se naučili extrahovat jedinečné hodnoty z rozsahu pomocí kombinace různých funkcí aplikace Excel. Ačkoli fungují fantasticky, ale jsou také složité, nelze to popřít. Pokud často extrahujete jedinečné hodnoty, mohou vás tyto vzorce unavit. I oni dělají soubor těžkým a pomalým.
V tomto článku se tedy naučíme, jak vytvořit uživatelem definovanou funkci, která bere rozsah jako argument a vrací pouze jedinečné hodnoty z tohoto rozsahu. Kód můžete přímo zkopírovat do souboru a okamžitě jej začít používat.
Kód VBA pro jedinečnou funkci:
Funkce UNIQUES (rng As Range) As Variant () Dim list As New Collection Dim Ulist () As Variant 'Adding each value of rng to the collection. Při chybě Pokračovat Další pro každou hodnotu V rng 'zde jsou hodnota a klíč stejné. Sbírka nepovoluje duplicitní klíče, proto zůstanou pouze jedinečné hodnoty. list.Add CStr (Value), CStr (Value) Next On Error GoTo 0 'Defining the length of the array to the number of unique values. Protože pole začíná od 0, odečteme 1. ReDim Ulist (list.Count - 1, 0) 'Přidání jedinečné hodnoty do pole. For i = 0 To list. Count - 1 Ulist (i, 0) = list (i + 1) Next 'Printing the array UNIQUES = Ulist End Function
Zkopírujte kód do VB editoru aplikace Excel.
Použití funkce UNIQUE
Výše uvedená funkce je uživatelsky definovaná funkce vícebunkového pole. To znamená, že musíte vybrat rozsah, kam chcete vytisknout jedinečný seznam, poté napsat vzorec a stisknout kombinaci kláves CTRL+SHIFT+ENTER.
Ve výše uvedeném gifu máme seznam zemí. Nyní je na seznamu mnoho duplicitních zemí. Chceme získat pouze seznam jedinečných zemí.
Chcete -li to provést, vyberte rozsah, kde chcete jedinečný seznam. Nyní napište tento vzorec:
= UNIKÁTY (A2: B7) |
Stiskněte kombinaci kláves CTRL+SHIFT+ENTER. A je hotovo. Všechny jedinečné hodnoty jsou uvedeny ve vybraném rozsahu.
Poznámka:Pokud je rozsah, který jste vybrali, větší než jedinečná hodnota, zobrazí se chyba #N/A. Můžete jej použít jako indikaci ukončení jedinečných hodnot. Pokud na konci seznamu nevidíte #N/A, znamená to, že může existovat více jedinečných hodnot.
Vysvětlení kódu
V této funkci UD jsem použil dva hlavní koncepty VBA. Sbírky a funkce pole definovaná uživatelem. Nejprve jsme použili kolekci k získání jedinečných hodnot z poskytnutého rozsahu.
pro každou hodnotu v seznamu. Přidejte CStr (hodnota), CStr (hodnota) Další další
Protože na list nelze vytisknout kolekci, přenesli jsme ji do jiného pole UList.
pro i = 0 Do seznamu. Počet - 1 Ulist (i, 0) = seznam (i + 1) Další další
Poznámka:Indexování polí VBA začíná od 0 a indexování kolekce začíná od 1. Z tohoto důvodu jsme odečetli 1 pro smyčku in for a přidali 1 do indexování kolekce seznamů.
Nakonec jsme toto pole vytiskli na list.
Existuje funkce UNIQUE, která není k dispozici pro aplikaci Excel 2016 a která dělá totéž. Tato funkce je k dispozici v aplikaci Excel 2019. K této funkci mají přístup pouze členové programu zasvěcených osob. Pomocí této techniky se můžete v kanceláři pochlubit tím, že máte náskok před MS.
Takže jo, lidi, takto můžete jednoduše vytvořit funkci, která extrahuje jedinečné hodnoty. Doufám, že jsem byl dostatečně vysvětlující, abyste to pochopili. Pokud máte nějaké konkrétní dotazy týkající se této nebo jakékoli jiné otázky související s excelem VBA, zeptejte se jej v sekci komentáře níže.
Pracovní soubor stáhnete kliknutím na odkaz níže:
Funkce UNIQUESJak používat kolekce VBA v aplikaci Excel | Naučte se používat kolekci, která vám může pomoci získat jedinečné hodnoty.
Vytvořit funkci VBA pro návrat pole | Zjistěte, jak vytvořit uživatelem definovanou funkci pole, která vrací pole.
Pole v aplikaci Excel Formul | Zjistěte, jaká pole jsou v aplikaci Excel.
Jak vytvořit funkci definovanou uživatelem prostřednictvím VBA | Zjistěte, jak v aplikaci Excel vytvářet funkce definované uživatelem
Použití funkce definované uživatelem (UDF) z jiného sešitu pomocí jazyka VBA v aplikaci Microsoft Excel | Použijte funkci definovanou uživatelem v jiném sešitu aplikace Excel
Vraťte chybové hodnoty z funkcí definovaných uživatelem pomocí jazyka VBA v aplikaci Microsoft Excel | Zjistěte, jak můžete vrátit chybové hodnoty z funkce definované uživatelem