Funkcje Excel FIND i SEARCH z przykładami formuł

  • Udostępnij To
Michael Brown

Samouczek wyjaśnia składnię funkcji FIND i SEARCH w Excelu oraz podaje przykłady formuł dla zaawansowanych nietrywialnych zastosowań.

W ostatnim artykule omówiliśmy podstawy okna dialogowego Znajdź i zamień w Excelu. W wielu sytuacjach możesz jednak chcieć, aby Excel automatycznie znajdował i wydobywał dane z innych komórek na podstawie Twoich kryteriów. Przyjrzyjmy się więc bliżej temu, co mają do zaoferowania funkcje wyszukiwania w Excelu.

    Funkcja FIND w programie Excel

    Funkcja ZNAJDŹ w Excelu służy do zwracania pozycji określonego znaku lub podłańcucha w ciągu tekstowym.

    Składnia funkcji Znajdź w Excelu jest następująca:

    FIND(find_text, within_text, [start_num])

    Pierwsze 2 argumenty są wymagane, ostatni jest opcjonalny.

    • Znajdź_tekst - znak lub podłańcuch, który chcesz znaleźć.
    • W obrębie_tekstu - łańcuch tekstowy, który ma być przeszukiwany. Zazwyczaj jest on podawany jako odwołanie do komórki, ale można również wpisać łańcuch bezpośrednio w formule.
    • Start_num - opcjonalny argument określający, od którego znaku ma się rozpocząć wyszukiwanie. Jeśli pominięty, wyszukiwanie rozpoczyna się od 1. znaku łańcucha within_text.

    Jeśli funkcja FIND nie znajdzie znaku(ów) find_text, zwracany jest błąd #VALUE!

    Na przykład wzór =FIND("d", "find") zwraca 4, ponieważ "d" jest czwartą literą w słowie " znaleźć ". Wzór =FIND("a", "znajdź") zwraca błąd, ponieważ nie ma "a" w " znaleźć ".

    Funkcja FIND w Excelu - rzeczy, o których warto pamiętać!

    Aby poprawnie użyć formuły FIND w Excelu, należy pamiętać o następujących prostych faktach:

    1. Funkcja FIND to. wrażliwość na wielkość liter Jeśli szukasz dopasowania bez uwzględniania wielkości liter, użyj funkcji SZUKAJ.
    2. Funkcja ZNAJDŹ w Excelu nie pozwala na używanie znaki wieloznaczne .
    3. Jeśli argument find_text zawiera kilka znaków, funkcja FIND zwraca pozycję pierwszy znak Na przykład formuła FIND("ap", "happy") zwraca 2, ponieważ "a" w 2. literze w słowie "happy".
    4. Jeśli within_text zawiera kilka wystąpień Na przykład, FIND("l", "hello") zwraca 3, czyli pozycję pierwszego znaku "l" w słowie "hello".
    5. Jeśli find_text jest pusty ciąg "", formuła FIND w Excelu zwraca pierwszy znak w wyszukiwanym ciągu.
    6. Funkcja ZNAJDŹ w Excelu zwraca. #Błąd! jeśli wystąpi którakolwiek z poniższych sytuacji:
      • Find_text nie istnieje w within_text.
      • Start_num zawiera więcej znaków niż within_text.
      • Start_num to 0 (zero) lub liczba ujemna.

    Funkcja SEARCH w programie Excel

    Funkcja SZUKAJ w Excelu jest bardzo podobna do funkcji ZNAJDŹ, ponieważ również zwraca lokalizację podłańcucha w łańcuchu tekstowym. Jej składnia i argumenty są podobne do tych w funkcji ZNAJDŹ:

    SEARCH(find_text, within_text, [start_num])

    W przeciwieństwie do funkcji FIND, funkcja SEARCH jest bez rozróżniania wielkości liter i pozwala na używanie znaków wieloznacznych, jak pokazano w poniższym przykładzie.

    A oto kilka podstawowych formuł SEARCH w Excelu:

    =SEARCH("rynek", "supermarket") zwraca 6, ponieważ podłańcuch "market" zaczyna się od 6. znaku słowa "supermarket".

    =SEARCH("e", "Excel") zwraca 1, ponieważ "e" jest pierwszym znakiem w słowie "Excel", ignorując przypadek.

    Podobnie jak funkcja ZNAJDŹ, funkcja WYSZUKAJ w Excelu zwraca błąd #VALUE! jeśli:

    • Wartość argumentu find_text nie została znaleziona.
    • Argument start_num jest większy niż długość within_text.
    • Start_num jest równy lub mniejszy od zera.

    W dalszej części tego poradnika znajdziesz jeszcze kilka znaczących przykładów formuł, które pokazują, jak używać funkcji SEARCH w arkuszach Excela.

    Jak już wspomniano, funkcje FIND i SEARCH w Excelu są bardzo podobne pod względem składni i zastosowań. Mają jednak kilka różnic.

    Najistotniejszą różnicą pomiędzy funkcjami SEARCH i FIND w Excelu jest to, że SEARCH nie rozróżnia wielkości liter, natomiast FIND rozróżnia wielkość liter.

    Na przykład SEARCH("e", "Excel") zwraca 1, ponieważ ignoruje przypadek "E", podczas gdy FIND("e", "Excel") zwraca 4, ponieważ ma na uwadze ten przypadek.

    2. wyszukiwanie za pomocą znaków wieloznacznych

    W przeciwieństwie do funkcji FIND, funkcja SEARCH w Excelu akceptuje znaki wieloznaczne w argumencie find_text:

    • Znak zapytania (?) pasuje do jednego znaku, a
    • Gwiazdka (*) pasuje do dowolnej serii znaków.

    Aby zobaczyć, jak to działa na rzeczywistych danych, rozważ następujący przykład:

    Jak widać na powyższym zrzucie ekranu, formuła SEARCH("funkcja*2013", A2) zwraca pozycję pierwszego znaku ("f") w podciągu, jeśli ciąg tekstowy, do którego odwołuje się argument within_text, zawiera zarówno "funkcję", jak i "2013", bez względu na to, ile innych znaków znajduje się pomiędzy nimi.

    Wskazówka. Aby znaleźć rzeczywisty znak zapytania (?) lub gwiazdkę (*), wpisz tyldę (~) przed odpowiednim znakiem.

    W praktyce funkcje FIND i SEARCH w Excelu rzadko są używane samodzielnie. Zazwyczaj wykorzystuje się je w połączeniu z innymi funkcjami, takimi jak MID, LEFT lub RIGHT, a poniższe przykłady formuł demonstrują niektóre rzeczywiste zastosowania.

    Przykład 1. Znajdź ciąg poprzedzający lub następujący po danym znaku

    Ten przykład pokazuje, jak można znaleźć i wyodrębnić wszystkie znaki w ciągu tekstowym na lewo lub na prawo od określonego znaku. Aby ułatwić zrozumienie, rozważ następujący przykład.

    Załóżmy, że masz kolumnę nazwisk (kolumna A) i chcesz wyciągnąć Imię i Nazwisko do osobnych kolumn.

    Aby uzyskać imię, można użyć funkcji FIND (lub SEARCH) w połączeniu z funkcją LEFT:

    =LEFT(A2, FIND(" ", A2)-1)

    lub

    =LEFT(A2, SEARCH(" ", A2)-1)

    Jak zapewne wiesz, funkcja LEWO w Excelu zwraca określoną liczbę najbardziej na lewo wysuniętych znaków w łańcuchu. I używasz funkcji FIND, aby określić pozycję spacji (" "), aby funkcja LEWO wiedziała, ile znaków wyodrębnić. Przy tym od pozycji spacji odejmujesz 1, ponieważ nie chcesz, aby zwrócona wartość zawierała spację.

    Aby wyodrębnić ostatnie nazwisko, użyj kombinacji funkcji PRAWDA, FIND / SEARCH i LEN. Funkcja LEN jest potrzebna, aby uzyskać całkowitą liczbę znaków w ciągu, od której odejmujesz pozycję spacji:

    =RIGHT(A2,LEN(A2)-FIND(" ",A2))

    lub

    =RIGHT(A2,LEN(A2)-SEARCH(" ",A2))

    Poniższy zrzut ekranu demonstruje wynik:

    W przypadku bardziej złożonych scenariuszy, takich jak wyodrębnianie drugiego imienia lub dzielenie nazwisk z przyrostkami, zobacz Jak dzielić komórki w Excelu za pomocą formuł.

    Przykład 2. Znajdź N-te wystąpienie danego znaku w ciągu tekstowym

    Załóżmy, że w kolumnie A mamy kilka ciągów tekstowych, powiedzmy listę SKU, i chcemy znaleźć pozycję 2. myślnik w łańcuchu. Poniższy wzór działa jak należy:

    =FIND("-", A2, FIND("-",A2)+1)

    Pierwsze dwa argumenty są łatwe do zinterpretowania: zlokalizuj myślnik ("-") w komórce A2. W trzecim argumencie (start_num) osadzasz kolejną funkcję FIND, która każe Excelowi rozpocząć wyszukiwanie od znaku, który występuje zaraz po pierwszym wystąpieniu myślnika (FIND("-",A2)+1).

    Aby przywrócić pozycję 3. wystąpienie , osadzasz powyższą formułę w argumencie start_num innej funkcji FIND i dodajesz 2 do zwróconej wartości:

    =FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2)

    Innym i chyba prostszym sposobem na znalezienie N-tego wystąpienia danego znaku jest użycie funkcji FIND Excela w połączeniu z CHAR i SUBSTITUTE:

    =FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),3))

    Gdzie "-" jest znakiem, o którym mowa, a "3" jest N-tym wystąpieniem, które chcesz znaleźć.

    W powyższej formule funkcja SUBSTITUTE zastępuje 3 wystąpienie myślnika ("-") znakiem CHAR(1), który jest niedrukowalnym znakiem "Początek nagłówka" w systemie ASCII. Zamiast CHAR(1) można użyć dowolnego innego niedrukowalnego znaku z zakresu od 1 do 31. A następnie funkcja FIND zwraca pozycję tego znaku w łańcuchu tekstowym. Tak więc ogólna formuła wygląda następująco:

    FIND(CHAR(1),SUBSTITUTE( komórka , znak ,CHAR(1), N-te wystąpienie ))

    Na pierwszy rzut oka może się wydawać, że powyższe wzory mają niewielką wartość praktyczną, ale kolejny przykład pokaże, jak bardzo są przydatne w rozwiązywaniu rzeczywistych zadań.

    Uwaga. Należy pamiętać, że funkcja ZNAJDŹ w Excelu rozróżnia wielkość liter. W naszym przykładzie nie ma to znaczenia, ale jeśli pracujesz z literami i chcesz uzyskać bez rozróżniania wielkości liter dopasowanie, użyj funkcji SZUKAJ zamiast ZNAJDŹ.

    Przykład 3. Wyodrębnij N znaków następujących po określonym znaku

    Aby zlokalizować podłańcuch o określonej długości w obrębie dowolnego ciągu tekstowego, należy użyć funkcji Excel FIND lub Excel SEARCH w połączeniu z funkcją MID. Poniższy przykład pokazuje, jak można wykorzystać takie formuły w praktyce.

    W naszej liście SKU, zakładając, że chcesz znaleźć pierwsze 3 znaki następujące po pierwszym myślniku i wyciągnąć je w innej kolumnie.

    Jeśli grupa znaków poprzedzająca pierwszy myślnik zawiera zawsze tę samą liczbę pozycji (np. 2 znaki) byłoby to trywialne zadanie. Można by użyć funkcji MID do zwrócenia 3 znaków z ciągu, zaczynając od pozycji 4 (pomijając pierwsze 2 znaki i myślnik):

    =MID(A2, 4, 3)

    Przetłumaczona na język angielski formuła mówi: "Szukaj w komórce A2, rozpocznij wyodrębnianie od znaku 4 i zwróć 3 znaki".

    Jednak w prawdziwych arkuszach podłańcuch, który trzeba wyodrębnić, może zaczynać się w dowolnym miejscu łańcucha tekstowego. W naszym przykładzie możesz nie wiedzieć, ile znaków poprzedza pierwszy myślnik. Aby poradzić sobie z tym wyzwaniem, użyj funkcji ZNAJDŹ, aby określić punkt początkowy podłańcucha, który chcesz pobrać.

    Formuła FIND zwracająca pozycję 1. kreski jest następująca:

    =FIND("-",A2)

    Ponieważ chcesz rozpocząć od znaku, który następuje po myślniku, dodaj 1 do zwróconej wartości i osadzić powyższą funkcję w drugim argumencie (start_num) funkcji MID:

    =MID(A2, FIND("-",A2)+1, 3)

    W tym scenariuszu równie dobrze sprawdza się funkcja SEARCH Excela:

    =MID(A2, SEARCH("-",A2)+1, 3)

    To świetnie, ale co jeśli grupa charów po pierwszej kresce zawiera inną liczbę znaków? Hmm... to może być problem:

    Jak widać na powyższym zrzucie ekranu, formuła działa idealnie dla wierszy 1 i 2. W wierszach 4 i 5 druga grupa zawiera 4 znaki, ale zwracane są tylko pierwsze 3 znaki. W wierszach 6 i 7 w drugiej grupie znajdują się tylko 2 znaki, dlatego nasza formuła Excel Search zwraca następujący po nich myślnik.

    Gdybyś chciał wrócić wszystkie znaki pomiędzy pierwszym i drugim wystąpieniem określonego znaku (kreski w tym przykładzie), jak byś postąpił? Oto odpowiedź:

    =MID(A2, FIND("-",A2)+1, FIND("-", A2, FIND("-",A2)+1) - FIND("-",A2)-1)

    Dla lepszego zrozumienia tej formuły MID przeanalizujmy po kolei jej argumenty:

    • 1. argument (tekst). Jest to ciąg tekstowy zawierający znaki, które chcesz wyodrębnić, komórka A2 w tym przykładzie.
    • Drugi argument (start_pozycja). określa pozycję pierwszego znaku, który chcemy wyodrębnić. Używamy funkcji FIND, aby zlokalizować pierwszy myślnik w łańcuchu i dodać 1 do tej wartości, ponieważ chcemy zacząć od znaku, który następuje po myślniku: FIND("-",A2)+1.
    • 3. argument (num_chars). Określa liczbę znaków, które chcesz zwrócić. W naszym wzorze jest to najbardziej skomplikowana część. Używasz dwóch funkcji FIND (lub SEARCH), jedna określa pozycję pierwszego myślnika: FIND("-",A2). A druga zwraca pozycję drugiego myślnika: FIND("-", A2, FIND("-",A2)+1). Następnie odejmujesz pierwszą z nich od drugiej, a potem odejmujesz 1, ponieważ nie chceszW rezultacie otrzymamy liczbę znaków pomiędzy pierwszym i drugim myślnikiem, czyli dokładnie to, czego szukamy. Podajemy więc tę wartość do argumentu num_chars funkcji MID.

    W podobny sposób można zwrócić 3 znaki po 2. kresce:

    =MID(A2, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2), 3)

    Albo wyodrębnij wszystkie znaki pomiędzy 2 i 3 kreską:

    =MID(A2, FIND("-", A2, FIND("-",A2)+1)+1, FIND("-",A2, FIND("-",A2)+1) +2) - FIND("-", A2, FIND("-",A2)+1)-1)

    Przykład 4. Znajdź tekst pomiędzy nawiasami

    Załóżmy, że masz jakiś długi ciąg tekstowy w kolumnie A i chcesz znaleźć i wyodrębnić tylko tekst zamknięty w (nawiasach).

    Aby to zrobić, potrzebowałbyś funkcji MID, aby zwrócić żądaną liczbę znaków z łańcucha, a także funkcji FIND lub SEARCH programu Excel, aby określić, gdzie zacząć i ile znaków wyodrębnić.

    =MID(A2,SEARCH("(",A2)+1, SEARCH(")",A2)-SEARCH("(",A2)-1)

    Logika tej formuły jest podobna do tych, które omawialiśmy w poprzednim przykładzie. I znów najbardziej złożoną częścią jest ostatni argument, który mówi formule, ile znaków ma zwrócić. To dość długie wyrażenie w argumencie num_chars wykonuje następujące czynności:

    • Po pierwsze, znajdujesz pozycję nawiasu zamykającego: SEARCH(")",A2)
    • Po tym lokalizujesz pozycję nawiasu otwierającego: SEARCH("(",A2)
    • A następnie obliczasz różnicę między pozycjami nawiasów zamykających i otwierających i odejmujesz 1 od tej liczby, ponieważ nie chcesz żadnego nawiasu w wyniku: SZUKAJ(")",A2)-SZUKAJ("(",A2))-1

    Oczywiście nic nie stoi na przeszkodzie, aby zamiast funkcji SEARCH użyć funkcji Excel FIND, ponieważ wielkość liter lub ich niewrażliwość nie robi w tym przykładzie żadnej różnicy.

    Mamy nadzieję, że ten tutorial rzucił trochę światła na to, jak używać funkcji SZUKAJ i ZNAJDŹ w Excelu. W następnym tutorialu zamierzamy dokładnie przeanalizować funkcję REPLACE, więc proszę pozostać na bieżąco. Dziękuję za przeczytanie!

    Pobierz zeszyt ćwiczeń

    Przykłady formuł FIND i SEARCH

    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.