Vlookup - Кілька результатів з VBA - Приклади коду VBA

Текст для перегляду

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

І ми б використовували VLOOKUP так:

= VLOOKUP (A1: 10, "Собака", 2, FALSE)

дати значення 30.

Однак у цьому списку ми бачимо, що собака зустрічається 3 рази. Стандартна функція VLOOKUP поверне лише значення, пов'язане з першим елементом у цьому списку. Він не поверне 125 або 9 250 з 2 -м або 3 -м екземпляром "собака" у цьому списку.

Перегляд кількох результатів

Наступна функція дозволяє нам вказати діапазон, вираз для пошуку та екземпляр (номер результату), а потім повернути відповідне значення:

Функція Find_nth_Occurrence (Column_Range As Range, Expression As String, Occ As Integer) Як Double Dim Cell Dim Occurrences_to_date As Integer Find_nth_Occurrence = 1000000 Occurrences_to_date = 0 Для кожної клітинки у стовпці_Range Якщо Cell.Ocete Тоді Find_nth_Occurrence = Cell.Offset (0, 1) .Value End If End Якщо функція End of Cell End

Основна відмінність цієї від стандартної функції VLOOKUP полягає в тому, що в цьому випадку діапазон є єдиним діапазоном міток, а не всім діапазоном даних.
Нижче наведено підпрограму, яка викликає цю функцію на основі події клацання з кнопки команди. Це виглядає в діапазоні A1: A8 на Аркуші 2, для третього екземпляра слова Собака:

Приватне підпорядкування CommandButton1_Click () Затемнення відповіді як подвійної відповіді = Find_nth_Occurrence (Аркуші ("Лист2"). Діапазон ("A1: A8"), "Собака", 3) MsgBox AnswerEnd Sub

Змінна “Відповідь” зберігає результат функції, який потім відображається у вікні повідомлень на екрані:

> Однак якщо слова не можна знайти у списку або частота не зустрічається, наприклад, немає п’ятого екземпляра слова «собака», повертається значення 1 000 000:-
Відповідь = Find_nth_Occurrence (Аркуші ("Аркуш2"). Діапазон ("A1: A8"), "Собака", 5)
Або
Відповідь = Find_nth_Occurrence (Аркуші ("Аркуш2"). Діапазон ("A1: A8"), "Кінь", 2)

wave wave wave wave wave