我正在搜索一个Excel公式,以从十进制数字或整数中获取有效数字(我意识到单元格必须是字符串才能具有尾随零)
例如:
从一个整数我可以做:
=len("113")
,其中包含3个信号。数字
对于十进制数字> = 1或<1,我也可以删掉点: 假设H19内部有1.13:
= IF(VALUE(H19)> = 1; LEN(SUBSTITUTE(H19;“。”;“”)); LEN(SUBSTITUTE(H19;“ 0。”;“”))))
此公式给我3个信号。数字,或者说0.13会给我2 sig。数字为“ 0”。将从字符串中删除。
我能以某种方式包括所有可能发生的情况,例如:“ 0.000300”吗? “ 300”为信号。数字,所以结果是3。
使用我的公式无法正常工作。
第二个问题是,我的公式现在仅在有人使用点作为小数分隔符但以逗号分隔时才有效。不幸的是,它实际上必须是公式,而不是宏。
我在Google上搜索了很多,但找不到涵盖所有方面的解决方案。 有人可以帮忙吗?
答案 0 :(得分:1)
如果数字存储为格式化为显示尾随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))