Jak oddzielić liczbę po przecinku w programie Excel / Calc?

10

Mam numer w arkuszu kalkulacyjnym: 28.686279

Kiedy otwieram ten arkusz w LibreOffice Calc lub Microsoft Excel, czy istnieje funkcja formuły, która zwraca „liczbę całkowitą”, tj. 28. Czy jest też formuła, która zwraca „część dziesiętną”, to znaczy 0.686279?

hpy
źródło

Odpowiedzi:

16

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 A1
  • A1-TRUNC(A1) aby otrzymać ułamkową część wartości w A1

W 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.

DMA57361
źródło
7

możesz wypróbować FLOORfunkcję, floor(A1,1) dla części całkowitej A1, A1-floor(A1,1)dla części dziesiętnej A1.

LiuYan 刘 研
źródło
1
Zastanawiam się, dlaczego nie ma żadnej funkcji FRAC (A1) do pobierania części dziesiętnej? Wygląda na to, że ludzie często to robią, prawda?
Alexis Wilke
Co powiesz na negatywy ...
Robert Koritnik
5

Wyobraźmy sobie na przykład, że A1 to 167,583:
int(A1)dałoby 167, a
mod(A1,1)dałoby 0,583.

Brian554xx
źródło
Zdajesz sobie z tego sprawę int(1.6) === 1i int(-1.6) === -2... Ale trunc(decimal;0)działa poprawnie dla obu.
Robert Koritnik,
1

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.

Alex Miller
źródło
Zwraca tekst zamiast liczby.
fixer1234
-3
=RIGHT(TEXT(ABS(A1)-INT(ABS(A1));",00");2)

czy nie byłoby to po prostu idealne i estetyczne?

Paul Fischer
źródło
Zwraca tekst zamiast liczby.
fixer1234