Как разделить число по десятичной точке в Excel / Calc?


10

У меня есть номер в таблице, например: 28.686279

Когда я открыть этот лист в любом LibreOffice Calc или Microsoft Excel, есть формула функция , которая возвращает «целое число», т.е. 28. Кроме того , есть формула , которая возвращает «дробная часть», т.е. 0.686279?

Ответы:


15

TRUNC() предназначен для удаления десятичной части любого числа немедленно и без каких-либо изменений в недесятичной части.

Итак, согласно ответу LinYan , вам просто нужно использовать:

  • TRUNC(A1) чтобы получить целую часть значения в A1
  • A1-TRUNC(A1) получить дробную часть значения в A1

В отличие от этого FLOOR(), TRUNC()работает как с положительными, так и с отрицательными числами, не требуя настройки, и работает одинаково в Microsoft Excel и LibreOffice.

FLOOR() требует, чтобы у параметра значимости был тот же знак, что и у обрабатываемого числа (иначе возникнет ошибка), поэтому 1в конце придется изменить его -1на обработку отрицательных чисел, или вы можете добавить SIGN()и без необходимости дополнительно усложнить формулу.

А в OpenOffice и LibreOffice FLOOR()также имеется дополнительный (по сравнению с Excel) третий параметр «mode», который изменяет результаты, возвращаемые функцией для отрицательных чисел.


7

Вы можете попробовать FLOORфункцию, floor(A1,1) для целой части A1, A1-floor(A1,1)для десятичной части A1.


1
Просто интересно, почему нет какой-либо функции FRAC (A1) для извлечения десятичной части? Кажется, это то, что люди делают довольно часто, верно?
Алексис Уилке

Как насчет негативов ...
Роберт Коритник

5

Например, представьте, что А1 равен 167,583:
int(A1)даст 167 и
mod(A1,1)0,583.


Вы понимаете это int(1.6) === 1и int(-1.6) === -2... Но trunc(decimal;0)работает правильно для обоих.
Роберт Коритник

1

Не думайте, что для этого есть особая функция, однако, вложив пару, вы можете.

Предполагая, что вы пытаетесь вернуть значение десятичного значения для ячейки A1, формула будет иметь вид:

=MID(A1,SEARCH(".",A1,1)+1,LEN(A1))

По сути, здесь вы используете функцию MID для возврата некоторого количества символов, начиная с десятичной точки. Все 3 ссылки на A1 должны быть обновлены для каждой ячейки, на которую вы нацелены, чтобы она работала правильно.


Это возвращает текст, а не число.
fixer1234

-3
=RIGHT(TEXT(ABS(A1)-INT(ABS(A1));",00");2)

разве это не было бы просто идеально и эстетично?


Это возвращает текст, а не число.
fixer1234
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.