Niedawno pokazywałam Ci metodę na wyodrębnienie ostatniego elementu numeru konta księgowego. Dzisiaj z kolei zajmiemy się wyodrębnieniem dokładnie trzeciego elementu.
Sytuacja będzie identyczna – konta księgowe mają różną liczbę znaków, a ich elementy oddzielane są myślnikami. O tak:
W tym artykule pokażę Ci 2 sposoby na zrobienie tego – oba korzystające z nowych genialnych funkcji tekstowych w Excelu 365. Zaczynamy!
Metoda 1. – Funkcja PODZIEL.TEKST i WYBIERZ.KOLUMNY
W tej metodzie skorzystamy z funkcji tablicowej PODZIEL.TEKST, która działa analogicznie jak funkcjonalność Tekst jako kolumny, tylko że dynamicznie. W końcu jest to funkcja 😉.
Na razie wpiszę tę funkcję obok danych. Tej funkcji bowiem nie mogę umieścić w tabeli, ponieważ w wyniku wyświetli mi ona wynik rozlany na kilka komórek, czego nie przyjmie obiekt tabela. Ów rozlany wynik będą to wyodrębnione elementy konta księgowego.
A zatem, do komórki H4 wpiszę następującą formułę:
=PODZIEL.TEKST(tbRob[@[Numer konta]];"-")
Po skopiowaniu formuły do pozostałych wierszy uzyskam następujący wynik:
Wszystko fajnie, tylko my potrzebujemy nie wszystkie elementy wyodrębnione do poszczególnych komórek, ale konkretnie trzeci z nich. I w tym celu użyję kolejnej absolutnie genialnej funkcji: WYBIERZ.KOLUMNY. Zagnieżdżę w jej pierwszym argumencie to, co do tej pory napisałam, plus określę element, który chcę wybrać (znajduje się on w trzeciej kolumnie), zobacz:
=WYBIERZ.KOLUMNY(PODZIEL.TEKST(tbRob[@[Numer konta]];"-");3)
Taką formułę mogę już z powodzeniem skopiować do obiektu tabela, konkretnie u mnie do komórki F4 i uzyskam pożądany efekt:
I voila! Zadanie zrobione.
Oczywiście można się pobawić innymi funkcjami, aby osiągnąć ten sam efekt. Pokażę Ci jeszcze jedną metodę.
Metoda 2. – Funkcje TEKST.PRZED i TEKST.PO
W tej metodzie wykorzystamy cudne funkcje tekstowe, które potrafią wyodrębniać tekst za i przed konkretnym ogranicznikiem. Jednej z nich, TEKST.PO, użyłam poprzednio (zobacz tutaj). Teraz dorzucę jeszcze jej bliźniaczkę – TEKST.PRZED. Sytuację mamy identyczną, zatem po kolei: najpierw wyodrębnię tekst po drugim myślniku. Użyję do tego oczywiście funkcji TEKST.PO:
=TEKST.PO([@[Numer konta]];"-";2)
Prawie zrobione! Funkcja ta wyodrębniła absolutnie wszystko, co znajduje się po drugim myślniku. Czyli dla nas trochę zbyt dużo:
W niektórych przypadkach jest OK (tam, gdzie były tylko 3 elementy), jednak w większości zostało wyodrębnione zbyt dużo. Teraz to naprawimy i wyodrębnimy tekst przed pierwszym myślnikiem – jeśli w ogóle istnieje 😉. Formułę, którą wcześniej napisałam, zagnieżdżę w funkcji TEKST.PRZED:
=TEKST.PRZED(TEKST.PO([@[Numer konta]];"-";2);"-")
Oto efekt:
Tylko mamy zonk, ponieważ w niektórych przypadkach pojawia nam się błąd #N/D!. Są to oczywiście sytuacje, kiedy w tekście nie występuje myślnik. Co ciekawe funkcja TEKST.PO zawiera bezpiecznik na taką ewentualność (ostatni argument). Skorzystam z niego i wpiszę tam dokładnie to, co wpisałam w pierwszym argumencie, czyli funkcję TEKST.PO:
=TEKST.PRZED(TEKST.PO([@[Numer konta]];"-";2);"-";;;;TEKST.PO([@[Numer konta]];"-";2))
I gotowe! Wynik dokładnie taki, jak wcześniejszych funkcji:
Ja wolę pierwszą metodę – mniej zagnieżdżania w tym przypadku 😉. Gdyby oczywiście każde konto miało więcej niż 3 elementy – byłoby trochę łatwiej dla drugiej metody. Ale, niezależnie od metody, mam nadzieję, że pomogłam 🙌!
https://malinowyexcel.pl/wp-content/uploads/2024/01/MalinowyExcel-20240130-PODZIEL.TEKST-DW.xlsx
I film na Youtubie, gdzie pokazuję powyższe rozwiązanie:
0 Comments