Excel: Jeśli komórka zawiera przykłady formuł

  • Udostępnij To
Michael Brown

Samouczek zawiera wiele przykładów formuł "Excel if contains", które pokazują, jak zwrócić coś w innej kolumnie, jeśli komórka docelowa zawiera wymaganą wartość, jak wyszukiwać z częściowym dopasowaniem i testować wiele kryteriów z logiką OR, a także AND.

Jednym z najczęstszych zadań w Excelu jest sprawdzanie, czy komórka zawiera interesującą nas wartość. Jaka to może być wartość? Po prostu dowolny tekst lub liczba, określony tekst lub w ogóle dowolna wartość (nie pusta komórka).

Istnieje kilka odmian formuły "Jeśli komórka zawiera" w Excelu, w zależności od tego, jakie dokładnie wartości chcesz znaleźć. Ogólnie rzecz biorąc, użyjesz funkcji IF, aby wykonać test logiczny i zwrócić jedną wartość, gdy warunek jest spełniony (komórka zawiera) i/lub inną wartość, gdy warunek nie jest spełniony (komórka nie zawiera). Poniższe przykłady obejmują najczęstsze scenariusze.

    Jeśli komórka zawiera jakąkolwiek wartość, to

    Na początek zobaczmy, jak znaleźć komórki, które zawierają w ogóle cokolwiek: dowolny tekst, liczbę lub datę. W tym celu użyjemy prostej formuły JEŻELI, która sprawdza, czy komórki nie są puste.

    IF( komórka "", wartość_do_zwrotu , "")

    Na przykład, aby zwrócić "Nie pusty" w kolumnie B, jeśli komórka kolumny A w tym samym wierszu zawiera jakąkolwiek wartość, wprowadzasz następującą formułę w B2, a następnie dwukrotnie klikasz mały zielony kwadrat w prawym dolnym rogu, aby skopiować formułę w dół kolumny:

    =IF(A2"", "Nie puste", "")

    Wynik będzie wyglądał podobnie do tego:

    Jeśli komórka zawiera tekst, to

    Jeśli chcesz znaleźć tylko komórki z wartościami tekstowymi ignorując liczby i daty, to użyj JEŻELI w połączeniu z funkcją ISTEXT. Oto ogólna formuła, która ma zwrócić jakąś wartość w innej komórce, jeśli komórka docelowa zawiera dowolny tekst :

    IF(ISTEXT( komórka ), wartość_do_zwrotu , "")

    Załóżmy, że chcesz wstawić słowo "tak" w kolumnie B, jeśli komórka w kolumnie A zawiera tekst. Aby to zrobić, umieść następującą formułę w B2:

    =IF(ISTEXT(A2), "Tak", "")

    Jeśli komórka zawiera liczbę, to

    W podobny sposób można zidentyfikować komórki z wartościami numerycznymi (liczby i daty). W tym celu należy użyć funkcji JEŻELI wraz z ISNUMBER:

    IF(ISNUMBER( komórka ), wartość_do_zwrotu , "")

    Poniższa formuła zwraca "tak" w kolumnie B, jeśli odpowiadająca jej komórka w kolumnie A zawiera dowolną liczbę:

    =IF(ISNUMBER(A2), "Tak", "")

    Jeśli komórka zawiera określony tekst

    Znajdowanie komórek zawierających określony tekst (lub liczby czy daty) jest proste. Piszesz regularną formułę IF, która sprawdza, czy komórka docelowa zawiera pożądany tekst, a następnie wpisujesz tekst, który ma zostać zwrócony w polu wartość_jeśli_true argument.

    IF( komórka =" tekst ", wartość_do_zwrotu , "")

    Na przykład, aby dowiedzieć się, czy komórka A2 zawiera "jabłka", użyj tej formuły:

    =IF(A2="jabłka", "Tak", "")

    Jeśli komórka nie zawiera określonego tekstu

    Jeśli szukasz przeciwnego wyniku, czyli zwrócenia jakiejś wartości do innej kolumny, jeśli komórka docelowa nie zawiera określonego tekstu ("jabłka"), to wykonaj jedną z poniższych czynności.

    Podaj pusty ciąg ("") w wartość_jeśli_true argument, oraz tekst do zwrócenia w wartość_jeśli_false argument:

    =IF(A2="jabłka", "", "Nie jabłka")

    Albo, umieść operator "nie równa się" w logiczny_test i tekst do zwrotu w value_if_true:

    =IF(A2 "jabłka", "Nie jabłka", "")

    Tak czy inaczej, formuła da taki wynik:

    Jeśli komórka zawiera tekst: formuła rozróżniająca wielkość liter

    Aby zmusić formułę do rozróżniania wielkich i małych liter, należy użyć funkcji EXACT, która sprawdza, czy dwa ciągi tekstowe są dokładnie równe, z uwzględnieniem wielkości liter:

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

    Możesz także wprowadzić ciąg tekstowy modelu w jakiejś komórce (powiedzmy w C1), utrwalić odwołanie do komórki za pomocą znaku $ ($C$1) i porównać komórkę docelową z tą komórką:

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

    Jeśli komórka zawiera określony ciąg tekstowy (dopasowanie częściowe)

    Skończyliśmy z trywialnymi zadaniami i przechodzimy do trudniejszych i ciekawszych :) W tym przykładzie potrzeba trzech różnych funkcji, aby dowiedzieć się, czy dany znak lub podciąg jest częścią zawartości komórki:

    IF(ISNUMBER(SEARCH(" tekst" , komórka )), wartość_do_zwrotu ,"")

    Pracując od środka na zewnątrz, oto co robi formuła:

    • Funkcja SZUKAJ wyszukuje ciąg tekstowy i jeśli ciąg zostanie znaleziony, zwraca pozycję pierwszego znaku, w przeciwnym wypadku błąd #VALUE!
    • Funkcja ISNUMBER sprawdza, czy funkcja SEARCH zakończyła się sukcesem czy porażką. Jeżeli funkcja SEARCH zwróciła jakąkolwiek liczbę, to ISNUMBER zwraca TRUE. Jeżeli funkcja SEARCH zakończyła się błędem, to ISNUMBER zwraca FALSE.
    • Na koniec funkcja JEŻELI zwraca określoną wartość dla komórek, które w teście logicznym mają TRUE, w przeciwnym razie pusty ciąg ("").

    A teraz zobaczmy, jak ta ogólna formuła działa w rzeczywistych arkuszach.

    Jeśli komórka zawiera pewien tekst, umieść wartość w innej komórce

    Załóżmy, że masz listę zamówień w kolumnie A i chcesz znaleźć zamówienia z określonym identyfikatorem, powiedzmy "A-". Zadanie można zrealizować za pomocą tej formuły:

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

    Zamiast kodować ciąg znaków w formule, możesz wprowadzić go do osobnej komórki (E1), a następnie odwołać się do tej komórki w swojej formule:

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

    Aby formuła działała poprawnie, należy pamiętać o zablokowaniu adresu komórki zawierającej ciąg znaków znakiem $ (bezwzględne odwołanie do komórki).

    Jeśli komórka zawiera określony tekst, skopiuj ją do innej kolumny

    Jeśli chcesz skopiować zawartość ważnych komórek gdzie indziej, po prostu podaj adres ocenianej komórki (A2) w wartość_jeśli_true argument:

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

    Poniższy zrzut ekranu przedstawia wyniki:

    Jeśli komórka zawiera określony tekst: formuła rozróżniająca wielkość liter

    W obu powyższych przykładach formuły nie uwzględniają wielkości liter. W sytuacjach, gdy pracujesz z danymi uwzględniającymi wielkość liter, użyj funkcji FIND zamiast SEARCH, aby rozróżnić wielkość znaków.

    Na przykład, poniższa formuła zidentyfikuje tylko zamówienia z wielką literą "A-" ignorując małą literę "a-".

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

    Jeśli komórka zawiera jeden z wielu ciągów tekstowych (logika OR)

    Aby zidentyfikować komórki zawierające przynajmniej jedną z wielu szukanych rzeczy, użyj jednej z poniższych formuł.

    IF OR ISNUMBER SEARCH wzór

    Najbardziej oczywistym podejściem byłoby sprawdzenie każdego podłańcucha indywidualnie i posiadanie funkcji OR zwracającej TRUE w teście logicznym formuły IF, jeśli zostanie znaleziony co najmniej jeden podłańcuch:

    IF(LUB(ISNUMBER(SEARCH(" ciąg1 ", komórka )), ISNUMBER(SEARCH(" ciąg2 ", komórka ))), wartość_do_zwrotu , "")

    Załóżmy, że masz listę SKU w kolumnie A i chcesz znaleźć te, które zawierają "sukienkę" lub "spódnicę". Możesz mieć to zrobione za pomocą tej formuły:

    =IF(OR(ISNUMBER(SEARCH("dress",A2)),ISNUMBER(SEARCH("skirt",A2))), "Valid ",")

    Formuła ta działa całkiem dobrze dla kilku elementów, ale z pewnością nie jest to sposób, aby przejść, jeśli chcesz sprawdzić wiele rzeczy. W tym przypadku lepszym podejściem byłoby użycie funkcji SUMPRODUCT, jak pokazano w następnym przykładzie.

    SUMPRODUKT ISNUMBER FORMUŁA WYSZUKIWANIA

    Jeśli masz do czynienia z wieloma ciągami tekstowymi, wyszukiwanie każdego ciągu indywidualnie sprawiłoby, że twoja formuła byłaby zbyt długa i trudna do odczytania. Bardziej eleganckim rozwiązaniem byłoby osadzenie kombinacji ISNUMBER SEARCH w funkcji SUMPRODUCT i sprawdzenie, czy wynik jest większy niż zero:

    SUMPRODUCT(--ISNUMBER(SEARCH( ciągi , komórka )))>0

    Na przykład, aby dowiedzieć się, czy A2 zawiera któreś ze słów wprowadzonych w komórkach D2:D4, użyj tej formuły:

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

    Alternatywnie można utworzyć nazwany zakres zawierający ciągi do wyszukiwania lub dostarczyć słowa bezpośrednio w formule:

    =SUMPRODUKT(--ISNUMBER(SEARCH({"dress", "skirt", "jeans"},A2)))>0

    Tak czy inaczej, wynik będzie podobny do tego:

    Aby wyjście było bardziej przyjazne dla użytkownika, możesz zagnieździć powyższą formułę w funkcji IF i zwrócić własny tekst zamiast wartości TRUE/FALSE:

    =IF(SUMPRODUKT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0, "Ważne", "")

    Jak działa ta formuła

    W zasadzie używamy ISNUMBER razem z SEARCH, jak to zostało wyjaśnione w poprzednim przykładzie. W tym przypadku wyniki wyszukiwania są reprezentowane w postaci tablicy jak {TRUE;FALSE;FALSE}. Jeśli komórka zawiera przynajmniej jeden z podanych podłańcuchów, w tablicy będzie TRUE. Podwójny operator jednoargumentowy (--) zamienia wartości TRUE / FALSE odpowiednio na 1 i 0, i dostarcza tablicę jak{1;0;0}. Na koniec funkcja SUMPRODUCT sumuje liczby i wybieramy komórki, w których wynik jest większy od zera.

    Jeśli komórka zawiera kilka ciągów (logika AND)

    W sytuacjach, gdy chcemy znaleźć komórki zawierające wszystkie podane ciągi tekstowe, należy użyć znanej już kombinacji ISNUMBER SEARCH wraz z IF AND:

    IF(I(ISNUMBER(SEARCH(" ciąg1 ", komórka )), ISNUMBER(SEARCH(" ciąg2 ", komórka ))), wartość_do_zwrotu ,"")

    Na przykład możesz znaleźć SKU zawierające zarówno "sukienkę", jak i "niebieski" za pomocą tej formuły:

    =IF(AND(ISNUMBER(SEARCH("dress",A2)),ISNUMBER(SEARCH("blue",A2))), "Valid ",")

    Możesz też wpisać ciągi znaków w osobnych komórkach i odwołać się do tych komórek w swojej formule:

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

    Jako alternatywne rozwiązanie możesz policzyć wystąpienia każdego ciągu i sprawdzić, czy każda liczba jest większa niż zero:

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

    Wynik będzie dokładnie taki, jak pokazano na powyższym zrzucie ekranu.

    Jak zwrócić różne wyniki na podstawie wartości komórki

    W przypadku, gdy chcesz porównać każdą komórkę w kolumnie docelowej z inną listą elementów i zwrócić inną wartość dla każdego dopasowania, użyj jednego z następujących podejść.

    Zagnieżdżone IF

    Logika zagnieżdżonej formuły IF jest tak prosta: używasz osobnej funkcji IF do testowania każdego warunku i zwracasz różne wartości w zależności od wyników tych testów.

    IF( komórka =" lookup_text1 ", " powrót _ tekst1 ", IF(. komórka =" lookup_text2 ", " powrót _ tekst2 ", IF(. komórka =" lookup_text3 ", " powrót _ tekst3 ", "")))

    Załóżmy, że masz listę pozycji w kolumnie A i chcesz mieć ich skróty w kolumnie B. Aby to zrobić, użyj następującej formuły:

    =IF(A2="jabłko", "Ap", IF(A2="awokado", "Av", IF(A2="banan", "B", IF(A2="cytryna", "L", ""))))

    Pełne informacje na temat składni i logiki zagnieżdżonego IF znajdziesz w artykule Excel zagnieżdżone IF - wiele warunków w jednej formule.

    Formuła Lookup

    Jeśli szukasz bardziej kompaktowej i lepiej zrozumiałej formuły, użyj funkcji LOOKUP z wartościami lookup i return dostarczonymi jako pionowe stałe tablicowe:

    LOOKUP( komórka , {" lookup_text1 ";" lookup_text2 ";" lookup_text3 ";...}, {" wróć _ tekst1 ";" powrót _ tekst2 ";" powrót _ tekst3 ";...})

    Aby uzyskać dokładne wyniki, należy pamiętać o wypisaniu wartości lookup w kolejność alfabetyczna , od A do Z.

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

    W porównaniu z zagnieżdżonymi IF, formuła Lookup ma jeszcze jedną zaletę - rozumie znaki wieloznaczne i dlatego może zidentyfikować częściowe dopasowania.

    Na przykład, jeśli kolumna A zawiera kilka rodzajów bananów, możesz wyszukać "*banan*" i mieć ten sam skrót ("B") zwrócony dla wszystkich takich komórek:

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

    Aby uzyskać więcej informacji, zobacz Formuła Lookup jako alternatywa dla zagnieżdżonych IF.

    Formuła Vlookup

    Podczas pracy ze zmiennym zbiorem danych wygodniejsze może być wprowadzenie listy dopasowań w osobnych komórkach i pobranie ich za pomocą formuły Vlookup, np:

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

    Więcej informacji znajdziesz w Excelu VLOOKUP tutorial dla początkujących.

    W ten sposób sprawdzasz, czy komórka zawiera jakąś wartość lub konkretny tekst w Excelu. W przyszłym tygodniu będziemy kontynuować przyglądanie się formułom Excela Jeśli komórka zawiera i dowiemy się, jak policzyć lub zsumować odpowiednie komórki, skopiować lub usunąć całe wiersze zawierające te komórki i nie tylko. Zapraszamy do śledzenia!

    Zeszyt ćwiczeń

    Excel If Cell Contains - przykłady formuł (plik .xlsx)

    Michael Brown jest oddanym entuzjastą technologii z pasją do upraszczania złożonych procesów za pomocą narzędzi programowych. Dzięki ponad dziesięcioletniemu doświadczeniu w branży technologicznej doskonalił swoje umiejętności w programach Microsoft Excel i Outlook, a także w Arkuszach i Dokumentach Google. Blog Michaela jest poświęcony dzieleniu się swoją wiedzą i doświadczeniem z innymi, dostarczając łatwych do zastosowania wskazówek i samouczków w celu poprawy produktywności i wydajności. Niezależnie od tego, czy jesteś doświadczonym profesjonalistą, czy początkującym, blog Michaela oferuje cenne spostrzeżenia i praktyczne porady dotyczące maksymalnego wykorzystania tych niezbędnych narzędzi programowych.