Menu

ZNAJDŹ i SZUKAJ.TEKST (FIND, SEARCH) w Excelu

=SZUKAJ.TEKST("apple";A2) zwraca pozycję, od której w A2 zaczyna się apple, bez względu na wielkość liter. ZNAJDŹ robi to samo, ale rozróżnia wielkość liter. Obie zwracają #ARG!, gdy tekstu brakuje, a CZY.LICZBA zamienia to w test „czy komórka zawiera”.

Każdy arkusz na tej stronie działa na żywo: zmień liczbę albo formułę, a się przeliczy.

=SZUKAJ.TEKST("apple";A2) (po angielsku SEARCH) zwraca pozycję, od której w A2 zaczyna się apple, licząc od 1, i ignoruje wielkość liter. =ZNAJDŹ("apple";A2) (FIND) robi to samo, ale dopasowuje tylko dokładnie te same litery. Gdy tekstu nie ma, obie zwracają #ARG! (po angielsku #VALUE!; tabele pokazują angielskie nazwy błędów). Tabela pokazuje formuły po angielsku, =SEARCH("apple",A2), ale możesz w niej wpisywać formuły także po polsku, ze średnikami.

ZNAJDŹ rozróżnia wielkość liter, SZUKAJ.TEKST nie
B2
ABC
1TextFIND("apple")SEARCH("apple")
2Apple pie#VALUE!1
3Green apple77
4Banana bread#VALUE!#VALUE!
#VALUE! Argument ma zły typ, na przykład tekst tam, gdzie powinna być liczba.W polskim Excelu: =ZNAJDŹ("apple";A2)

Apple pie zaczyna się wielką literą A, więc ZNAJDŹ nie znajduje dopasowania i zwraca #ARG!, a SZUKAJ.TEKST zwraca 1. W Green apple obie zwracają 7: spacja liczy się jako znak. W Banana bread nie ma apple wcale.

Składnia

=FIND(find_text, within_text, [start_num])
=SEARCH(find_text, within_text, [start_num])
  • find_text: czego szukasz. Jeden znak albo słowo.
  • within_text: komórka, w której szukasz.
  • start_num: pozycja, od której zaczyna się szukanie, 1, gdy ją pominiesz. Wynik nadal liczy się od pierwszego znaku komórki.

Jeżeli komórka zawiera tekst

Sama pozycja rzadko jest tym, czego chcesz. Zwykle pytanie brzmi: „czy ta komórka zawiera to słowo?”. Pozycja jest liczbą, a brak dopasowania błędem, więc CZY.LICZBA (ISNUMBER) zamienia wynik w PRAWDA albo FAŁSZ:

Czy notatka wspomina o opóźnieniu?
B2
ABC
1NoteContains "late"Status
2Arrived lateTRUECheck
3On timeFALSEOK
4LATE by 2 daysTRUECheck
5DeliveredFALSEOK
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =CZY.LICZBA(SZUKAJ.TEKST("late";A2))

SZUKAJ.TEKST dopasowuje LATE w A4, bo ignoruje wielkość liter. Zauważ, że dopasowałaby też latest albo chocolate: SZUKAJ.TEKST szuka znaków, a nie całych słów. Szukanie " late" ze spacją na początku trochę to zawęża. Aby policzyć, ile komórek zawiera słowo, krótsza jest =LICZ.JEŻELI(A2:A5;"*late*"); zobacz liczenie komórek z tekstem.

Oznaczanie pilnych zgłoszeń
B2
AB
1SubjectUrgent?
2URGENT: server down
3Monthly report
4Refund request, urgent
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.

Twoja kolej: W B2 zwróć PRAWDA, jeśli temat w A2 zawiera słowo urgent pisane dowolnymi literami, a w przeciwnym razie FAŁSZ. Formuła kopiuje się w dół do B4.

Drugie wystąpienie

start_num pozwala zacząć szukanie za pierwszym dopasowaniem. Wstaw jedną funkcję ZNAJDŹ w drugą: wewnętrzna znajduje pierwszy myślnik, a zewnętrzna zaczyna jeden znak dalej.

Pozycja pierwszego i drugiego myślnika
C2
ABC
1CodeFirst dashSecond dash
2NYC-2041-B49
3BOSTON-15-AA710
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =ZNAJDŹ("-";A2;ZNAJDŹ("-";A2)+1)

Mając obie pozycje, FRAGMENT.TEKSTU (MID) może wziąć to, co leży między myślnikami: =FRAGMENT.TEKSTU(A2;B2+1;C2-B2-1) zwraca 2041.

