Съдържание
В урока е показано как да комбинирате V LOOKUP и функцията IF заедно за v-lookkup с условие if в Excel. Ще научите също как да използвате формулите IF ISNA VLOOKUP, за да замените грешките #N/A със собствен текст, нула или празна клетка.
Въпреки че функциите VLOOKUP и IF са полезни сами по себе си, заедно те осигуряват още по-ценни преживявания. Този урок предполага, че сте запомнили добре синтаксиса на двете функции, в противен случай може да искате да опресните знанията си, като следвате горните връзки.
Vlookup с оператор If: връщане на True/False, Yes/No и т.н.
Един от най-често срещаните сценарии за комбиниране на If и Vlookup е да се сравни стойността, върната от Vlookup, с примерна стойност и да се върне Да / Не или Вярно / невярно като резултат.
В повечето случаи следната обща формула е подходяща:
IF(VLOOKUP(...) = стойност , TRUE, FALSE)Преведена на обикновен английски език, формулата инструктира Excel да върне Истински ако Vlookup е вярно (т.е. равно на посочената стойност). Ако Vlookup е невярно (не е равно на посочената стойност), формулата връща Фалшив .
По-долу ще намерите няколко реални приложения на тази формула IF Vlookup.
Пример 1. Търсене на определена стойност
Да речем, че имате списък с артикули в колона A и количество в колона B. Създавате табло за управление за потребителите си и се нуждаете от формула, която да проверява количеството за даден артикул в E1 и да информира потребителя дали артикулът е в наличност или е продаден.
Извличате количеството с помощта на обикновен Vlookup с формула за точно съвпадение по следния начин:
=VLOOKUP(E1,$A$2:$B$10,2,FALSE)
След това напишете оператор IF, който сравнява резултата на Vlookup с нула и връща "Не", ако е равен на 0, и "Да" в противен случай:
=IF(VLOOKUP(E1,$A$2:$B$10,2,FALSE)=0, "Не", "Да")
Вместо Да/Не , можете да върнете TRUE/FALSE или В наличност/разпродадени или други два варианта. Например:
=IF(VLOOKUP(E1,$A$2:$B$10,2)=0, "Разпродадено", "На склад")
Можете също така да сравните стойността, върната от Vlookup, с извадка текст . В този случай не забравяйте да поставите текстовия низ в кавички, както е показано по-долу:
=IF(VLOOKUP(E1,$A$2:$B$10,2)="текст на извадката",TRUE,FALSE)
Пример 2. Сравняване на резултата от Vlookup с друга клетка
Друг типичен пример за Vlookup с условие If в Excel е сравняването на резултата от Vlookup със стойност в друга клетка. Например можем да проверим дали тя е по-голяма или равна на число в клетка G2:
=IF(VLOOKUP(E1,$A$2:$B$10,2)>=G2, "Да!", "Не")
И ето нашата формула If с Vlookup в действие:
По подобен начин можете да използвате всеки друг логически оператор заедно с препратка към клетка във формулата Excel If Vlookup.
Пример 3. Стойности на Vlookup в по-кратък списък
Сравняване на всяка клетка в целевата колона с друг списък и връщане на Истински или Да ако е намерено съвпадение, Фалшив или Не в противен случай използвайте тази обща формула IF ISNA VLOOKUP:
IF(ISNA( VLOOKUP(...)), "Не", "Да")Ако Vlookup доведе до грешка #N/A, формулата връща "Не", което означава, че стойността за търсене не е намерена в списъка за търсене. Ако съответствието е намерено, се връща "Да":
=IF(ISNA(VLOOKUP(A2,$D$2:$D$4,1,FALSE)), "Не", "Да")
Ако бизнес логиката ви изисква противоположни резултати, просто разменете "Да" и "Не", за да обърнете логиката на формулата:
=IF(ISNA(VLOOKUP(A2,$D$2:$D$4,1,FALSE)), "Да", "Не")
Excel Ако Vlookup формула за извършване на различни изчисления
Освен че показва вашите собствени текстови съобщения, функцията If с Vlookup може да извършва различни изчисления въз основа на зададените от вас критерии.
Ако разгледаме примера по-нататък, нека изчислим комисионата на конкретен продавач (F1) в зависимост от неговата ефективност: 20% комисиона за тези, които са направили 200 и повече долара, и 10% за всички останали.
За тази цел проверявате дали стойността, върната от Vlookup, е по-голяма или равна на 200 и ако е, я умножавате по 20%, а в противен случай - по 10%:
=IF(VLOOKUP(F1,$A$2:$C$10,3,FALSE )>=200, VLOOKUP(F1,$A$2:$C$10,3,FALSE)*20%, VLOOKUP(F1,$A$2:$C$10,3,FALSE)*10%)
Където A2:A10 са имената на продавачите, а C2:C10 са продажбите.
IF ISNA VLOOKUP за скриване на грешки #N/A
Ако функцията VLOOKUP не може да открие зададена стойност, тя изхвърля грешка #N/A. За да уловите тази грешка и да я замените със собствен текст, вградете формула Vlookup в логическия тест на функцията IF, както е показано по-долу:
IF(ISNA(VLOOKUP(...)), "Not found", VLOOKUP(...))Естествено, можете да въведете произволен текст вместо "Not found".
Да предположим, че имате списък с имена на продавачи в една колона и суми за продажби в друга колона. Вашата задача е да изтеглите числото, съответстващо на името, което потребителят въведе в F1. Ако името не е намерено, изведете съобщение, в което се посочва това.
С имената в A2:A10 и сумите C2:C10 задачата може да бъде изпълнена със следната формула If Vlookup:
=IF(ISNA(VLOOKUP(F1,$A$2:$C$10,3,FALSE)), "Не е намерен", VLOOKUP(F1,$A$2:$C$10,3,FALSE))
Ако името е намерено, се връща съответната сума за продажба:
Ако стойността за търсене не е намерена, бутонът Не е намерен вместо грешка #N/A се появява съобщение:
Как работи тази формула
Логиката на формулата е много проста: използвате функцията ISNA, за да проверите Vlookup за грешки #N/A. Ако възникне грешка, ISNA връща TRUE, в противен случай FALSE. Горните стойности отиват в логическия тест на функцията IF, която прави едно от следните действия:
- Ако логическият тест е TRUE (грешка #N/A), се показва вашето съобщение.
- Ако логическият тест е FALSE (стойността на търсачката е намерена), Vlookup връща нормално съвпадение.
IFNA VLOOKUP в по-нови версии на Excel
От Excel 2013 нататък можете да използвате функцията IFNA вместо IF ISNA, за да улавяте и обработвате грешки #N/A:
IFNA(VLOOKUP(...), " Не е намерен ")В нашия пример формулата ще има следната форма:
=IFNA(VLOOKUP(F1,$A$2:$C$10,3, FALSE), "Не е намерен")
Съвет: Ако искате да улавяте всякакви грешки, а не само #N/A, използвайте VLOOKUP в комбинация с функцията IFERROR. Повече информация можете да намерите тук: IFERROR VLOOKUP in Excel.
Excel Vlookup: ако не е намерен, върнете 0
Когато работите с числови стойности, може да искате да върнете нула, когато стойността за търсене не е намерена. За да го направите, използвайте формулата IF ISNA VLOOKUP, разгледана по-горе, с малка модификация: вместо текстово съобщение, въведете 0 в value_if_true аргумент на функцията IF:
IF(ISNA(VLOOKUP(...)), 0, VLOOKUP(...))В нашата примерна таблица формулата ще бъде следната:
=IF(ISNA(VLOOKUP(F2,$A$2:$C$10,3,FALSE)), 0, VLOOKUP(F2,$A$2:$C$10,3,FALSE))
В последните версии на Excel 2016 и 2013 можете отново да използвате комбинацията IFNA Vlookup:
=IFNA(VLOOKUP(I2,$A$2:$C$10,3, FALSE), 0)
Excel Vlookup: ако не е намерена, върнете празна клетка
Това е още една разновидност на командата "Vlookup if then": не връщайте нищо, когато стойността за търсене не е намерена. За да направите това, инструктирайте формулата си да връща празен низ ("") вместо грешката #N/A:
IF(ISNA(VLOOKUP(...)), "", VLOOKUP(...))По-долу са дадени няколко примера за пълни формули:
За всички версии на Excel:
=IF(ISNA(VLOOKUP(F2,$A$2:$C$10,3,FALSE)), "", VLOOKUP(F2,$A$2:$C$10,3,FALSE))
За Excel 2016 и Excel 2013:
=IFNA(VLOOKUP(F2,$A$2:$C$10,3, FALSE), "")
If с индексно съвпадение - ляв vlookup с условие If
Опитните потребители на Excel знаят, че функцията VLOOKUP не е единственият начин за извършване на вертикално търсене в Excel. За тази цел може да се използва и комбинацията INDEX MATCH, която е още по-мощна и гъвкава. Добрата новина е, че Index Match може да работи заедно с IF по абсолютно същия начин като Vlookup.
Например имате номера на поръчки в колона А и имена на продавачи в колона Б. Търсите формула, която да извлече номера на поръчката за конкретен продавач.
Vlookup не може да се използва в този случай, тъй като не може да търси отдясно наляво. Index Match ще работи безпроблемно, стига стойността за търсене да е намерена в колоната за търсене. Ако това не е така, ще се появи грешка #N/A. За да замените стандартния запис на грешка с ваш собствен текст, вложете Index Match в IF ISNA:
=IF(ISNA(INDEX(A2:A10, MATCH(F1, $B$2:$B$10, 0)), "Не е намерен", INDEX(A2:A10, MATCH(F1, $B$2:$B$10, 0))
В Excel 2016 и 2016 можете да използвате IFNA вместо IF ISNA, за да направите формулата по-компактна:
=IFNA(INDEX(A2:A10, MATCH(F1, $B$2:$B$10, 0)), "Не е намерен")
По подобен начин можете да използвате Index Match в други формули If.
Ето как се използват Vlookup и IF заедно в Excel. За да разгледате по-отблизо формулите, разгледани в този урок, можете да изтеглите нашата примерна работна книга по-долу. Благодаря ви за четенето и се надявам да се видим в нашия блог следващата седмица!
Практическа работна тетрадка за изтегляне
Excel IF Vlookup - примери за формули (.xlsx файл)