Levusek
Levusek
#excel
Mirki potrzeba mi pomocy. Potrzebuję w ciągu tekstowym znaleźć numer pozycji dla kolejnych wystąpień tego samego znaku, przykładowo:

7'*123+5'*2341+23'*3543+1'*453

Z powyższej komórki chciałbym wypisać sobie numer pozycji dla każdego z plusów. Jest na to jakaś prosta metoda?
  • Najlepsze
  • Wszystkie komentarze
Polinik
@Levusek:
Na 80% tabela przestawna albo =wyszukaj.pionowo()
Levusek
Levusek
Levusek Autor
1
Problem jest taki, że te ciągi tekstowe mam w kolumnie i jest ich około 3000
Limonene
@Levusek: musisz pokombinować z osadzonym "znajdź". Zawsze masz trzy plusy?
kwiatosz
@Levusek Chodzi o to którym znakiem w komórce jest plus?
kwiatosz
@Levusek Można zrobić tak: dajesz text to columns i rozbijasz tekst na kolumny jako znaku rozbicia używając plusa, na prawo od danych dajesz tak:
kwiatosz
@Levusek w drilugiej komórce dajesz tak:
kwiatosz
@Levusek I te formułę z drugiej komórki przeciągasz w prawo. To daje Ci w kolejnych komórkach pozycję kolejnych plusów. Może mało eleganckie, ale działa.
severh
7'123+5'2341+23'3543+1'453


@Levusek: jest funkcja =szukaj.tekst
=SZUKAJ.TEKST("+";B3;1)
potem dajesz pole z
severh
@Levusek: albo możesz zrobić też tak że w 1wszej komórce wrzucasz

=SZUKAJ.TEKST("+";B3;1)

a potem w kolejnej w prawo dajesz

fun =SZUKAJ.TEKST("+";$B3;1+C3)

i przeciągasz dalej w prawo i samo sie ładnie poadresuje (będzie indeksowało od ostatniego wystąpienia)
severh
@Levusek: tylko pamiętaj o $ dla 2giej formuły (tu $B3) żeby adres wyszukiwania się nie przestawił na inną komórkę ( ͡° ͜ʖ ͡°)
apanKuba
@Levusek: @kwiatosz: @severh: mam rozwiązanie, bez rozdzielania tekstu na kolumny, co może być problematyczne przy dłuższym ciągu znaków. Wydluzylem tekst, żeby było lepiej widoczne. Ogólnie opiera się na wyszukaniu pierwszego wystąpienia danego znaku w tekście a później skracaniu tekstu o ilość (sumę) znaków, która oznacza kolejne pozycje szukanego znaku.
DwaNiedzwiedzie
@Levusek: Formuła tablicowa, zatwierdź przez ctrl+shift+enter:

=POŁĄCZ.TEKSTY(";";1;(JEŻELI(FRAGMENT.TEKSTU($A1;WIERSZ($A$1:INDEKS($A:$A;DŁ($A1)));1)="+";WIERSZ($A$1:INDEKS($A:$A;DŁ($A1)));"")))
Levusek
Levusek
Levusek Autor
  • adult
1
Treść przeznaczona dla osób powyżej 18 roku życia...
Levusek
Levusek
Levusek Autor
0
Narzędzie "Tekst jako kolumny" znam, ale w tym przypadku nie ma dla mnie zastosowania
Levusek
Levusek
Levusek Autor
0
@Limonene: w każdym przypadku inaczej, od 0 do 10 plusów
Levusek
Levusek
Levusek Autor
0
@kwiatosz: tak, z tym że potrzebuję informacji dla każdego z plusów w komórce l
Levusek
Levusek
Levusek Autor
0
@Limonene: Osadzone znajdź było bardzo kłopotliwe i przy drugim "+" naszły mnie wątpliwości czy nie ma może jakichś prostszych sposobów
@kwiatosz: Text to columns działa w miarę tak jak potrzebuję, tylko musi być to powtarzalne z każdym otwarciem pliku i zaciągnięciu świeżych danych
@severh: muszę to wypróbować u siebie, ale czarna magia o której piszesz wydaje się działać (ʘ‿ʘ)
Levusek
Levusek
Levusek Autor
0
@Limonene, @severh: @kwiatosz: @apanKuba: @DwaNiedzwiedzie: Dzięki wszystkim za pomoc, najlepiej zadziałało u mnie rozwiązanie @severh, ze względu na potrzebę/chęć zagnieżdżenia funkcji w formule wyciągającej poszczególne ciągi spomiędzy plusów.