Gdzie jest @?
B2
AB
1EmailPosition
2ana@coddy.tech
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.

Twoja kolej: W B2 zwróć pozycję znaku @ w adresie e-mail.

ZNAJDŹ i SZUKAJ.TEKST zwracają #ARG!

#ARG! oznacza tutaj tylko „nie znaleziono”. Zastąp go czymś użytecznym:

Brak dopasowania bez błędu
B2
AB
1EmailPosition of @
2ana@coddy.tech4
3not an email0
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =JEŻELI.BŁĄD(ZNAJDŹ("@";A2);0)

Nie porównuj surowego wyniku z liczbą, jak w =ZNAJDŹ("@";A2)>0: brak dopasowania jest błędem, a porównanie zwraca #ARG! zamiast FAŁSZ. Sprawdzaj wynik funkcją CZY.LICZBA, jak w sekcji powyżej.

Symbole wieloznaczne: tylko SZUKAJ.TEKST

SZUKAJ.TEKST przyjmuje symbole wieloznaczne ? (dowolny jeden znak) i * (dowolny ciąg znaków). ZNAJDŹ traktuje je jak zwykłe znaki. W Excelu:

=SEARCH("b?d","a bad day")     returns 3
=SEARCH("2*B","NYC-2041-B")    returns 5
=SEARCH("~?","Why?")           returns 4, the tilde means a real question mark
=FIND("?","Why?")              returns 4, FIND has no wildcards

W polskim Excelu: =SZUKAJ.TEKST("b?d";"a bad day") i =ZNAJDŹ("?";"Why?"). Więcej o *, ? i ~ w funkcjach Excela znajdziesz na stronie o symbolach wieloznacznych.

ZNAJDŹ, SZUKAJ.TEKST i Ctrl+F

ZNAJDŹSZUKAJ.TEKSTCtrl+F
Wielkość literMusi się zgadzaćIgnorowanaIgnorowana, chyba że zaznaczysz Uwzględnij wielkość liter
Symbole wieloznaczneNie?, *, ~?, *, ~
Brak dopasowania#ARG!#ARG!Komunikat
WynikPozycja, przeliczanaPozycja, przeliczanaZaznacza komórkę

Aby jednorazowo znaleźć wartość, Narzędzia główne > Znajdź i zaznacz > Znajdź (Ctrl+F, na Macu Cmd+F) jest szybsze niż formuła. Aby oznaczać albo wyciągać tekst w każdym wierszu i mieć to zawsze aktualne, użyj ZNAJDŹ albo SZUKAJ.TEKST. Wybierz ZNAJDŹ, gdy wielkość liter ma znaczenie (kody produktów, takie jak ab i AB), a SZUKAJ.TEKST do wszystkiego, co wpisują ludzie.

Najczęściej zadawane pytania

Czym różni się ZNAJDŹ od SZUKAJ.TEKST w Excelu?

ZNAJDŹ rozróżnia wielkość liter i nie przyjmuje symboli wieloznacznych. SZUKAJ.TEKST ignoruje wielkość liter i przyjmuje ? i *. =ZNAJDŹ("a";"Apple") daje #ARG!, a =SZUKAJ.TEKST("a";"Apple") daje 1.

Jak wyciągnąć tekst między dwoma myślnikami w Excelu?

Znajdź oba myślniki i weź to, co leży między nimi, funkcją FRAGMENT.TEKSTU: =FRAGMENT.TEKSTU(A2;ZNAJDŹ("-";A2)+1;ZNAJDŹ("-";A2;ZNAJDŹ("-";A2)+1)-ZNAJDŹ("-";A2)-1) zwraca 2041 z NYC-2041-B. W Microsoft 365 krótsza jest =TEKST.PRZED(TEKST.PO(A2;"-");"-").

Dlaczego ZNAJDŹ zwraca #ARG!?

Tekstu nie ma w komórce albo jest zapisany innymi literami (ZNAJDŹ rozróżnia wielkość liter). Obejmij formułę, aby zwracała coś innego: =JEŻELI.BŁĄD(ZNAJDŹ("-";A2);0).

Jak znaleźć drugie wystąpienie znaku?

Zacznij szukać jeden znak za pierwszym dopasowaniem: =ZNAJDŹ("-";A2;ZNAJDŹ("-";A2)+1). Trzeci argument to pozycja, od której zaczyna się szukanie.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