Извличане на уникални стойности в Excel с помощта на една функция

Anonim

В предишните ни статии се научихме как да извличаме уникални стойности от диапазон, използвайки комбинация от различни функции на Excel. Въпреки че работят фантастично, но и те са сложни, това не може да се отрече. Ако често извличате уникални стойности, тези формули могат да ви уморят. Те също правят файла тежък и бавен.

Така че в тази статия ще научим как да създадем дефинирана от потребителя функция, която приема диапазон като аргумент и връща само уникални стойности от този диапазон. Можете директно да копирате кода във вашия файл и да започнете да го използвате веднага.

VBA код за уникална функция:

Функция UNIQUES (rng As Range) Като вариант () Dim list As New Collection Dim Ulist () As Variant 'Добавяне на всяка стойност на rng към колекцията. On Error Resume Next за всяка стойност В rng 'тук стойността и ключът са едни и същи. Колекцията не позволява дублиращи се ключове, следователно ще останат само уникални стойности. list.Add CStr (Value), CStr (Value) Next On Error GoTo 0 'Определяне на дължината на масива до броя на уникалните стойности. Тъй като масивът започва от 0, изваждаме 1. ReDim Ulist (list.Count - 1, 0) 'Добавяне на уникална стойност към масива. For i = 0 To list.Count - 1 Ulist (i, 0) = list (i + 1) Next 'Отпечатване на масива UNIQUES = Ulist End функция 

Копирайте кода във VB редактор на Excel.

Използване на функцията UNIQUE

Горната функция е дефинирана от потребителя функция с множество клетки. Това означава, че трябва да изберете диапазона, в който искате да бъде отпечатан уникалният списък, след това напишете формулата и натиснете комбинацията от клавиши CTRL+SHIFT+ENTER.

В GIF по -горе имаме списък с държави. Сега в списъка има много дублиращи се страни. Искаме да получим само списъка с уникални държави.

За да направите това, изберете диапазон, където искате уникалния списък. Сега напишете тази формула:

= УНИКАЛНИ (A2: B7)

Натиснете комбинацията от клавиши CTRL+SHIFT+ENTER. И е направено. Всички уникални стойности са изброени в избрания диапазон.

Забележка:Ако диапазонът, който сте избрали, е повече от уникалната стойност, те ще покажат грешка #N/A. Можете да го използвате като индикация за прекратяване на уникални стойности. Ако не виждате #N/A в края на списъка, това означава, че може да има повече уникални стойности.

Обяснение на кода

Използвал съм две основни концепции за VBA в тази UD функция. Колекции и функция, дефинирана от потребителя. Първо, използвахме колекция, за да получим уникалните стойности от предоставения диапазон.

за всяка стойност в rng списък. След това добавете CStr (стойност), CStr (стойност) 

Тъй като не можем да отпечатаме колекция на листа, ние я прехвърлихме в друг масив UList.

for i = 0 To list.Count - 1 Ulist (i, 0) = list (i + 1) Next next 

Забележка:Индексирането на VBA масиви започва от 0, а индексирането на колекции започва от 1. Ето защо извадихме 1 за масив във цикъла for и добавихме 1 към индексирането на колекцията от списъци.

В крайна сметка отпечатахме този масив на листа.

Има УНИКАЛНА функция, която не е налична за Excel 2016, която прави същото. Тази функция е налична в Excel 2019. Само членовете на вътрешната програма имат достъп до тази функция. Използвайки тази техника, можете да се покажете в офиса, че изпреварвате МС.

Така че да, момчета, по този начин можете да създадете функция, която просто извлича уникални стойности. Надявам се, че бях достатъчно обяснителен, за да разберете това. Ако имате някакви конкретни въпроси относно този или друг въпрос, свързан с Excel VBA, задайте го в секцията за коментари по -долу.

Щракнете върху връзката по -долу, за да изтеглите работния файл:

УНИКАЛНА функция

Как да използвате VBA колекции в Excel | Научете използването на колекция, която може да ви помогне да получите уникални ценности.

Създайте VBA функция за връщане на масив | Научете как да създадете функция, дефинирана от потребителя, която връща масив.

Масиви в Excel Formul | Научете какви масиви има в Excel.

Как да създадете потребителска функция чрез VBA | Научете как да създавате потребителски функции в Excel

Използване на функция, дефинирана от потребителя (UDF) от друга работна книга, използваща VBA в Microsoft Excel | Използвайте дефинираната от потребителя функция в друга работна книга на Excel

Връща стойности на грешки от дефинирани от потребителя функции, използвайки VBA в Microsoft Excel | Научете как можете да върнете стойности за грешка от дефинирана от потребителя функция