Подсчет десятичных разрядов с помощью Excel дает странный результат - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь сосчитать десятичные разряды, используя простую формулу =LEN(A1-INT(A1))-2.Ячейка A1 форматируется как Standard и содержит, например, значение 100.000739.

Я не понимаю, почему формула возвращает 18 вместо 6?

=A1-INT(A1)               ==> returns 0.000739 which is fine
=LEN(A1-INT(A1))-2        ==> returns 18 
=LEN(0.000739)            ==> returns 8 which is fine

Даже если я явно сформирую ячейку как число, имеющее 6 десятичных разрядов, формула по-прежнему возвращает 18. Любоеидея?


Используемая версия Microsoft Excel 2013

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Это работает для меня:

=LEN(A1)-FIND(".",A1)

если у вас есть несколько целых чисел в столбце A, вы получите ошибку, так как FIND не сможет найти десятичную точку.Вы можете решить это, сначала проверив, является ли значение в столбце A целым числом, и вернув в этом случае «0», например:

=IF(A1=INT(A1),0,LEN(A1)-FIND(".",A1))
0 голосов
/ 04 марта 2019

LEN возвращает длину строки.A1-INT (A1) - это число, а не строка.

Попробуйте

=T(A1-INT(A1)

и сравните это с

=LEN(T(A1-INT(A1)))

Таким образом, вы можете увидеть, какое значениеLEN действительно использует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...