Vlookup - множественные результаты с VBA - примеры кода VBA

Текст Vlookup

Стандартная функция Vlookup может использоваться для поиска значения в таблице:

И мы бы использовали ВПР так:

= ВПР (A1: 10; «Собака»; 2; ЛОЖЬ)

присвоить значение 30.

Однако в этом списке мы видим, что Dog встречается 3 раза. Стандартная функция ВПР вернет только значение, связанное с первым элементом в этом списке. Он не вернет 125 или 9 250 со вторым или третьим словом «собака» в этом списке.

Несколько результатов Vlookup

Следующая функция позволяет нам указать диапазон, выражение для поиска и экземпляр (номер результата), а затем вернуть соответствующее значение:

Функция Find_nth_Occurrence (Column_Range как диапазон, выражение как строка, Occ как целое число) как двойная тусклая тусклость ячейки Dim Occurrences_to_date как целое число Find_nth_Occurrence = 1000000 Occurrences_to_date = 0 для каждой ячейки в Column_Range, если Cell.Value = Occurrencesto_date_date_Inf_date = Occurrencestod_date = Occurrence_date_date_date_date_dance_date_date_dance_date_dance_dance_dance_dance_date_dance_d_ Тогда Find_nth_Occurrence = Cell.Offset (0, 1) .Value End If End If Next Cell End Function

Основное отличие этой функции от стандартной функции ВПР состоит в том, что в этом случае диапазон - это единственный диапазон меток, а не весь диапазон данных.
Ниже приводится подпрограмма, которая вызывает эту функцию в зависимости от события щелчка от командной кнопки. Он ищет в диапазоне A1: A8 на Листе 2 третий экземпляр слова Dog:

Private Sub CommandButton1_Click () Dim Answer As Double Answer = Find_nth_Occurrence (Sheets ("Sheet2"). Range ("A1: A8"), "Dog", 3) MsgBox AnswerEnd Sub

Переменная «Ответ» хранит результат функции, который затем отображается в Msgbox на экране:

> Однако, если слово не может быть найдено в списке или частота не встречается, например, нет 5-го экземпляра слова «Собака», то возвращается значение 1 000 000: -
Ответ = Find_nth_Occurrence (Листы («Лист2»). Диапазон («A1: A8»), «Собака», 5)
Или
Ответ = Find_nth_Occurrence (Листы («Лист2»). Диапазон («A1: A8»), «Лошадь», 2)

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave