Szef zlecił Ci zadanie (może ma na imię Robert ;)), żeby wyciągnąć tekst, który się znajduje pomiędzy przedostatnim, a ostatnim backslashem (\). To zadanie wymaga trochę pracy. Żeby było łatwiejsze podzielimy je sobie na trzy części. Najpierw znajdziemy pozycję przedostatniego i ostatniego backslasha, a potem już łatwo wyciągniemy tekst pomiędzy nimi.
Żeby odnaleźć pozycję przedostatniego i ostatniego backslasha najpierw będziemy potrzebować policzyć ile ich jest. Zrobimy to podmieniając wszystkie backslashe w tekście na pusty ciąg tekstowy, czyli po prostu usuniemy je. To uzyskamy za pomocą funkcji PODSTAW:

=PODSTAW(A2;"\";"")

Kolejnym krokiem będzie obliczenie długości tekstu/ścieżki, po usunięciu backslashy, to da nam funkcja DŁ, a żeby uzyskać liczbę backslashy potrzebujemy odjąć tą długość od faktycznej długości tekstu:

=DŁ(A2)-DŁ(PODSTAW(A2;"\";""))

widzowie-104-jak-wyciagnac-tekst-pomiedzy-ostatnim-a-przedostatnim-backslash-01
Założyliśmy sobie, że najpierw odszukamy pozycję przedostatniego backslasha, więc musimy tu jeszcze odjąć jedynkę. Teraz możemy, ten konkretny numer znaku zastąpić takim ciągiem tekstowym, który na pewno nie powtórzy się w przeszukiwanym tekście np.: #@, to znów będzie funkcja PODSTAW:

=PODSTAW(A2;"\";"#@";DŁ(A2)-DŁ(PODSTAW(A2;"\";""))-1)

widzowie-104-jak-wyciagnac-tekst-pomiedzy-ostatnim-a-przedostatnim-backslash-02

Teraz wystarczy, że odnajdziesz pozycję tego nietypowego ciągu znaków (funkcja ZNAJDŹ) i masz pozycję przedostatniego backslasha:

=ZNAJDŹ("#@";PODSTAW(A2;"\";"#@";DŁ(A2)-DŁ(PODSTAW(A2;"\";""))-1))

widzowie-104-jak-wyciagnac-tekst-pomiedzy-ostatnim-a-przedostatnim-backslash-03
Pozycję ostatniego znaku odnajdziesz po prostu nie odejmując jedynki:

=ZNAJDŹ("#@";PODSTAW(A2;"\";"#@";DŁ(A2)-DŁ(PODSTAW(A2;"\";""))))

widzowie-104-jak-wyciagnac-tekst-pomiedzy-ostatnim-a-przedostatnim-backslash-04
Teraz jak mamy już pozycję ostatniego i przedostatniego znaku to łatwo wyciągnąć to co jest pomiędzy nimi za pomocą funkcji FRAGMENT.TEKSTU. Trzeba tylko pamiętać dodać i odjąć jeden, żeby nie wyciągnąć również backslashy:

=FRAGMENT.TEKSTU(A2;C2+1;D2-C2‑1)

widzowie-104-jak-wyciagnac-tekst-pomiedzy-ostatnim-a-przedostatnim-backslash-05

Pozdrawiam
Adam Kopeć
Miłośnik Excela