Excel: Ако клетката съдържа примери за формула

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

Съдържание

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

Една от най-често срещаните задачи в Excel е да се провери дали дадена клетка съдържа стойност, която ви интересува. Каква стойност може да бъде това? Просто някакъв текст или число, конкретен текст или изобщо някаква стойност (не празна клетка).

Съществуват няколко варианта на формулата "Ако клетката съдържа" в Excel, в зависимост от това какви точно стойности искате да намерите. Като цяло ще използвате функцията IF, за да направите логически тест и да върнете една стойност, когато условието е изпълнено (клетката съдържа), и/или друга стойност, когато условието не е изпълнено (клетката не съдържа). Примерите по-долу обхващат най-често срещаните сценарии.

    Ако клетката съдържа някаква стойност, тогава

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

    IF( клетка "", value_to_return , "")

    Например, за да върнете "Не е празно" в колона В, ако клетката на колона А в същия ред съдържа някаква стойност, въвеждате следната формула в B2 и след това щраквате два пъти върху малкия зелен квадрат в долния десен ъгъл, за да копирате формулата надолу по колоната:

    =IF(A2"", "Не е празно", "")

    Резултатът ще изглежда по следния начин:

    Ако клетката съдържа текст, тогава

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

    IF(ISTEXT( клетка ), value_to_return , "")

    Да предположим, че искате да вмъкнете думата "да" в колона B, ако клетката в колона A съдържа текст. За да го направите, поставете следната формула в B2:

    =IF(ISTEXT(A2), "Да", "")

    Ако клетката съдържа число, тогава

    По подобен начин можете да идентифицирате клетки с числови стойности (числа и дати). За целта използвайте функцията IF заедно с ISNUMBER:

    IF(ISNUMBER( клетка ), value_to_return , "")

    Следната формула връща "да" в колона В, ако съответната клетка в колона А съдържа някакво число:

    =IF(ISNUMBER(A2), "Да", "")

    Ако клетката съдържа определен текст

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

    IF( клетка =" текст ", value_to_return , "")

    Например, за да разберете дали клетка A2 съдържа "ябълки", използвайте тази формула:

    =IF(A2="ябълки", "Да", "")

    Ако клетката не съдържа определен текст

    Ако търсите обратния резултат, т.е. да върнете някаква стойност в друга колона, ако целевата клетка не съдържа зададения текст ("ябълки"), тогава направете едно от следните действия.

    Подайте празен низ ("") в value_if_true и текст, който да се върне в аргумента value_if_false аргумент:

    =IF(A2="ябълки", "", "Не са ябълки")

    Или въведете оператора "не е равно на" в logical_test и текст за връщане в value_if_true:

    =IF(A2 "ябълки", "Не са ябълки", "")

    И в двата случая формулата ще даде този резултат:

    Ако клетката съдържа текст: формула, чувствителна към големи и малки букви

    За да накарате формулата си да прави разлика между главни и малки букви, използвайте функцията EXACT, която проверява дали два текстови низа са точно равни, включително големината на буквите:

    =IF(EXACT(A2, "APPLES"), "Yes", "")

    Можете също така да въведете текстовия низ на модела в някоя клетка (например в C1), да фиксирате препратката към клетката със знака $ ($C$1) и да сравните целевата клетка с тази клетка:

    =IF(EXACT(A2,$C$1), "Yes", "")

    Ако клетката съдържа определен текстов низ (частично съвпадение)

    Приключихме с тривиалните задачи и преминаваме към по-трудни и интересни :) В този пример са необходими три различни функции, за да се установи дали даден символ или подниз е част от съдържанието на клетката:

    IF(ISNUMBER(SEARCH(" текст" , клетка )), value_to_return ,"")

    Работейки отвътре навън, ето какво прави формулата:

    • Функцията SEARCH търси текстов низ и ако низът е намерен, връща позицията на първия символ, а в противен случай връща грешката #VALUE!.
    • Функцията ISNUMBER проверява дали търсенето SEARCH е било успешно или не. Ако търсенето SEARCH е върнало някакво число, ISNUMBER връща TRUE. Ако търсенето SEARCH е довело до грешка, ISNUMBER връща FALSE.
    • И накрая, функцията IF връща посочената стойност за клетките, които имат TRUE в логическия тест, а в противен случай - празен низ ("").

    А сега нека видим как тази обща формула работи в реални работни листове.

    Ако клетката съдържа определен текст, поставете стойност в друга клетка

    Да предположим, че имате списък с поръчки в колона А и искате да намерите поръчки с конкретен идентификатор, например "А-". Задачата може да бъде изпълнена с тази формула:

    =IF(ISNUMBER(SEARCH("A-",A2)), "Valid",")

    Вместо да кодирате символния низ във формулата, можете да го въведете в отделна клетка (E1) и да направите препратка към тази клетка във формулата:

    =IF(ISNUMBER(SEARCH($E$1,A2)), "Valid","")

    За да работи формулата правилно, не забравяйте да заключите адреса на клетката, съдържаща низ, със знака $ (абсолютна референция към клетката).

    Ако клетката съдържа определен текст, копирайте го в друга колона

    Ако искате да копирате съдържанието на валидните клетки някъде другаде, просто посочете адреса на оценяваната клетка (A2) в value_if_true аргумент:

    =IF(ISNUMBER(SEARCH($E$1,A2)),A2,"")

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

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

    И в двата примера по-горе формулите не се съобразяват с големи и малки букви. Когато работите с данни, които се съобразяват с големи и малки букви, използвайте функцията FIND вместо SEARCH, за да разграничите големината на символите.

    Например следната формула ще идентифицира само поръчки с главни букви "A-", като игнорира малки букви "a-".

    =IF(ISNUMBER(FIND("A-",A2)), "Valid","")

    Ако клетката съдържа един от много текстови низове (логика OR)

    За да определите клетките, съдържащи поне едно от многото търсени неща, използвайте една от следните формули.

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

    IF(OR(ISNUMBER(SEARCH(" низ1 ", клетка )), ISNUMBER(ТЪРСЕНЕ(" низ2 ", клетка ))), value_to_return , "")

    Да предположим, че в колона А имате списък с артикули SKU и искате да намерите тези, които включват или "рокля", или "пола". Можете да го направите, като използвате тази формула:

    =IF(OR(ISNUMBER(SEARCH("рокля",A2)),ISNUMBER(SEARCH("пола",A2)), "Валидно ","")

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

    Ако работите с множество текстови низове, търсенето на всеки низ поотделно би направило формулата ви твърде дълга и трудна за четене. По-елегантно решение би било да вградите комбинацията ISNUMBER SEARCH във функцията SUMPRODUCT и да проверите дали резултатът е по-голям от нула:

    SUMPRODUCT(--ISNUMBER(SEARCH( низове , клетка )))>0

    Например, за да разберете дали A2 съдържа някоя от думите, въведени в клетки D2:D4, използвайте тази формула:

    =SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0

    Като алтернатива можете да създадете именуван диапазон, съдържащ низовете за търсене, или да въведете думите директно във формулата:

    =SUMPRODUCT(--ISNUMBER(SEARCH({"рокля", "пола", "дънки"},A2)))>0

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

    За да направите изхода по-удобен за потребителя, можете да вмъкнете горната формула във функцията IF и да върнете свой собствен текст вместо стойностите TRUE/FALSE:

    =IF(SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0, "Valid", "")

    Как работи тази формула

    В основата си използвате ISNUMBER заедно с SEARCH, както е обяснено в предишния пример. В този случай резултатите от търсенето са представени под формата на масив като {TRUE;FALSE;FALSE}. Ако дадена клетка съдържа поне един от посочените поднизове, в масива ще има TRUE. Двойният едносричен оператор (--) превръща стойностите TRUE / FALSE съответно в 1 и 0 и предоставя масив като{1;0;0}. Накрая функцията SUMPRODUCT сумира числата и избираме клетките, в които резултатът е по-голям от нула.

    Ако клетката съдържа няколко низа (логика AND)

    В случаите, когато искате да намерите клетки, съдържащи всички посочени текстови низове, използвайте познатата вече комбинация ISNUMBER SEARCH заедно с IF AND:

    IF(AND(ISNUMBER(SEARCH(" низ1 ", клетка )), ISNUMBER(ТЪРСЕНЕ(" низ2 ", клетка ))), value_to_return ,"")

    Например с тази формула можете да откриете артикули, съдържащи едновременно "рокля" и "синьо":

    =IF(AND(ISNUMBER(SEARCH("рокля",A2)),ISNUMBER(SEARCH("синьо",A2))), "Валидно ","")

    Или можете да въведете низовете в отделни клетки и да се позовавате на тези клетки във формулата си:

    =IF(AND(ISNUMBER(SEARCH($D$2,A2)),ISNUMBER(SEARCH($E$2,A2)), "Valid ","")

    Като алтернативно решение можете да преброите срещите на всеки низ и да проверите дали всяка среща е по-голяма от нула:

    =IF(AND(COUNTIF(A2, "*dress*")>0,COUNTIF(A2, "*blue*")>0), "Valid","")

    Резултатът ще бъде точно такъв, какъвто е показан на снимката по-горе.

    Как да върнете различни резултати въз основа на стойността на клетката

    В случай че искате да сравните всяка клетка в целевата колона с друг списък от елементи и да върнете различна стойност за всяко съвпадение, използвайте един от следните подходи.

    Вложени IF-и

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

    IF( клетка =" lookup_text1 ", " връщане на _ текст1 ", IF( клетка =" lookup_text2 ", " връщане на _ текст2 ", IF( клетка =" lookup_text3 ", " връщане на _ текст3 ", "")))

    Да предположим, че имате списък с елементи в колона А и искате да въведете техните съкращения в колона Б. За да го направите, използвайте следната формула:

    =IF(A2="ябълка", "Ap", IF(A2="авокадо", "Av", IF(A2="банан", "B", IF(A2="лимон", "L", ""))))

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

    Формула за търсене

    Ако търсите по-компактна и по-добре разбираема формула, използвайте функцията LOOKUP, като стойностите за търсене и връщане се подават като вертикални масивни константи:

    LOOKUP( клетка , {" lookup_text1 ";" lookup_text2 ";" lookup_text3 ";...}, {" връщане на _ текст1 ";" връщане на _ текст2 ";" връщане на _ текст3 ";...})

    За да получите точни резултати, не забравяйте да изпишете стойностите за търсене в по азбучен ред , от А до Я.

    =LOOKUP(A2,{"apple";"avocado";"banana";"lemon"},{"Ap";"Av";"B";"L"})

    В сравнение с вложените IF формула Lookup има още едно предимство - тя разбира заместващи символи и следователно може да идентифицира частични съвпадения.

    Например, ако колона А съдържа няколко вида банани, можете да потърсите "*banana*" и да получите същото съкращение ("B") за всички такива клетки:

    =LOOKUP(A2,{"apple";"avocado";"*banana*";"lemon"},{"Ap";"Av";"B";"L"})

    За повече информация вижте раздел Формула за търсене като алтернатива на вложените IF-и (Lookup formula as an alternative to nested IFs).

    Формула Vlookup

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

    =VLOOKUP(A2, $D$2:$E$5, 2,FALSE )

    За повече информация, моля, вижте Excel VLOOKUP урок за начинаещи.

    По този начин проверявате дали дадена клетка съдържа някаква стойност или конкретен текст в Excel. Следващата седмица ще продължим да разглеждаме формулите на Excel If cell contains (Ако клетката съдържа) и ще научим как да броим или сумираме съответните клетки, да копираме или премахваме цели редове, съдържащи тези клетки, и др. Моля, останете на линия!

    Практическа работна тетрадка

    Excel Ако клетката съдържа - примери за формула (.xlsx файл)

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