12个字符,包括前导和后续的零

我发现这很难解释,但最终我想单元格值是12个字符长,包括+/-小数点和以下零。

Examples are 1200 would become +1200.000000 -20 would become -20.00000000 99999999 would become +99999999.00 

我已经试过FIXEDLENGTH和格式规则,没有喜悦。 格式化规则只改变了显示的数字,而不是单元格的值。

有人可以帮我弄这个吗? 是否有可能只用公式和没有脚本?

用户公式

 =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) 

以下是显示格式化结果的屏幕截图:

在这里输入图像说明

说明:

  1. 我们需要将单元格包装在:

     =TEXT(A1,"+"&REPT("0",12)&"."&REPT("0",12)&";-"&REPT("0",12)&"."&REPT("0",12)) 

    我们可以得到+/-符号,最多可以达到12个0,最后可以达到12个0。 这是为了容纳长达12个字符的整数,并且最多为纯小数,所有数字都超过小数点。

  2. 现在我们只需要摆脱多余的0; 要做到这一点,我们需要find1,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的文本)

  3. 现在我们可以使用MID来消除我们不想要的开始多余和结尾0:

     =MID(MID(D1,1,1)&MID(D1,E1,LEN(D1)-E1),1,12) 

    (其中D1再次来自步骤1,E1来自步骤2)

把所有这些结合在一起就得到了长公式和我显示的第一个公式,但是输出是正确的。