12个字符,包括前导和后续的零
我发现这很难解释,但最终我想单元格值是12个字符长,包括+/-小数点和以下零。
Examples are 1200 would become +1200.000000 -20 would become -20.00000000 99999999 would become +99999999.00
我已经试过FIXED
, LENGTH
和格式规则,没有喜悦。 格式化规则只改变了显示的数字,而不是单元格的值。
有人可以帮我弄这个吗? 是否有可能只用公式和没有脚本?
用户公式
=LEFT(TEXT(A1,"+0.000000000;-0.000000000"),12)
A1包含你的号码。 这将是一个文本单元格types,但将格式的单元格如何你想要的。
这是整个公式,如果有点长:
=MID(MID(TEXT(A1,"+"&REPT("0",12)&"."&REPT("0",12)&";-"&REPT("0",12)&"."&REPT("0",12)),1,1)&MID(TEXT(A1,"+"&REPT("0",12)&"."&REPT("0",12)&";-"&REPT("0",12)&"."&REPT("0",12)),SMALL(IF(ISNUMBER(FIND({".",1,2,3,4,5,6,7,8,9},TEXT(A1,"+"&REPT("0",12)&"."&REPT("0",12)&";-"&REPT("0",12)&"."&REPT("0",12)))),FIND({".",1,2,3,4,5,6,7,8,9},TEXT(A1,"+"&REPT("0",12)&"."&REPT("0",12)&";-"&REPT("0",12)&"."&REPT("0",12)))),1),LEN(TEXT(A1,"+"&REPT("0",12)&"."&REPT("0",12)&";-"&REPT("0",12)&"."&REPT("0",12)))-SMALL(IF(ISNUMBER(FIND({".",1,2,3,4,5,6,7,8,9},TEXT(A1,"+"&REPT("0",12)&"."&REPT("0",12)&";-"&REPT("0",12)&"."&REPT("0",12)))),FIND({".",1,2,3,4,5,6,7,8,9},TEXT(A1,"+"&REPT("0",12)&"."&REPT("0",12)&";-"&REPT("0",12)&"."&REPT("0",12)))),1)),1,12)
以下是显示格式化结果的屏幕截图:
说明:
-
我们需要将单元格包装在:
=TEXT(A1,"+"&REPT("0",12)&"."&REPT("0",12)&";-"&REPT("0",12)&"."&REPT("0",12))
我们可以得到+/-符号,最多可以达到12个0,最后可以达到12个0。 这是为了容纳长达12个字符的整数,并且最多为纯小数,所有数字都超过小数点。
-
现在我们只需要摆脱多余的0; 要做到这一点,我们需要find
1,2,3,4,5,6,7,9 or "."
的第一个出现1,2,3,4,5,6,7,9 or "."
我们可以用这个做到这一点:=SMALL(IF(ISNUMBER(FIND({".",1,2,3,4,5,6,7,8,9},D1)),FIND({".",1,2,3,4,5,6,7,8,9},D1)),1)
(其中D1是来自步骤1的文本)
-
现在我们可以使用
MID
来消除我们不想要的开始多余和结尾0:=MID(MID(D1,1,1)&MID(D1,E1,LEN(D1)-E1),1,12)
(其中D1再次来自步骤1,E1来自步骤2)
把所有这些结合在一起就得到了长公式和我显示的第一个公式,但是输出是正确的。