"dmocha" <user@user.pl> wrote in message
news:fohu39$7oh$1@nemesis.news.tpi.pl...
> Czesto korzystam z plików excela i csv w których mam kilka kolumn z
> różnymi danymi.
> Czy jest sposób (formuła) żeby z ciągu tekstowego zawartego w jednej
> komórce wybrać konkretne ciągi znaków i umiejscowić je w osobnych
> komórkach w tym samym wierszu (obok).
> Np. mam tekst w komórce a1:
> C1710102 - nazwa oddział 50 w Suchej Woli (93-200 Sucha Wola,
> Kowalskiego 1)
> Chciałbym z niego wybrać osobno 4 pozycje:
> C1710102
> oddział 50
> 93-200 Sucha Wola
> Kowalskiego 1
Wykorzystaj funkcję zwracającą pozycję danego znaku w tekście:
1. Symbol uzyskasz wycinając z tekstu wszystko przed pierwszym myślnikiem,
minus jeden znak bo to spacja
2. Oddział uzyskasz wycinając z tekstu wszystko za drugą spacją po pierwszym
myślniku, aż do drugiej spacji następującej od tego miejsca (czyli dwa
słowa)
3. Kod pocztowy i miejscowość - tekst od nawiasu do przecinka
4. Ulica i nr - tekst od przecinka do końca minus 1 znak bo to nawias
zamykający
Zakładam, że tekst masz w komórce A2. Wpisz formuły:
do B2: =ZNAJDŹ("-";$A2)
do C2: =ZNAJDŹ(" ";$A2;B2+2)+1
do D2: =ZNAJDŹ(" ";$A2;C2)+1
do E2: =ZNAJDŹ(" ";$A2;D2)+1
do F2: =ZNAJDŹ("(";$A2;E2)+1
do G2: =ZNAJDŹ(",";$A2;F2)
do H2: =LEWY($A2;B2-1)
do I2: =FRAGMENT.TEKSTU($A2;C2;E2-C2-1)
do J2: =FRAGMENT.TEKSTU($A2;F2;G2-F2)
do K2: =FRAGMENT.TEKSTU($A2;G2+2;DŁ($A2)-G2-2)
Ukryj kolumny pomocnicze B do G.
To rozwiązanie jest mocno wrażliwe na układ tekstu, np. jeśli nazwa oddziału
będzie więcej niż dwuwyrazowa, będą skopiowane tylko dwa słowa, a jeśli po
nazwie miejscowości w nawiasie nie będzie przecinka przed ulicą (lub nie
będzie któregoś nawiasu), formuły zwrócą błędy. Musisz wyszukać uniwersalne
(spełnione zawsze) reguły i odpowiednio dopasować sobie formuły, albo
spróbować wymusić na dostawcy źródła danych spójny format.
> Druga sprawa (częściowo związana z powyższym), łącząc komórki funkcją:
> =ZŁĄCZ.TEKSTY(D4;" tekst ";E4;" szt - ";B4)
> chciałbym użyć np. zamiast słowa tekst, jednego znaku cudzysłów czyli:
> =ZŁĄCZ.TEKSTY(D4;" " ";E4;" szt - ";B4)
> Program nie pozwala na taki zapis. W jaki sposób muszę oznaczyć taki
> znak?
Wpisz dwa cudzysłowy zamiast jednego:
> =ZŁĄCZ.TEKSTY(D4;" "" ";E4;" szt - ";B4)
strach