Odpowiedzi:
TRUNC() jest przeznaczony do usuwania części dziesiętnej dowolnej liczby natychmiast i bez żadnych modyfikacji części dziesiętnej.
Tak więc, zgodnie z odpowiedzią LinYana , wystarczy użyć:
TRUNC(A1) aby uzyskać całkowitą część wartości w A1A1-TRUNC(A1) aby otrzymać ułamkową część wartości w A1W przeciwieństwie FLOOR(), TRUNC()działa na obu liczb dodatnich i ujemnych, bez konieczności regulacji, i działa w taki sam sposób, zarówno w programie Microsoft Excel i LibreOffice.
FLOOR() wymaga, aby parametr istotności miał ten sam znak co przetwarzana liczba (w przeciwnym razie spowoduje błąd), więc 1na końcu trzeba by zmienić, -1aby przetwarzać liczby ujemne, lub można wstawić SIGN()i niepotrzebnie skomplikować formułę.
A w OpenOffice i LibreOffice FLOOR()ma również dodatkowy (w porównaniu do Excela) trzeci parametr „trybu”, który zmienia wyniki zwracane przez funkcję dla liczb ujemnych.
możesz wypróbować FLOORfunkcję, floor(A1,1) dla części całkowitej A1, A1-floor(A1,1)dla części dziesiętnej A1.
Wyobraźmy sobie na przykład, że A1 to 167,583:
int(A1)dałoby 167, a
mod(A1,1)dałoby 0,583.
int(1.6) === 1i int(-1.6) === -2... Ale trunc(decimal;0)działa poprawnie dla obu.
Nie myśl, że jest do tego specjalna funkcja, jednak zagnieżdżając parę, możesz.
Zakładając, że próbujesz zwrócić wartość po przecinku dla komórki A1, formuła wyglądałaby następująco:
=MID(A1,SEARCH(".",A1,1)+1,LEN(A1))
Efektywnie używasz funkcji MID, aby zwrócić pewną liczbę znaków, zaczynając od przecinka. Wszystkie 3 odniesienia do A1 muszą zostać zaktualizowane dla każdej docelowej komórki, aby działała poprawnie.
=RIGHT(TEXT(ABS(A1)-INT(ABS(A1));",00");2)
czy nie byłoby to po prostu idealne i estetyczne?