Функция IF на Excel с множество условия

  • Споделя Това
Michael Brown

В урока е показано как да създавате множество IF оператори в Excel с логика AND и OR. Също така ще научите как да използвате IF заедно с други функции на Excel.

В първата част на нашето ръководство за IF в Excel разгледахме как да конструираме проста декларация IF с едно условие за текст, числа, дати, празни и непразни полета. За мощен анализ на данни обаче често може да се наложи да оценявате няколко условия едновременно. Примерите за формули по-долу ще ви покажат най-ефективните начини за това.

    Как да използвате функцията IF с няколко условия

    По същество има два вида Формула IF с множество критерии, базирани на логиката AND / OR . Следователно в логическия тест на вашата формула IF трябва да използвате една от тези функции:

    • Функция AND - връща TRUE, ако всички условия са изпълнени; в противен случай - FALSE.
    • Функция ИЛИ - връща TRUE, ако всяко отделно условие е изпълнено; в противен случай е FALSE.

    За да илюстрираме по-добре този въпрос, нека разгледаме няколко примера за реални формули.

    Изречение IF на Excel с няколко условия (логика AND)

    Общата формула на Excel IF с две или повече условия е следната:

    АКО(И( условие1 , условие2 , ...), value_if_true, value_if_false)

    Преведена на човешки език, формулата гласи: Ако условие 1 е вярно И условие 2 е вярно, върнете value_if_true ; в противен случай върнете value_if_false .

    Да предположим, че имате таблица, в която са посочени резултатите от два теста в колони B и C. За да положи успешно последния изпит, ученикът трябва да има и двата резултата по-големи от 50.

    За логическия тест се използва следната декларация AND: AND(B2>50, C2>50)

    Ако и двете условия са верни, формулата ще върне "Pass"; ако някое от условията е невярно - "Fail".

    =IF(AND(B2>50, B2>50), "Pass", "Fail")

    Лесно, нали? Снимката на екрана по-долу доказва, че нашата формула IF /AND на Excel работи правилно:

    По подобен начин можете да използвате функцията IF на Excel с няколко текстови условия .

    Например, за да се получи резултат "Добър", ако и B2, и C2 са по-големи от 50, а в противен случай - "Лош", формулата е следната:

    =IF(AND(B2="успешно", C2="успешно"), "Добре!", "Лошо")

    Важна забележка! Функцията AND проверява всички условия , дори ако вече тестваното(ите) условие(а) е(са) оценено(и) на FALSE. Подобно поведение е малко необичайно, тъй като в повечето езици за програмиране следващите условия не се тестват, ако някой от предишните тестове е върнал FALSE.

    В практиката на пръв поглед коректна декларация IF може да доведе до грешка поради тази особеност. Например формулата по-долу ще върне #DIV/0! (грешка "дели по нула"), ако клетка A2 е равна на 0:

    =IF(AND(A20, (1/A2)>0.5), "Добър", "Лош")

    За да избегнете това, трябва да използвате вложена функция IF:

    =IF(A20, IF((1/A2)>0.5, "Добър", "Лош"), "Лош")

    За повече информация, моля, вижте IF AND формула в Excel.

    Функция IF на Excel с множество условия (логика OR)

    Да направите едно нещо, ако всяко условие е изпълнено, в противен случай направете нещо друго, използвайте тази комбинация от функциите IF и OR:

    IF(OR( условие1 , условие2 , ...), value_if_true, value_if_false)

    Разликата от формулата IF / AND, разгледана по-горе, е, че Excel връща TRUE, ако някое от посочените условия е вярно.

    Така че, ако в предишната формула използваме OR вместо AND:

    =IF(OR(B2>50, B2>50), "Pass", "Fail")

    Тогава всеки, който има повече от 50 точки на някой от изпитите, ще получи "Pass" в колона D. При тези условия нашите ученици имат по-голям шанс да издържат последния изпит (Ивет е особено нещастна, като не успява да издържи само с 1 точка :)

    Съвет. В случай че създавате множествена декларация IF с текст и тестване на стойност в една клетка с логиката OR (т.е. една клетка може да бъде "това" или "това"), можете да създадете по-компактна формула, като използвате константа на масив.

    Например, за да маркирате дадена продажба като "приключена", ако в клетка B2 е записано "доставено" или "платено", формулата е:

    =IF(OR(B2={"доставено", "платено"}), "Затворено", "")

    Повече примери за формули можете да намерите в Excel IF OR function.

    IF с множество твърдения AND & OR

    Ако задачата ви изисква оценяване на няколко набора от множество условия, ще трябва да използвате едновременно и двете функции AND & OR.

    Предполагаме, че в нашата примерна таблица имате следните критерии за проверка на резултатите от изпитите:

    • Условие 1: изпит1>50 и изпит2>50
    • Условие 2: изпит1>40 и изпит2>60

    Ако някое от тези условия е изпълнено, изпитът се счита за успешно положен.

    На пръв поглед формулата изглежда малко сложна, но всъщност не е! Просто изразявате всяко от горните условия като оператор AND и ги вмъквате във функцията OR (тъй като не е необходимо да се изпълняват и двете условия, достатъчно е и едното, и другото):

    ИЛИ(И(B2>50, C2>50), И(B2>40, C2>60)

    След това използвайте функцията OR за логическия тест на IF и подайте желаното value_if_true и value_if_false В резултат на това се получава следната формула IF с множество условия AND / OR:

    =IF(OR(AND(B2>50, C2>50), AND(B2>40, C2>60), "Pass", "Fail")

    Снимката на екрана по-долу показва, че сме направили формулата правилно:

    Естествено, не сте ограничени да използвате само две функции AND/OR във формулите IF. Можете да използвате толкова функции, колкото изисква бизнес логиката ви, при условие че:

    • В Excel 2007 и по-нови версии имате не повече от 255 аргумента, а общата дължина на формулата IF не надвишава 8 192 символа.
    • В Excel 2003 и по-ниски версии аргументите не могат да бъдат повече от 30, а общата дължина на формулата IF не надвишава 1024 символа.

    Вложен оператор IF за проверка на множество логически тестове

    Ако искате да оцените няколко логически теста в рамките на една формула, можете да вложите няколко функции една в друга. Такива функции се наричат вложени функции IF Те са особено полезни, когато искате да върнете различни стойности в зависимост от резултатите на логическите тестове.

    Ето един типичен пример: да предположим, че искате да квалифицирате постиженията на учениците като " Добър ", " Задоволително " и " Беден " въз основа на следните оценки:

    • Добър: 60 или повече (>=60)
    • Задоволително: между 40 и 60 (>40 и <60)
    • Беден: 40 или по-малко (<=40)

    Преди да напишете формула, помислете за реда на функциите, които ще вложите. Excel ще оцени логическите тестове в реда, в който се появяват във формулата. След като дадено условие се оцени като TRUE, следващите условия не се проверяват, което означава, че формулата спира след първия резултат TRUE.

    В нашия случай функциите са подредени от най-голямата към най-малката:

    =IF(B2>=60, "Добър", IF(B2>40, "Задоволителен", "Лош")

    Естествено, ако е необходимо, можете да вложите повече функции (до 64 в съвременните версии).

    За повече информация вижте Как да използваме множество вложени оператори IF в Excel.

    Масивна формула на Excel IF с множество условия

    Друг начин да накарате Excel IF да тества множество условия е като използвате формула за масив.

    За оценяване на условията с логиката AND използвайте звездичката:

    IF( условие1 ) * ( условие2 ) * ..., value_if_true, value_if_false)

    За да тествате условията с логиката ИЛИ, използвайте знака плюс:

    IF( условие1 ) + ( условие2 ) + ..., value_if_true, value_if_false)

    За да завършите правилно формулата за масиви, натиснете заедно клавишите Ctrl + Shift + Enter. В Excel 365 и Excel 2021 това работи и като обикновена формула благодарение на поддръжката на динамични масиви.

    Например, за да получите "Pass", ако и B2, и C2 са по-големи от 50, формулата е следната:

    =IF((B2>50) * (C2>50), "Pass", "Fail")

    В моя Excel 365 обикновената формула работи добре (както можете да видите на снимките по-горе). В Excel 2019 и по-ниски версии не забравяйте да я превърнете във формула за масиви, като използвате бързата клавишна комбинация Ctrl + Shift + Enter.

    За оценка на няколко условия с логиката ИЛИ формулата е:

    =IF((B2>50) + (C2>50), "Pass", "Fail")

    Използване на IF заедно с други функции

    В този раздел е обяснено как да използвате IF в комбинация с други функции на Excel и какви са ползите от това.

    Пример 1. При грешка #N/A в VLOOKUP

    Когато VLOOKUP или друга функция за търсене не може да намери нещо, тя връща грешка #N/A. За да изглеждат таблиците ви по-красиви, можете да върнете нула, празно място или конкретен текст, ако #N/A. За целта използвайте тази обща формула:

    IF(ISNA(VLOOKUP(...)), value_if_na , VLOOKUP(...))

    Например:

    Ако #N/A, върнете 0:

    Ако стойността за търсене в E1 не е намерена, формулата връща нула.

    =IF(ISNA(VLOOKUP(E1, A2:B10, 2,FALSE )), 0, VLOOKUP(E1, A2:B10, 2, FALSE))

    Ако е #N/A, върнете празно място:

    Ако стойността за търсене не е намерена, формулата не връща нищо (празен низ).

    =IF(ISNA(VLOOKUP(E1, A2:B10, 2,FALSE )), "", VLOOKUP(E1, A2:B10, 2, FALSE))

    Ако #N/A, върнете определен текст:

    Ако стойността за търсене не бъде намерена, формулата връща конкретен текст.

    =IF(ISNA(VLOOKUP(E1, A2:B10, 2,FALSE )), "Not found", VLOOKUP(E1, A2:B10, 2, FALSE))

    За повече примери за формули вижте VLOOKUP с оператор IF в Excel.

    Пример 2. IF с функциите SUM, AVERAGE, MIN и MAX

    За сумиране на стойностите на клетките въз основа на определени критерии Excel предлага функциите SUMIF и SUMIFS.

    В някои ситуации вашата бизнес логика може да изисква включването на функцията SUM в логическия тест на IF. Например, за да върнете различни текстови етикети в зависимост от сумата на стойностите в B2 и C2, формулата е:

    =IF(SUM(B2:C2)>130, "Добър", IF(SUM(B2:C2)>110, "Задоволителен", "Лош")

    Ако сборът е по-голям от 130, резултатът е "добър"; ако е по-голям от 110 - "задоволителен", ако е 110 или по-малък - "слаб".

    По подобен начин можете да вградите функцията AVERAGE в логическия тест на IF и да връщате различни етикети въз основа на средния резултат:

    =IF(AVERAGE(B2:C2)>65, "Добър", IF(AVERAGE(B2:C2)>55, "Задоволителен", "Лош")

    Ако приемете, че общият резултат е в колона D, можете да определите най-високата и най-ниската стойност с помощта на функциите MAX и MIN:

    =IF(D2=MAX($D$2:$D$10), "Най-добър резултат", "")

    =IF(D2=MAX($D$2:$D$10), "Най-добър резултат", "")

    За да получите двата етикета в една колона, вложете горните функции една в друга:

    =IF(D2=MAX($D$2:$D$10), "Най-добър резултат", IF(D2=MIN($D$2:$D$10), "Най-лош резултат", ""))

    По същия начин можете да използвате IF заедно с вашите потребителски функции. Например можете да го комбинирате с GetCellColor или GetCellFontColor, за да върнете различни резултати въз основа на цвета на клетката.

    Освен това Excel предоставя редица функции за изчисляване на данни въз основа на условия. За подробни примери за формули разгледайте следните уроци:

    • COUNTIF - преброяване на клетките, които отговарят на дадено условие
    • COUNTIFS - преброяване на клетки с множество критерии
    • SUMIF - условно сумиране на клетките
    • SUMIFS - сумиране на клетки с множество критерии

    Пример 3. IF с ISNUMBER, ISTEXT и ISBLANK

    За идентифициране на текст, числа и празни клетки Microsoft Excel предоставя специални функции, като ISTEXT, ISNUMBER и ISBLANK. Като ги поставите в логическите тестове на три вложени оператора IF, можете да идентифицирате всички различни типове данни с едно движение:

    =IF(ISTEXT(A2), "Text", IF(ISNUMBER(A2), "Number", IF(ISBLANK(A2), "Blank", "")))

    Пример 4. IF и CONCATENATE

    За да изведете резултата от функцията IF и някакъв текст в една клетка, използвайте функциите CONCATENATE или CONCAT (в Excel 2016 - 365) и IF заедно. Например:

    =CONCATENATE("Вие се представихте ", IF(B1>100, "фантастично!", IF(B1>50, "добре", "слабо")))

    =CONCAT("Вие се представихте ", IF(B1>100, "фантастично!", IF(B1>50, "добре", "слабо")))

    Ако погледнете снимката на екрана по-долу, едва ли ще имате нужда от обяснение какво прави формулата:

    IF ISERROR / ISNA формула в Excel

    Съвременните версии на Excel разполагат със специални функции за улавяне на грешки и заместването им с друго изчисление или предварително зададена стойност - IFERROR (в Excel 2007 и по-нови версии) и IFNA (в Excel 2013 и по-нови версии). В по-ранните версии на Excel вместо това можете да използвате комбинациите IF ISERROR и IF ISNA.

    Разликата е в това, че IFERROR и ISERROR се справят с всички възможни грешки на Excel, включително #VALUE!, #N/A, #NAME?, #REF!, #NUM!, #DIV/0! и #NULL!. Докато IFNA и ISNA са специализирани единствено в грешките #N/A.

    Например, за да замените грешката "дели по нула" (#DIV/0!) с персонализиран текст, можете да използвате следната формула:

    =IF(ISERROR(A2/B2), "N/A", A2/B2)

    И това е всичко, което имам да кажа за използването на функцията IF в Excel. Благодаря ви, че прочетохте, и се надявам да се видим в нашия блог следващата седмица!

    Практическа работна тетрадка за изтегляне

    Excel IF множество критерии - примери (.xlsx файл)

    Майкъл Браун е отдаден технологичен ентусиаст със страст към опростяване на сложни процеси с помощта на софтуерни инструменти. С повече от десетилетие опит в технологичната индустрия, той е усъвършенствал уменията си в Microsoft Excel и Outlook, както и в Google Sheets и Docs. Блогът на Майкъл е посветен на споделянето на неговите знания и опит с други, предоставяйки лесни за следване съвети и уроци за подобряване на продуктивността и ефективността. Независимо дали сте опитен професионалист или начинаещ, блогът на Michael предлага ценни прозрения и практически съвети за извличане на максимума от тези основни софтуерни инструменти.