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

10

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

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

HPY
источник

Ответы:

15

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

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

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

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

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

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

DMA57361
источник
7

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

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

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

Brian554xx
источник
Вы понимаете это 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