Влоокуп Више услова коришћењем ВБА
Размотрите следећу табелу података:
Стандардна функција Влоокуп у програму Екцел има следећи формат:
ВЛООКУП ("" Ознака ", Б6: Г12", 2, ФАЛСЕ)
Који ће вратити "Бровн".
Међутим, шта ако желимо да погледамо 2 или више услова, на пример име, презиме и године у горњој табели? Следећи УДФ нам то омогућава:
123456789101112131415161718192021222324252627282930313233343536373839 | Функција ТхрееПараметерВлоокуп (Дата_Ранге Ас Ранге, Цол Ас Интегер, Параметер1 ас Вариант, Параметер2 ас Вариант, Параметер3 ас Вариант) Као варијанта'Декларишите променљивеДим ЦеллДим Цуррент_Ров Ас ИнтегерДим Но_Оф_Ровс_ин_Ранге Ас ИнтегерДим Но_оф_Цолс_ин_Ранге Ас ИнтегерДим Матцхинг_Ров Ас Интегер'подразумевано поставите одговор на Н/АТхрееПараметерВлоокуп = ЦВЕрр (клЕррНА)Матцхинг_Ров = 0Тренутни_ред = 1Но_Оф_Ровс_ин_Ранге = Подаци_Ранге.Ровс.ЦоунтНо_оф_Цолс_ин_Ранге = Подаци_Ранге.Цолумнс.Цоунт„Проверите да ли је Цол већи од броја колона у опсегуАко (Цол> Но_оф_Цолс_ин_Ранге) ТадаТхрееПараметерВлоокуп = ЦВЕрр (клЕррРеф)Крај АкоАко (Цол <= Но_оф_Цолс_ин_Ранге) ТадаУрадитиАко ((Дата_Ранге.Целлс (Цуррент_Ров, 1) .Валуе = Параметер1) И _(Податковни опсег. Ћелије (Тренутни_ред, 2). Вредност = Параметар2) И _(Податковни опсег. Ћелије (Тренутни_ред, 3). Вредност = Параметар3)) ЗатимМатцхинг_Ров = Тренутни_РедКрај АкоТренутни_ред = Тренутни_ред + 1Петља до ((Тренутни_ред = Нема_Оф_Ровс_ин_Ранге) Или (Матцхинг_Ров 0))Ако Матцхинг_Ров 0 ТадаТхрееПараметерВлоокуп = Дата_Ранге.Целлс (Матцхинг_Ров, Цол)Крај АкоКрај АкоЗавршна функција |
Има следећу синтаксу:
ТхрееПараметерВлоокуп (Дата_Ранге, Цол, Параметер1, Параметер2, Параметер3)
Где:
• Дата_Ранге је опсег података
• Цол је цео број за потребну колону
• Параметар1, Параметер2 и Параметер3 су вриједности из прве три колоне
Тако да:
= ТхрееПараметерВлоокуп (Б6: Г12,6, "Марк", "Бровн", 7) враћа "Толвортх" јер се ово подудара са "Марк", "Бровн" и 7 и упућивањем на 6. колону
Имајте на уму да ће ова функција радити и са (динамичким) именованим опсезима:
= ТхрееПараметерВлоокуп (намед_ранге, 6, "Адриан", "Вхите", 7) ће вратити "Цхессингтон" где смо поставили именовани опсег "Намед_Ранге".
Ако Екцел не може да пронађе подударање, подразумевано се враћа „Н/А“. У ствари, функција претпоставља вредност Н/А на почетку, а затим се мења само када пронађе потпуно подударање.
Такође, ако вредност Цол премашује број колона, долази до грешке референце.
Кликните овде да бисте преузели .КСЛСМ датотеку за овај водич