[SOLVED] Usuwanie znaków od n-tego przecinka

Użytkowanie arkusza kalkulacyjnego
lukszczesny
Posty: 6
Rejestracja: pt sty 11, 2019 9:54 pm

[SOLVED] Usuwanie znaków od n-tego przecinka

Post autor: lukszczesny »

Dzień dobry
Posiadam w jednej kolumnie takie wpisy:
1993.03.22,00:00,19.1,19.1,19.1,19.1,0.0,0.0
1993.03.23,00:00,19.21,19.21,19.21,19.21,0.0,0.0
1993.03.24,00:00,19.35,19.35,19.35,19.35,0.0,0.0
1993.03.25,00:00,19.38,19.38,19.38,19.38,0.0,0.0
1993.03.26,00:00,19.38,19.38,19.38,19.38,0.0,0.0
1993.03.29,00:00,19.45,19.45,19.45,19.45,0.0,0.0
Muszę usunąć znaki zaznaczone na czerwono, czyli wszystko po ostatnimn przecinku włącznie. Próbowałem funkcji

Kod: Zaznacz cały

=LEWY(A1;ZNAJDŹ(",";A1))
, ale ta funkcja wyświetla mi znaki do pierwszego przecinka, a nie do siódmego czyli ostatniego.
Jeśli dopiszę w niej pozycję startową, to nic mi to nie daje, bo wiersze mogą róznić się długością, ale liczba przecinków się nie zmienia.

Pozdrawiam
Ostatnio zmieniony czw sty 17, 2019 1:30 pm przez lukszczesny, łącznie zmieniany 1 raz.
openoffice 4.1.5, windows 10
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: Usuwanie znaków od n-tego przecinka

Post autor: belstar »

Z twojego przykładu wynika, że usuwane znaki mają stałą długość, więc wystarczy formuła:

Kod: Zaznacz cały

=LEWY(A1;DŁ(A1)-4)
LibreOffice 5.1.2.2 Ubuntu 16 LTS
lukszczesny
Posty: 6
Rejestracja: pt sty 11, 2019 9:54 pm

Re: Usuwanie znaków od n-tego przecinka

Post autor: lukszczesny »

belstar pisze:Z twojego przykładu wynika, że usuwane znaki mają stałą długość, więc wystarczy formuła:

Kod: Zaznacz cały

=LEWY(A1;DŁ(A1)-4)
Niestety to musi być do ostatniego przecinka, bo tak jak wspomniałem wiersze mogą mieć różną długość i później wyglądają np.tak:
1993.05.24,00:00,19.38,19.38,19.38,19.38,0.0,973.0
1993.05.25,00:00,19.5,19.5,19.5,19.5,1.0,973.0
1993.05.26,00:00,19.44,19.52,19.44,19.52,255.0,1224.0
1993.05.27,00:00,19.45,19.65,19.43,19.65,42.0,1265.0
openoffice 4.1.5, windows 10
Awatar użytkownika
Jermor
Posty: 2352
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Usuwanie znaków od n-tego przecinka

Post autor: Jermor »

Belstar podał ci rozwiązanie, ale przede wszystkim analizuj funkcje. Poprzednio podałem ci funkcję PODSTAW, gdybyś zastanowił się co ona robi a nie tylko wklepał, bo zadziałała, to zobaczyłbyś, że można ją wykorzystać do tego celu.
gdy tekst jest w A1 funkcja mogłaby wyglądać tak:

Kod: Zaznacz cały

=PODSTAW(A1;",0.0";"";1)
Drugi argument funkcji określa czego szukasz, tutaj: ",0.0"
trzeci argument określa czym to zastąpić, tutaj: "" (dwa cudzysłowy, czyli pustym ciągiem)
czwarty argument określa, które wystąpienie takiego ciągu ma zostać zamienione.
Warto także przyjrzeć się samym danym. Chcesz usunąć ciąg ",0.0". Występuje on dwukrotnie na końcu każdego tekstu. Możesz wykorzystać polecenie "Znajdź i zamień". Nie musisz wówczas pisać żadnych formuł.
W "Szukaj" wpisać: ",0.0$", taki zapis oznacza, że zamiana dotyczy tylko ostatnich znaków.
W "Zamień na" nic nie wpisywać., Zaznaczyć obszar zamiany, ustawić opcje Tylko bieżące zaznaczenie, Wyrażenia regularne, Szukaj w wartościach.
Załączniki
190117120454_2.jpg
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
lukszczesny
Posty: 6
Rejestracja: pt sty 11, 2019 9:54 pm

Re: Usuwanie znaków od n-tego przecinka

Post autor: lukszczesny »

Jermor pisze:Belstar podał ci rozwiązanie, ale przede wszystkim analizuj funkcje. Poprzednio podałem ci funkcję PODSTAW, gdybyś zastanowił się co ona robi a nie tylko wklepał, bo zadziałała, to zobaczyłbyś, że można ją wykorzystać do tego celu.
gdy tekst jest w A1 funkcja mogłaby wyglądać tak:

Kod: Zaznacz cały

=PODSTAW(A1;",0.0";"";1)
Drugi argument funkcji określa czego szukasz, tutaj: ",0.0"
trzeci argument określa czym to zastąpić, tutaj: "" (dwa cudzysłowy, czyli pustym ciągiem)
czwarty argument określa, które wystąpienie takiego ciągu ma zostać zamienione.
Próbowałem z tą funkcją i zrozumiałem jej działanie, ale tylko kilka pierwszych wierszy ma po ostatnimn przecinku ",0.0"
Mój błąd, że akurat podałem taki przykład, bo później wiersze mają różną długość i różne wartości po przecinkach, np:

1993.05.24,00:00,19.38,19.38,19.38,19.38,0.0,973.0
1993.05.25,00:00,19.5,19.5,19.5,19.5,1.0,973.0
1993.05.26,00:00,19.44,19.52,19.44,19.52,255.0,1224.0
1993.05.27,00:00,19.45,19.65,19.43,19.65,42.0,1265.0
openoffice 4.1.5, windows 10
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: Usuwanie znaków od n-tego przecinka

Post autor: belstar »

Spróbuj tak:

Kod: Zaznacz cały

=LEWY(A1;DŁ(A1)-(DŁ(A1)-(ZNAJDŹ("_";PODSTAW(A1;",";"_";SUMA.ILOCZYNÓW(DŁ(A1)-DŁ(PODSTAW(A1;",";"")))))-1)))
Na pewno można to zrobić prościej, ale ja do tego problemu podszedłem tak jak widać.
LibreOffice 5.1.2.2 Ubuntu 16 LTS
Awatar użytkownika
Jermor
Posty: 2352
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Usuwanie znaków od n-tego przecinka

Post autor: Jermor »

Tym bardzie skorzystaj z funkcji znajdź i zamień.
Wykorzystując wyrażenia regularne w Szukaj możesz wpisać: ",[:digit:]+\.[:digit:]+$"
w Znajdź nic nie wpisywać.
Opcje jak powyżej, w poprzednim poście.
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
lukszczesny
Posty: 6
Rejestracja: pt sty 11, 2019 9:54 pm

Re: Usuwanie znaków od n-tego przecinka

Post autor: lukszczesny »

Dziękuję, oba rozwiązania działają świetnie
Pozdrawiam serdecznie
openoffice 4.1.5, windows 10
ODPOWIEDZ