Cuprins
Tutorialul oferă o serie de exemple de formule "Excel if contains", care arată cum să returnezi ceva într-o altă coloană dacă o celulă țintă conține o valoare necesară, cum să cauți cu potrivire parțială și cum să testezi criterii multiple cu logica OR și AND.
Una dintre cele mai frecvente sarcini în Excel este verificarea dacă o celulă conține o valoare de interes. Ce fel de valoare poate fi aceasta? Orice text sau număr, un text specific sau orice valoare (nu o celulă goală).
Există mai multe variante ale formulei "Dacă celula conține" în Excel, în funcție de valorile exacte pe care doriți să le găsiți. În general, veți utiliza funcția IF pentru a face un test logic și veți returna o valoare atunci când condiția este îndeplinită (celula conține) și/sau o altă valoare atunci când condiția nu este îndeplinită (celula nu conține). Exemplele de mai jos acoperă cele mai frecvente scenarii.
Dacă celula conține orice valoare, atunci
Pentru început, să vedem cum să găsim celule care conțin orice: orice text, număr sau dată. Pentru aceasta, vom folosi o simplă formulă IF care verifică celulele care nu sunt goale.
IF( celulă "", valoare_pentru_returnare , "")De exemplu, pentru a returna "Not blank" în coloana B dacă celula coloanei A din același rând conține orice valoare, introduceți următoarea formulă în B2, apoi faceți dublu clic pe micul pătrat verde din colțul din dreapta jos pentru a copia formula în josul coloanei:
=IF(A2"", "Not blank", "")
Rezultatul va fi asemănător cu acesta:
Dacă celula conține text, atunci
Dacă doriți să găsiți numai celule cu valori text, ignorând numerele și datele, atunci utilizați IF în combinație cu funcția ISTEXT. Iată formula generică pentru a returna o anumită valoare într-o altă celulă dacă o celulă țintă conține orice text :
IF(ISTEXT( celulă ), valoare_pentru_returnare , "")Să presupunem că doriți să inserați cuvântul "da" în coloana B dacă o celulă din coloana A conține text. Pentru a face acest lucru, introduceți următoarea formulă în B2:
=IF(ISTEXT(A2), "Da", "")
Dacă celula conține un număr, atunci
În mod similar, puteți identifica celulele cu valori numerice (numere și date). Pentru aceasta, utilizați funcția IF împreună cu ISNUMBER:
IF(ISNUMBER( celulă ), valoare_pentru_returnare , "")Următoarea formulă returnează "da" în coloana B dacă o celulă corespunzătoare din coloana A conține orice număr:
=IF(ISNUMBER(A2), "Yes", "")
Dacă celula conține un anumit text
Găsirea celulelor care conțin un anumit text (sau numere sau date) este simplă. Scrieți o formulă IF obișnuită care verifică dacă o celulă țintă conține textul dorit și introduceți textul care trebuie returnat în câmpul value_if_true argument.
IF( celulă =" text ", valoare_pentru_returnare , "")De exemplu, pentru a afla dacă celula A2 conține "mere", utilizați această formulă:
=IF(A2="mere", "Da", "")
Dacă celula nu conține un text specific
Dacă doriți să obțineți un rezultat opus, adică să returnați o valoare într-o altă coloană dacă o celulă țintă nu conține textul specificat ("mere"), atunci procedați astfel.
Furnizați un șir de caractere gol ("") în rubrica value_if_true și textul care trebuie returnat în value_if_false argument:
=IF(A2="mere", "", "Nu mere")
Sau, puneți operatorul "not equal to" în test_logic și textul de returnat în value_if_true:
=IF(A2 "mere", "Nu mere", "")
În orice caz, formula va produce acest rezultat:
Dacă celula conține text: formulă sensibilă la majuscule și minuscule
Pentru a forța formula dvs. să facă distincția între caracterele majuscule și minuscule, utilizați funcția EXACT care verifică dacă două șiruri de text sunt exact egale, inclusiv literele majuscule și minuscule:
=IF(EXACT(A2, "APPLES"), "Yes", "")
De asemenea, puteți introduce șirul de text al modelului într-o anumită celulă (de exemplu, în C1), fixați referința celulei cu semnul $ ($C$1) și comparați celula țintă cu acea celulă:
=IF(EXACT(A2,$C$1), "Da", "")
Dacă celula conține un anumit șir de text (potrivire parțială)
Am terminat cu sarcinile triviale și trecem la sarcini mai dificile și mai interesante :) În acest exemplu, este nevoie de trei funcții diferite pentru a afla dacă un anumit caracter sau un subșir de caractere face parte din conținutul celulei:
IF(ISNUMBER(SEARCH(" text" , celulă )), valoare_pentru_returnare ,"")Lucrând din interior spre exterior, iată ce face această formulă:
- Funcția SEARCH caută un șir de caractere de text și, dacă acesta este găsit, returnează poziția primului caracter, iar în caz contrar, eroarea #VALUE!
- Funcția ISNUMBER verifică dacă SEARCH a reușit sau a eșuat. Dacă SEARCH a returnat un număr oarecare, ISNUMBER returnează TRUE. Dacă SEARCH produce o eroare, ISNUMBER returnează FALSE.
- În cele din urmă, funcția IF returnează valoarea specificată pentru celulele care au TRUE în testul logic, iar în caz contrar un șir gol ("").
Și acum, să vedem cum funcționează această formulă generică în fișele de lucru din viața reală.
Dacă celula conține un anumit text, puneți o valoare într-o altă celulă
Să presupunem că aveți o listă de comenzi în coloana A și doriți să găsiți comenzi cu un anumit identificator, de exemplu "A-". Această sarcină poate fi îndeplinită cu această formulă:
=IF(ISNUMBER(SEARCH("A-",A2)), "Valid","")
În loc să codificați șirul de caractere în formulă, îl puteți introduce într-o celulă separată (E1) și să faceți referire la acea celulă în formula dumneavoastră:
=IF(ISNUMBER(SEARCH($E$1,A2)), "Valid","")
Pentru ca formula să funcționeze corect, asigurați-vă că blocați adresa celulei care conține șirul de caractere cu semnul $ (referință absolută la celulă).
Dacă celula conține un anumit text, copiați-l în altă coloană
Dacă doriți să copiați conținutul celulelor valide în altă parte, este suficient să furnizați adresa celulei evaluate (A2) în fereastra value_if_true argument:
=IF(ISNUMBER(SEARCH($E$1,A2)),A2,""")
Captura de ecran de mai jos arată rezultatele:
Dacă celula conține un anumit text: formulă sensibilă la majuscule și minuscule
În ambele exemple de mai sus, formulele nu țin cont de majuscule și minuscule. În situațiile în care lucrați cu date care țin cont de majuscule și minuscule, utilizați funcția FIND în loc de SEARCH pentru a face distincția între majuscule și minuscule.
De exemplu, următoarea formulă va identifica numai comenzile cu majuscule "A-", ignorând minusculele "a-".
=IF(ISNUMBER(FIND("A-",A2)), "Valid","")
Dacă celula conține unul dintre mai multe șiruri de text (logică OR)
Pentru a identifica celulele care conțin cel puțin unul dintre multele elemente pe care le căutați, utilizați una dintre următoarele formule.
Formula de căutare IF OR ISNUMBER SEARCH
Abordarea cea mai evidentă ar fi să verificați fiecare subșir individual și să faceți ca funcția OR să returneze TRUE în testul logic al formulei IF dacă se găsește cel puțin un subșir:
IF(OR(ISNUMBER(SEARCH(" string1 ", celulă )), ISNUMBER(SEARCH(" șir2 ", celulă ))), valoare_pentru_returnare , "")Să presupunem că aveți o listă de SKU-uri în coloana A și doriți să le găsiți pe cele care includ fie "rochie", fie "fustă". Puteți face acest lucru folosind această formulă:
=IF(OR(ISNUMBER(ISNUMBER(SEARCH("dress",A2)),ISNUMBER(SEARCH("skirt",A2))), "Valid ",""")
Formula funcționează destul de bine pentru câteva elemente, dar cu siguranță nu este calea de urmat dacă doriți să verificați mai multe lucruri. În acest caz, o abordare mai bună ar fi utilizarea funcției SUMPRODUCT, așa cum se arată în exemplul următor.
SUMPRODUCT ISNUMBER Formula de căutare SUMPRODUCT ISNUMBER SEARCH
Dacă aveți de-a face cu mai multe șiruri de text, căutarea fiecărui șir în parte ar face ca formula dvs. să fie prea lungă și dificil de citit. O soluție mai elegantă ar fi încorporarea combinației ISNUMBER SEARCH în funcția SUMPRODUCT și să vedeți dacă rezultatul este mai mare decât zero:
SUMPRODUCT(--ISNUMBER(SEARCH( șiruri , celulă )))>0De exemplu, pentru a afla dacă A2 conține oricare dintre cuvintele introduse în celulele D2:D4, utilizați această formulă:
=SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0
Alternativ, puteți crea un interval numit care să conțină șirurile de caractere care trebuie căutate sau puteți furniza cuvintele direct în formulă:
=SUMPRODUCT(--ISNUMBER(SEARCH({"dress", "skirt", "jeans"},A2)))>0
Oricum ar fi, rezultatul va fi similar cu acesta:
Pentru a face ca rezultatul să fie mai ușor de utilizat, puteți să înglobați formula de mai sus în funcția IF și să returnați propriul text în loc de valorile TRUE/FALSE:
=IF(SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0, "Valid", "")
Cum funcționează această formulă
La bază, se utilizează ISNUMBER împreună cu SEARCH, așa cum s-a explicat în exemplul anterior. În acest caz, rezultatele căutării sunt reprezentate sub forma unui tablou de tipul {TRUE;FALSE;FALSE}. Dacă o celulă conține cel puțin unul dintre subșirurile specificate, în tablou va exista TRUE. Operatorul unar dublu (--) coacționează valorile TRUE / FALSE la 1 și, respectiv, 0, și furnizează un tablou de tipul{1;0;0}. În cele din urmă, funcția SUMPRODUCT însumează numerele și alegem celulele în care rezultatul este mai mare decât zero.
Dacă celula conține mai multe șiruri de caractere (logica AND)
În situațiile în care doriți să găsiți celule care conțin toate șirurile de text specificate, utilizați combinația deja cunoscută ISNUMBER SEARCH împreună cu IF AND:
IF(AND(ISNUMBER(SEARCH(" string1 ", celulă )), ISNUMBER(SEARCH(" șir2 ", celulă ))), valoare_pentru_returnare ,"")De exemplu, puteți găsi SKU-uri care conțin atât "rochie", cât și "albastru" cu această formulă:
=IF(AND(ISNUMBER(ISNUMBER(SEARCH("dress",A2)),ISNUMBER(SEARCH("blue",A2))), "Valid ",""")
Sau, puteți introduce șirurile de caractere în celule separate și să faceți trimitere la aceste celule în formula dumneavoastră:
=IF(AND(ISNUMBER(ISNUMBER(SEARCH($D$2,A2)),ISNUMBER(SEARCH($E$2,A2))), "Valid ","")
Ca soluție alternativă, puteți număra aparițiile fiecărui șir de caractere și verifica dacă fiecare număr este mai mare decât zero:
=IF(AND(COUNTIF(A2, "*dress*")>0,COUNTIF(A2, "*blue*")>0), "Valid",""")
Rezultatul va fi exact ca în imaginea de mai sus.
Cum să returnați rezultate diferite în funcție de valoarea celulei
În cazul în care doriți să comparați fiecare celulă din coloana țintă cu o altă listă de elemente și să returnați o valoare diferită pentru fiecare potrivire, utilizați una dintre următoarele abordări.
IF-uri imbricate
Logica formulei IF imbricate este foarte simplă: utilizați o funcție IF separată pentru a testa fiecare condiție și returnați valori diferite în funcție de rezultatele acestor teste.
IF( celulă =" lookup_text1 ", " return _ text1 ", IF( celulă =" lookup_text2 ", " return _ text2 ", IF( celulă =" lookup_text3 ", " return _ text3 ", "")))Să presupunem că aveți o listă de articole în coloana A și doriți să aveți abrevierile acestora în coloana B. Pentru a face acest lucru, utilizați următoarea formulă:
=IF(A2="măr", "Ap", IF(A2="avocado", "Av", IF(A2="banană", "B", IF(A2="lămâie", "L", ""))))
Pentru detalii complete despre sintaxa și logica IF imbricate, consultați Excel nested IF - condiții multiple într-o singură formulă.
Formula de căutare
Dacă sunteți în căutarea unei formule mai compacte și mai ușor de înțeles, utilizați funcția LOOKUP cu valorile de căutare și de returnare furnizate ca și constante de matrice verticală:
LOOKUP( celulă , {" lookup_text1 ";" lookup_text2 ";" lookup_text3 ";...}, {" return _ text1 ";" return _ text2 ";" return _ text3 ";...})Pentru rezultate precise, asigurați-vă că listați valorile de căutare în ordine alfabetică , de la A la Z.
=LOOKUP(A2,{"apple";"avocado";"banana";"lemon"},{"Ap";"Av";"B";"L"})
În comparație cu IF-urile imbricate, formula Lookup mai are un avantaj - înțelege caractere wildcard și, prin urmare, poate identifica corespondențe parțiale.
De exemplu, dacă coloana A conține câteva tipuri de banane, puteți căuta "*banana*" și veți obține aceeași abreviere ("B") pentru toate aceste celule:
=LOOKUP(A2,{"apple";"avocado";"*banana*";"lemon"},{"Ap";"Av";"B";"L"})
Pentru mai multe informații, consultați Formula de căutare ca alternativă la IF-urile imbricate.
Formula Vlookup
Atunci când se lucrează cu un set de date variabile, poate fi mai convenabil să se introducă o listă de corespondențe în celule separate și să se recupereze folosind o formulă Vlookup, de exemplu:
=VLOOKUP(A2, $D$2:$E$5, 2,FALSE )
Pentru mai multe informații, vă rugăm să consultați Excel VLOOKUP tutorial pentru începători.
Acesta este modul în care verificați dacă o celulă conține o valoare sau un text specific în Excel. Săptămâna viitoare, vom continua să analizăm formulele Dacă celula conține din Excel și vom învăța cum să numărăm sau să adunăm celulele relevante, să copiem sau să eliminăm rânduri întregi care conțin acele celule și multe altele. Vă rugăm să rămâneți cu noi!
Caiet de practică
Excel Dacă celula conține - exemple de formule (.xlsx file)