Формула EXCEL для значащих цифр - PullRequest
0 голосов
/ 11 февраля 2019

Я ищу формулу Excel, чтобы получить количество значащих цифр из десятичного числа или целого числа (я понял, что ячейка должна быть строкой, чтобы иметь конечные нули)

Например:

из целого числа, которое я могу сделать: =len("113"), который имеет 3 сиг.цифры

также для десятичного числа> = 1 или <1 Я могу вырезать точки: допустим, H19 имеет 1,13 внутри: </p>

= IF (VALUE (H19)> =1; LEN (ЗАМЕНА (H19; "."; "")); LEN (ЗАМЕНА (H19; "0."; "")))

Эта формула дает мне 3 сиг.цифры или, скажем, 0,13 даст мне 2 сиг.цифры как "0"будет удален из строки.

Можно ли как-нибудь включить все возможные случаи, которые могут произойти, скажем: "0.000300"?«300» - это сиг.цифры, так что результат 3. 3. 1016 *

С моей формулой это не будет работать правильно.

Вторая проблема в том, что моя формула теперь работает, только если кто-то использует точку в качестве десятичного разделителя, но она ломается сзапятаяК сожалению, это действительно должна быть формула, а не макрос.

Я много гуглил, но не смог найти решение, которое охватило бы все аспекты.Может кто-нибудь помочь?

1 Ответ

0 голосов
/ 11 февраля 2019

Если число сохраняется как число, отформатированное для отображения конечного числа 0, используйте:

=LEN(H19*10^(--SUBSTITUTE(CELL("format",H19),"F","")))

Обратите внимание, что формат должен быть «Число», а не «Общий»

Если число хранится в виде текста:

=LEN(MID(SUBSTITUTE(SUBSTITUTE(H19,".",""),",",""),AGGREGATE(15,6,ROW($XFD$1:INDEX(XFD:XFD,LEN(SUBSTITUTE(SUBSTITUTE(H19,".",""),",",""))))/(MID(SUBSTITUTE(SUBSTITUTE(H19,".",""),",",""),ROW($XFD$1:INDEX(XFD:XFD,LEN(SUBSTITUTE(SUBSTITUTE(H19,".",""),",","")))),1)<>"0"),1),99))

enter image description here

...