Excel funkcje TEKST.PRZED i TEKST.PO

Pewną nowością w pakiecie Office 365 są dwie nowe funkcje: TEKST.PRZED i TEKST.PO. Zwracają one tekst, który znajduje się przed lub po jakimś znaku (ograniczniku). Np. mając w kolumnie A wpisane imiona wraz z nazwiskami za pomocą tych dwóch funkcji możemy wyciągnąć imię (przed spacją to imię) i nazwisko (tekst po spacji to nazwisko).

W komórce B2 wpisałem formułę: =TEKST.PRZED(A2;" ") a w komórce C2 wpisałem formułę: =TEKST.PO(A2;" ").

Mając do czynienia z starszymi wersjami Excela trzeba już się nieco bardziej „namęczyć” otóż musimy skorzystać z funkcji LEWY, PRAWY z zagnieżdżoną funkcją ZNAJDŹ. Aby wyciągnąć imię moglibyśmy wpisać formułę:

=LEWY(A2;ZNAJDŹ(" "; A2)-1)

A aby wydobyć nazwisko:

=PRAWY(A2;DŁ(A2)-ZNAJDŹ(" ";A2))
Lub
=FRAGMENT.TEKSTU(A2;ZNAJDŹ(" ";A2)+1;999)

Wydobywanie tekstu np. po drugiej spacji

Wyobraźmy sobie, że w kolumnie A mamy wpisane pierwsze imię, spację, drugie imię, spację, nazwisko (sytuacja idealna: wszyscy zawsze mają dwa imiona). Trzeci argument funkcji TEKST.PO to informacja po którym ograniczniku mamy zwracać tekst (domyślnie jeśli nie podamy tego argumentu to tekst jest zwracany po pierwszym ograniczniku). W naszym idealnym przypadku zawsze mamy dwa imiona, więc nazwisko zawsze będzie po drugiej spacji. Dlatego w komórce C2 wpisałem formułę: =TEKST.PO(A2;" ";2). Ciekawostka: jeśli chciałbyś aby w kolumnie B były oba imiona zamiast tylko pierwszego imienia, możesz wpisać formułę: =TEKST.PRZED(A2; " ";2).

A co jeśli nie zawsze mamy dwa imiona?

Trzeci argument funkcji TEKST.PO może być liczbą ujemną. Wtedy kierunek wyszukiwania ogranicznika nie będzie od lewej do prawej tylko od prawej do lewej. Na chłopski rozum: jeśli ostatni argument będzie -1 to funkcja TEKST.PO zwróci mi to co znajduje się „po ostatniej” spacji czyli nazwisko. Z kolei funkcja TEKST.PRZED z trzecim argumentem -1 zwraca mi wszystko co znajduje się przed ostatnią spacją (czyli imię lub oba imiona).

Jak wyciągnąć samo drugie imię?

Jeden z pomysłów to zagnieżdżenie obu funkcji. Przykładowo TEKST.PRZED(A2; " ";-1) zwraca nam imię lub oba imiona. Natomiast wartość zwróconą przez tę funkcję można „wsadzić” do funkcji TEKST.PO wtedy zostanie zwrócone tylko drugie imię.

=TEKST.PO(TEKST.PRZED(A2; " ";-1);" ")

Oczywiście w przypadku gdy dana osoba nie ma dwóch imion to funkcja TEKST.PO nie znajdzie spacji (bo funkcja TEKST.PRZED zwróci tylko jedno imię) i pojawi się błąd #N/D Możemy funkcję TEKST.PO (z zagnieżdżoną funkcją TEKST.PRZED) opakować w funkcję JEŻELI.BŁĄD:

=JEŻELI.BŁĄD(TEKST.PO(TEKST.PRZED(A2; " ";-1);" ");"brak")

Możemy również jako ostatni argument funkcji TEKST.PO wpisać co ma być zwrócone gdy nie zostanie znaleziony tekst po spacji:

=TEKST.PO(TEKST.PRZED(A2; " ";-1);" ";;;;"brak")

Podsumowanie: szkoda, że te funkcje pojawiły się tak późno. Tylko osoby posiadające najnowszy pakiet Office 365 w wersji subskrypcyjnej mogą korzystać z tych dobrodziejstw.

Mnie najbardziej mi się podoba wydobywanie tekstu po ostatniej spacji. Dawniej aby osiągnąć taki efekt (bez korzystania z makr) należało wymyślać "alpejskie kombinacje".

Ten wpis został opublikowany w kategorii funkcje i oznaczony tagami , , , , , , . Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.