Логически функции в Excel: AND, OR, XOR и NOT

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

В урока е обяснена същността на логическите функции на Excel AND, OR, XOR и NOT и са дадени примери за формули, които демонстрират техните често срещани и изобретателни приложения.

Миналата седмица се докоснахме до логическите оператори на Excel, които се използват за сравняване на данни в различни клетки. Днес ще видите как да разширите използването на логическите оператори и да конструирате по-сложни тестове за извършване на по-сложни изчисления. Логическите функции на Excel като AND, OR, XOR и NOT ще ви помогнат в това.

    Логически функции на Excel - преглед

    Microsoft Excel предоставя 4 логически функции за работа с логически стойности. Функциите са AND, OR, XOR и NOT. Използвате тези функции, когато искате да извършите повече от едно сравнение във формулата си или да тествате няколко условия вместо само едно. Освен логическите оператори, логическите функции на Excel връщат TRUE или FALSE, когато аргументите им се оценяват.

    Следващата таблица съдържа кратко резюме на функциите на всяка логическа функция, за да ви помогне да изберете правилната формула за конкретна задача.

    Функция Описание Пример за формула Формула Описание
    И Връща TRUE, ако всички аргументи се оценяват като TRUE. =AND(A2>=10, B2<5) Формулата връща TRUE, ако стойността в клетка A2 е по-голяма или равна на 10, а стойността в B2 е по-малка от 5, и FALSE в противен случай.
    ИЛИ Връща TRUE, ако някой от аргументите се оценява като TRUE. =OR(A2>=10, B2<5) Формулата връща TRUE, ако A2 е по-голямо или равно на 10 или B2 е по-малко от 5, или са изпълнени и двете условия. Ако не е изпълнено нито едно от условията, формулата връща FALSE.
    XOR Връща логическо Exclusive Or на всички аргументи. =XOR(A2>=10, B2<5) Формулата връща TRUE, ако A2 е по-голямо или равно на 10 или B2 е по-малко от 5. Ако нито едно от условията не е изпълнено или са изпълнени и двете условия, формулата връща FALSE.
    НЕ Връща обърнатата логическа стойност на аргумента си. Т.е. ако аргументът е FALSE, се връща TRUE и обратно. =NOT(A2>=10) Формулата връща FALSE, ако стойността в клетка A1 е по-голяма или равна на 10; в противен случай TRUE.

    В допълнение към четирите логически функции, описани по-горе, Microsoft Excel предоставя 3 "условни" функции - IF, IFERROR и IFNA.

    Логически функции на Excel - факти и цифри

    1. В аргументите на логическите функции можете да използвате препратки към клетки, цифрови и текстови стойности, булеви стойности, оператори за сравнение и други функции на Excel. Всички аргументи обаче трябва да се оценяват като булеви стойности TRUE или FALSE или препратки или масиви, съдържащи логически стойности.
    2. Ако аргумент на логическа функция съдържа празни клетки , такива стойности се пренебрегват. Ако всички аргументи са празни клетки, формулата връща грешка #VALUE!
    3. Ако аргумент на логическа функция съдържа числа, нулата се оценява като FALSE, а всички останали числа, включително отрицателните, се оценяват като TRUE. Например, ако клетките A1:A5 съдържат числа, формулата =AND(A1:A5) ще върне TRUE, ако нито една от клетките не съдържа 0, и FALSE в противен случай.
    4. Една логическа функция връща грешката #VALUE!, ако нито един от аргументите не се оценява като логическа стойност.
    5. Логическа функция връща грешка #NAME?, ако сте изписали погрешно името на функцията или сте се опитали да използвате функцията в по-ранна версия на Excel, която не я поддържа. Например функцията XOR може да се използва само в Excel 2016 и 2013.
    6. В Excel 2007 и по-нови версии можете да включите до 255 аргумента в логическа функция, при условие че общата дължина на формулата не надвишава 8 192 символа. В Excel 2003 и по-нови версии можете да предоставите до 30 аргумента, като общата дължина на формулата не трябва да надвишава 1 024 символа.

    Използване на функцията AND в Excel

    Функцията AND е най-популярният член на семейството на логическите функции. Тя е полезна, когато трябва да тествате няколко условия и да се уверите, че всички те са изпълнени. Технически функцията AND тества зададените от вас условия и връща TRUE, ако всички условия се оценяват като TRUE, и FALSE в противен случай.

    Синтаксисът на функцията AND в Excel е следният:

    AND(logical1, [logical2], ...)

    Където logical е условието, което искате да тествате и което може да се оцени като TRUE или FALSE. Първото условие (logical1) е задължително, а следващите условия не са задължителни.

    А сега нека разгледаме няколко примера за формули, които показват как да използвате функциите AND във формулите на Excel.

    Формула Описание
    =AND(A2="Банани", B2>C2) Връща TRUE, ако A2 съдържа "Bananas" и B2 е по-голям от C2, FALSE в противен случай.
    =AND(B2>20, B2=C2) Връща TRUE, ако B2 е по-голямо от 20 и B2 е равно на C2, FALSE в противен случай.
    =AND(A2="Банани", B2>=30, B2>C2) Връща TRUE, ако A2 съдържа "Bananas", B2 е по-голямо или равно на 30 и B2 е по-голямо от C2, FALSE в противен случай.

    Функция AND на Excel - често срещани употреби

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

    Една от най-често срещаните употреби на функцията AND в Excel се намира в аргумента logical_test на функцията IF за тестване на няколко условия вместо само едно. Например можете да вложите някоя от функциите AND по-горе във функцията IF и да получите резултат, подобен на този:

    =IF(AND(A2="Банани", B2>C2), "Добър", "Лош")

    За повече примери за IF/ AND формула, моля, разгледайте неговия урок: Excel IF function with multiple AND conditions.

    Формула на Excel за условието BETWEEN

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

    Например имате 3 стойности в колони A, B и C и искате да знаете дали стойността в колона A попада между стойностите B и C. За да направите такава формула, е необходима само функцията IF с вложена AND и няколко оператора за сравнение:

    Формула за проверка дали X е между Y и Z включително:

    =IF(AND(A2>=B2,A2<=C2),"Yes", "No")

    Формула за проверка дали X е между Y и Z, без да се включва:

    =IF(AND(A2>B2, A2

    Както е показано на снимката по-горе, формулата работи перфектно за всички типове данни - числа, дати и текстови стойности. При сравняване на текстови стойности формулата ги проверява символ по символ в азбучен ред. Ябълки в не между Кайсия и Банани защото втората буква "p" в Ябълки идва преди "r" в Кайсия Моля, вижте Използване на операторите за сравнение на Excel с текстови стойности за повече подробности.

    Както виждате, формулата IF /AND е проста, бърза и почти универсална. Казвам "почти", защото тя не покрива нито един сценарий. Горната формула предполага, че стойността в колона B е по-малка от тази в колона C, т.е. колона B винаги съдържа долната гранична стойност, а C - горната гранична стойност. Това е причината формулата да връща " Не " за ред 6, където А6 е 12, В6 - 15 и С6 - 3, както и за ред 8, където А8 е 24 ноември, В8 е 26 декември, а С8 е 21 октомври.

    Но какво да правите, ако искате формулата между да работи правилно, независимо от това къде се намират стойностите на долната и горната граница? В този случай използвайте функцията MEDIAN на Excel, която връща медианата на дадените числа (т.е. числото в средата на набора от числа).

    Така че, ако замените AND в логическия тест на функцията IF с MEDIAN, формулата ще изглежда по следния начин:

    =IF(A2=MEDIAN(A2:C2), "Да", "Не")

    И ще получите следните резултати:

    Както виждате, функцията MEDIAN работи перфектно за числа и дати, но връща грешката #NUM! за текстови стойности. Уви, никой не е съвършен : )

    Ако искате да имате перфектна формула Between, която да работи както за текстови стойности, така и за числа и дати, ще трябва да съставите по-сложен логически текст с помощта на функциите AND / OR, като тази:

    =IF(OR(AND(A2>B2, A2

    Използване на функцията ИЛИ в Excel

    Както и AND, функцията OR на Excel е основна логическа функция, която се използва за сравняване на две стойности или твърдения. Разликата е, че функцията OR връща TRUE, ако поне един от аргументите се оценява като TRUE, и връща FALSE, ако всички аргументи са FALSE. Функцията OR е налична във всички версии на Excel 2016 - 2000.

    Синтаксисът на функцията OR в Excel е много подобен на този на AND:

    ИЛИ(logical1, [logical2], ...)

    Където логическото е нещо, което искате да тествате и което може да бъде или TRUE, или FALSE. Първото логическо е задължително, а допълнителните условия (до 255 в съвременните версии на Excel) не са задължителни.

    А сега нека напишем няколко формули, за да разберете как работи функцията OR в Excel.

    Формула Описание
    =OR(A2="Bananas", A2="Oranges") Връща TRUE, ако A2 съдържа "Bananas" или "Oranges", в противен случай FALSE.
    =OR(B2>=40, C2>=20) Връща TRUE, ако B2 е по-голямо или равно на 40 или C2 е по-голямо или равно на 20, FALSE в противен случай.
    =OR(B2=" ",) Връща TRUE, ако B2 или C2 е празен, или и двата, FALSE в противен случай.

    Освен функцията AND на Excel, функцията OR се използва широко за разширяване на полезността на други функции на Excel, които извършват логически тестове, например функцията IF. Ето само няколко примера:

    Функция IF с вложено OR

    =IF(OR(B2>30, C2>20), "Добър", "Лош")

    Формулата връща " Добър " ако числото в клетка B3 е по-голямо от 30 или числото в C2 е по-голямо от 20, " Bad " в противен случай.

    Функции на Excel AND / OR в една формула

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

    =AND(OR(Cond1, Cond2), Cond3)

    =AND(OR(Cond1, Cond2), OR(Cond3, Cond4)

    =OR(AND(Cond1, Cond2), Cond3)

    =OR(AND(Cond1,Cond2), AND(Cond3,Cond4))

    Например, ако искате да разберете кои партиди банани и портокали са продадени, т.е. числото "В наличност" (колона В) е равно на числото "Продадено" (колона С), следната формула OR/AND може бързо да ви покаже това:

    =OR(AND(A2="банани", B2=C2), AND(A2="портокали", B2=C2)

    Функция ИЛИ в условното форматиране на Excel

    =ИЛИ($B2="", $C2="")

    Правилото с горната формула ИЛИ подчертава редове, които съдържат празна клетка в колона B или C, или и в двете.

    За повече информация относно формулите за условно форматиране вижте следните статии:

    • Формули за условно форматиране на Excel
    • Промяна на цвета на реда въз основа на стойността на клетка
    • Промяна на цвета на клетка въз основа на стойността на друга клетка
    • Как да подчертаете всеки друг ред в Excel

    Използване на функцията XOR в Excel

    В Excel 2013 Microsoft въведе функцията XOR, която е логическа Изключително или Този термин със сигурност е познат на тези от вас, които имат известни познания по някой език за програмиране или по информатика като цяло. За тези, които нямат такива познания, концепцията за "Exclusive Or" може да е малко трудна за разбиране в началото, но се надяваме, че обяснението по-долу, илюстрирано с примери за формули, ще помогне.

    Синтаксисът на функцията XOR е идентичен с този на OR :

    XOR(logical1, [logical2],...)

    Първото логическо твърдение (Logical 1) е задължително, а допълнителните логически стойности не са задължителни. Можете да тествате до 254 условия в една формула, като те могат да бъдат логически стойности, масиви или препратки, които се оценяват като TRUE или FALSE.

    В най-простия си вариант формулата XOR съдържа само 2 логически оператора и връщания:

    • TRUE, ако някой от аргументите се оценява като TRUE.
    • FALSE, ако и двата аргумента са TRUE или нито един от тях не е TRUE.

    Това може да се разбере по-лесно от примерите с формулите:

    Формула Резултат Описание
    =XOR(1>0, 2<1) TRUE Връща TRUE, тъй като първият аргумент е TRUE, а вторият аргумент е FALSE.
    =XOR(1<0, 2<1) FALSE Връща FALSE, тъй като и двата аргумента са FALSE.
    =XOR(1>0, 2>1) FALSE Връща FALSE, тъй като и двата аргумента са TRUE.

    Когато се добавят повече логически твърдения, функцията XOR в Excel дава следния резултат:

    • TRUE, ако нечетен брой от аргументите се оценяват като TRUE;
    • FALSE, ако общият брой на твърденията TRUE е четен или ако всички твърдения са FALSE.

    Снимката на екрана по-долу илюстрира този момент:

    Ако не сте сигурни как функцията XOR на Excel може да бъде приложена в реалния живот, разгледайте следния пример. Да предположим, че имате таблица с участниците и техните резултати за първите 2 игри. Искате да знаете кой от участниците ще играе в третата игра въз основа на следните условия:

    • Участниците, които са спечелили Игра 1 и Игра 2, преминават автоматично в следващия кръг и не трябва да играят Игра 3.
    • Участниците, които са загубили и двете първи игри, отпадат и не играят и в трета игра.
    • Участниците, които са спечелили Игра 1 или Игра 2, играят Игра 3, за да определят кой ще премине в следващия кръг и кой не.

    Една проста формула XOR работи точно както искаме:

    =XOR(B2="Спечелил", C2="Спечелил")

    А ако вложите тази функция XOR в логическия тест на формулата IF, ще получите още по-разумни резултати:

    =IF(XOR(B2="Спечелил", C2="Спечелил"), "Да", "Не")

    Използване на функцията NOT в Excel

    Функцията NOT е една от най-простите функции на Excel по отношение на синтаксиса:

    NOT(логически)

    Използвате функцията NOT в Excel, за да обърнете стойността на аргумента ѝ. С други думи, ако логическата стойност е FALSE, функцията NOT връща TRUE и обратно. Например и двете формули по-долу връщат FALSE:

    =NOT(TRUE)

    =NOT(2*2=4)

    Защо човек би искал да получи такива нелепи резултати? В някои случаи може да ви е по-интересно да знаете кога дадено условие не е изпълнено, отколкото кога е. Например, когато преглеждате списък с облекла, може да искате да изключите някой цвят, който не ви отива. Аз не обичам особено черното, затова продължавам по тази формула:

    =NOT(C2="черен")

    Както обикновено, в Microsoft Excel има повече от един начин да се направи нещо и можете да постигнете същия резултат, като използвате оператора Not equal to: =C2 "black".

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

    =NOT(OR(C2="black", C2="white"))

    А ако предпочитате да нямате черно палто, макар че може да се помисли за черно яке или кожено палто на гърба, трябва да използвате NOT в комбинация с функцията AND на Excel:

    =NOT(AND(C2="black", B2="coat"))

    Друга често срещана употреба на функцията NOT в Excel е да обърне поведението на някоя друга функция. Например можете да комбинирате функциите NOT и ISBLANK, за да създадете формулата ISNOTBLANK, която липсва в Microsoft Excel.

    Както знаете, формулата =ISBLANK(A2) връща TRUE, ако клетката A2 е празна. Функцията NOT може да обърне този резултат на FALSE: =NOT(ISBLANK(A2))

    След това можете да направите още една стъпка напред и да създадете вложен оператор IF с функциите NOT / ISBLANK за задача от реалния живот:

    =IF(NOT(ISBLANK(C2)), C2*0.15, "Няма бонус :(")

    Ако клетката С2 не е празна, умножете числото в С2 по 0,15, което дава 15% бонус на всеки търговец, който е реализирал допълнителни продажби. Ако С2 е празна, се появява текстът "Няма бонус :(".

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

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