Unikaalsete väärtuste leidmine Microsoft Excelis VBA abil

Anonim

Selles artiklis loome kohandatud funktsiooni määratletud vahemikust ainulaadsete väärtuste leidmiseks.

Selle näite toorandmed koosnevad riiginime duplikaatkirjetest vahemikus A8: A21.

Loogiline seletus

Oleme loonud kohandatud funktsiooni „UniqueItem”, et ekstraheerida unikaalsed väärtused vahemikust. Selle funktsiooni sisendiks on kaks parameetrit. Esimene parameeter on vahemik, mis koosneb duplikaatandmetest ja teine ​​parameeter määratleb ainulaadse kogu ainulaadse väärtuse indeksi numbri.

See funktsioon tagastab indeksi numbri põhjal vahemiku unikaalse väärtuse. Teine parameeter on valikuline parameeter, kui teist parameetrit pole määratud, tagastab funktsioon kordumatu väärtuse arvu määratletud vahemikus.

Kui teise parameetri jaoks määratletud väärtus on suurem kui unikaalsete väärtuste arv vahemikus, tagastab funktsioon viimase unikaalse väärtuse.

Koodi selgitus

Vea korral Jätka järgmist

Iga InputRange'i lahtriväärtuse jaoks

CUnique.Ad CellValue.Value, CStr (CellValue.Value)

Edasi

Viga GoTo 0

Ülaltoodud koodi kasutatakse kogumisobjekti loomiseks, mis sisaldab määratletud vahemikust ainulaadset väärtust. Vigade käsitlemiseks kasutatakse avaldusi „On Error”, kuna kui kood üritab kogusse topeltväärtusi panna, tekitab kogumine tõrke.

Palun järgige koodi allpool

 Valik Selgesõnaline funktsioon UniqueItem (InputRange vahemikuna, valikuline kirje nr Täisarv = 0) Variandina Dim CellValue As Range Dim CUnique Uus kollektsioon Dim UCount täisarvuna vea korral Jätka järgmisel ' .Add CellValue.Value, CStr (CellValue.Value) Next On Error GoTo 0 'Kogus ainulaadse üksuse loenduse saamine UCount = CUnique.Count If ItemNo = 0 Siis' Unikaalse üksuse tagastamise arv UniqueItem = UCount ElseIf ItemNo <= UCount Seejärel 'Unikaalse väärtuse tagastamine üksuse numbri alusel UniqueItem = CUnique (ItemNo) Else' Viimase unikaalse väärtuse tagastamine 

Kui teile see blogi meeldis, jagage seda oma sõpradega Facebookis. Lisaks saate meid jälgida Twitteris ja Facebookis.

Tahaksime sinust kuulda, andke meile teada, kuidas saaksime oma tööd paremaks muuta ja teie jaoks paremaks muuta. Kirjuta meile meilisaidile