usuwanie dwóch ostatnich liczb kodu

Użytkowanie arkusza kalkulacyjnego
intendo
Posty: 7
Rejestracja: czw wrz 27, 2018 9:34 pm

usuwanie dwóch ostatnich liczb kodu

Post autor: intendo »

Witam
Proszę o pomoc przy znalezieniu formuły do usuwani dwóch ostatnich liczb kodu w całej kolumnie. Przykładowo mam kolumnę z 6 cyfrowymi kodami a chce je skrócić do 4 cyfr.

768568 7685
437685 4376
343453 3434
453453 4534
234234 2342
234234 2342
234234 2342

pozdrawiam
Intendo
OpenOffice 4.1.5
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: usuwanie dwóch ostatnich liczb kodu

Post autor: Jan_J »

Powiedzmy że kod znajduje się w komórce A1.

Jeżeli kody są liczbami, można podzielić je przez 100 i odrzucić resztę, np.
=floor(A1/100)
albo
=quotient(A1;100)
a jeśli są tekstami, pobrać z nich 4 pierwsze znaki, np.
=left(A1;4)

Po polsku (nie, to nie są nazwy polskie tych funkcji):
floor -> zaokr.dół(?)
quotient -> iloraz(?)
left -> lewy

Oczywiście formułę trzeba rozprzestrzenić wzdłuż całej kolumny kodów `zwykłymi` metodami. Nie przepisuj. Kopiuj/wklej albo przeciągnij.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
intendo
Posty: 7
Rejestracja: czw wrz 27, 2018 9:34 pm

Re: usuwanie dwóch ostatnich liczb kodu

Post autor: intendo »

Dzięki za pomoc ale albo robię coś źle albo to nie działa.
OpenOffice 4.1.5
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: usuwanie dwóch ostatnich liczb kodu

Post autor: Jan_J »

w załączniku:
fragmenty.ods
(10.54 KiB) Pobrany 87 razy
jawnie (nazwy funkcji są oryginalne/anglojęzyczne. Spolszczonych nie używam bo ich nie akceptuję. W pliku ods zobaczysz nazwy zgodnie ze swoimi ustawieniami konfiguracji):

Kod: Zaznacz cały

kod	ma być	z zaokrąglaniem	z dzieleniem całkowitym	cztery znaki
768568	7685	=FLOOR(A2/100)	=QUOTIENT(A2;100)	=LEFT(A2;4)
437685	4376	=FLOOR(A3/100)	=QUOTIENT(A3;100)	=LEFT(A3;4)
343453	3434	=FLOOR(A4/100)	=QUOTIENT(A4;100)	=LEFT(A4;4)
453453	4534	=FLOOR(A5/100)	=QUOTIENT(A5;100)	=LEFT(A5;4)
234234	2342	=FLOOR(A6/100)	=QUOTIENT(A6;100)	=LEFT(A6;4)
234234	2342	=FLOOR(A7/100)	=QUOTIENT(A7;100)	=LEFT(A7;4)
234234	2342	=FLOOR(A8/100)	=QUOTIENT(A8;100)	=LEFT(A8;4)
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
intendo
Posty: 7
Rejestracja: czw wrz 27, 2018 9:34 pm

Re: usuwanie dwóch ostatnich liczb kodu

Post autor: intendo »

Otworzyłem twój plik ale wyskakuje mi błąd. Dołączam screena.
Załączniki
OpenOffice bląd.png
OpenOffice 4.1.5
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: usuwanie dwóch ostatnich liczb kodu

Post autor: Jan_J »

Opisałem 3 metody, zaimplementowałem je pod LibreOffice.

Pierwsza z nich okazała się nieskuteczna w Apache OpenOffice -- dzięki, sprawdzę dlaczego. Zapewne coś nie gra z nazwami dostępnych funkcji. Ale w dokumentacji:
Libre:
https://help.libreoffice.org/Calc/Mathe ... ions#FLOOR
https://help.libreoffice.org/Calc/Mathe ... 3.93.C5.81
Apache:
https://wiki.openoffice.org/wiki/Docume ... R_function

Dwie pozostałe metody działają; możesz ich używać. Pamiętaj tylko że druga daje wynik liczbowy, a trzecia -- tekstowy.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
intendo
Posty: 7
Rejestracja: czw wrz 27, 2018 9:34 pm

Re: usuwanie dwóch ostatnich liczb kodu

Post autor: intendo »

Mi w zupełności ostatnia metoda wystarczy. Bardzo dziękuje Ci za pomoc i poświęcony czas.
pozdrawiam
Intendo
OpenOffice 4.1.5
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: usuwanie dwóch ostatnich liczb kodu

Post autor: Jan_J »

Ad Błąd 511

LibreOffice Calc i Apache OpenOffice Calc różnią się składnią funkcji FLOOR (czyli, tfu, ZAOKR.W.DÓŁ):

Libre wymaga jednego argumentu, dopuszcza dwa opcjonalne (drugi z wartością domyślną 1); Apache wymaga dwóch argumentów, dopuszcza trzeci opcjonalny.

Dlatego FLOOR(A1/100) jest dobre w Libre, a generuje błąd w Apache. Postać wywołania: FLOOR(A1/100; 1) działa jednakowo w obu.

Trzeci argument mówi o kierunku zaokrąglania (w lewo czy w stronę zera); w przypadku liczb dodatnich nie ma znaczenia, a wartość domyślna jest w obu systemach taka sama.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
intendo
Posty: 7
Rejestracja: czw wrz 27, 2018 9:34 pm

Re: usuwanie dwóch ostatnich liczb kodu

Post autor: intendo »

Ok dla mnie rewelacja, Jeszcze raz dziękuję za pomoc.

pozdrawiam
Intendo
OpenOffice 4.1.5
ODPOWIEDZ