Czyli wyodrębnianie liczby w nawiasie
Naszym zadaniem będzie wyodrębnienie liczby, będącej wagą produktów, z tekstu – czyli z nazwy produktu. O tak:
Problem polega na tym, że owe wagi są w różnych miejscach: czasem na końcu, czasem w środku nazwy. No i dodatkowo same liczby są różnej długości: raz mają 2 znaki, innym 3 lub 4!
Na szczęście liczba do wyodrębnienia (waga) zawsze jest ujęta w nawias. Dzięki temu łatwo znaleźć regułę, dzięki której namierzymy miejsce występowania liczby w tekście.
Nie możemy tutaj zastosować funkcji FRAGMENT.TEKSTU w najprostszym wydaniu (czyli wpisać argumentów z palca). Trzeba ją trochę ztiuningować…
Szukamy reguły
Zauważmy, że liczba do wyciągnięcia zawsze jest ujęta w nawias. Nasza waga zaczyna się więc na pozycji kolejnej niż nawias otwierający „(„, a kończy się pozycję wcześniej niż nawias zamykający „)”. Jeśli więc poznamy pozycje obu tych nawiasów – jesteśmy w stanie namierzyć naszą wagę. I tak, liczba oznaczająca wagę:
- zaczyna się na pozycji kolejnej niż „(„
- ma tyle znaków, co różnica między pozycją „)” a pozycją „(„, pomniejszoną o 1.
Na szczęście te nawiasy są jedynymi w nazwie produktu i liczba zawsze się w nich znajduje. To czyni cały problem bardzo prostym. Do wyodrębnienia znaków użyjemy więc funkcji FRAGMENT.TEKSTU, a do namierzenia pozycji nawiasów – SZUKAJ.TEKST (można też ZNAJDŹ – tutaj to obojętne).
Namierzanie pozycji nawiasów
Ogólnie stworzę jedną formułę wyodrębniającą wagę produktów, natomiast będzie ona składała się z zagnieżdżonych funkcji. Aby ułatwić sobie zadanie, najpierw poznam pozycję nawiasów, a potem zagnieżdżę wszystko w sobie. Dla ułatwienia kolejne etapy zrobię w kolumnach pośredniczących, a potem skleję w jedno.
Namierzanie pozycji pierwszego nawiasu zrobię funkcją SZUKAJ.TEKST, w komórce D4:
=SZUKAJ.TEKST("(";B4)
A w E4 pozycję drugiego nawiasu:
=SZUKAJ.TEKST(")";B4)
Po wstawieniu tych roboczych formuł nasza formatka wygląda tak:
Wyodrębnianie liczby
Teraz pozostaje już tylko wyciągnąć liczbę, czyli wagę produktu. Zrobi to funkcja FRAGMENT.TEKSTU w F4:
=FRAGMENT.TEKSTU(B4;D4+1;E4-D4-1)
Czemu odejmujemy 1? Najlepiej widać to w kreatorze funkcji, jak nie odejmiemy:
Wszystko fajnie, tylko funkcja ta w wyniku daje tekst (jak każda tekstowa!), co może utrudnić nam późniejszą pracę na tych danych. Warto więc od razu przekonwertować tę tekstową wagę na liczbę. Możemy to zrobić za pomocą dwóch minusów przed funkcją (pisałam o tym tutaj):
=--FRAGMENT.TEKSTU(B4;D4+1;E4-D4-1)
Teraz już wszystko ładnie wygląda i jest użyteczne…
Jedna formuła
…no prawie użyteczne. Bo nadal mamy 3 osobne formuły, które nic nie wnoszą użytkownikowi. W sumie to go nie interesuje pozycja nawiasów, a ją widzi. W tym wypadku warto byłoby więc wyodrębnić wagę produktów jedną formułą. W żółtych polach, czyli w komórce C4. Połączymy więc poprzednie formuły ze sobą. Najprościej to zrobić podstawiając funkcje, znajdujące się w poszczególnych komórkach roboczych (D4 i E4) do ich odwołań w funkcji łączącej wszystko (F4). Jak to robię – możesz zobaczyć na filmie poniżej, albo na webinarze o zagnieżdżaniu funkcji, który prowadziłam dokładnie na ten temat.
Otrzymamy następujący wynik:
=--FRAGMENT.TEKSTU(B4;SZUKAJ.TEKST("(";B4)+1;SZUKAJ.TEKST(")";B4)-SZUKAJ.TEKST("(";B4)-1)
Teraz śmiało możemy kasować wszystkie pomocnicze dane w kolumnach od D do F. A wynik jest taki sam:
I to cała praca.
Tutaj jest plik z rozwiązaniem do pobrania :
MalinowyExcel Wyodrębnianie liczby w nawiasie dw.xlsx
A tutaj wersja wideo, na której fajnie widać zagnieżdżanie funkcji:
Powiązane produkty
- Webinar: Zagnieżdżanie funkcji, podczas którego dowiesz się jak sprawnie zagnieżdżać funkcje jedna w drugiej (i trzeciej :)), oraz poznasz kilka ciekawych tików ułatwiających pracę z zagnieżdżonymi formułami, jak choćby praca z kreatorem funkcji czy genialna opcja „Edytuj bezpośrednio w komórce”.
- WEBINAR: Konwersja tekstu na liczbę odpowiadający na pytanie dlaczego w ogóle Excel czasem traktuje liczby/ daty jako tekst oraz prezentujący szereg metod na radzenie sobie z takimi sytuacjami. Dodatkowo pokazana jest też metoda na sytuację odwrotną: gdy chcemy z liczby stworzyć tekst.
Witam,
Bardzo dziękuję za podanie rozwiązania. Akurat przydało mi się dzisiaj w pracy. Rewelacja.
Pozdrawiam
Małgorzata
Super, bardzo się cieszę 🙂
Bardzo dziękuję! Szkoda tylko, że nie mogę pobrać pliku z rozwiązaniem (podobnie jak w innych artykułach) – link nieaktywny. Nie wiecie może, czym to jest spowodowane?
Bardzo się cieszę, że się przydało:). Odnośnie załącznika – już poprawiłam. Zobacz proszę, czy teraz pobieranie zadziała. Jeśli nie, to spróbuj kliknąć na link prawym przyciskiem myszy i wybierz „Zapisz jako” czy jakoś tak. Wtedy na pewno zadziała 🙂