В этой статье мы создадим настраиваемую функцию для поиска уникальных значений из определенного диапазона.

Исходные данные для этого примера состоят из повторяющихся записей названия страны в диапазоне A8: A21.

ArrowRawData

Логическое объяснение

Мы создали специальную функцию «UniqueItem» для извлечения уникальных значений из диапазона. Эта функция принимает на вход два параметра.

Первый параметр — это диапазон, который состоит из повторяющихся данных, а второй параметр определяет порядковый номер уникального значения в уникальной коллекции.

Эта функция возвращает уникальное значение из диапазона на основе номера индекса. Второй параметр — необязательный параметр, если второй параметр не указан, функция возвращает номер уникального значения в заданном диапазоне.

Если значение, определенное для второго параметра, больше, чем количество уникальных значений в диапазоне, то функция возвращает последнее уникальное значение.

ArrowOutput

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

При ошибке возобновить следующее для каждого CellValue в InputRange CUnique.Add CellValue.Value, CStr (CellValue.Value)

[_GoBack] # Next On Error GoTo 0 Приведенный выше код используется для создания объекта коллекции, который будет содержать уникальное значение из определенного диапазона. Операторы «On Error» используются для обработки ошибок, поскольку, когда код пытается поместить повторяющиеся значения в коллекцию, коллекция генерирует ошибку.

Пожалуйста, введите код ниже

Option Explicit

Function UniqueItem(InputRange As Range, Optional ItemNo As Integer = 0) As Variant

Dim CellValue As Range

Dim CUnique As New Collection

Dim UCount As Integer

On Error Resume Next

'Adding unique items to collection from defined range

For Each CellValue In InputRange

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

Next

On Error GoTo 0

'Getting count of unique item in the collection

UCount = CUnique.Count

If ItemNo = 0 Then

'Returning count of unique item

UniqueItem = UCount

ElseIf ItemNo <= UCount Then

'Returning unique value based on item number

UniqueItem = CUnique(ItemNo)

Else

'Returning last unique value

UniqueItem = CUnique(UCount)

End If

End Function

Если вам понравился этот блог, поделитесь им с друзьями на Facebook и Facebook.

Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]