2016-04-23 66 views
0

我必须在Excel中输入超过300个帐号。每个人都有18位数字。我会举一个例子。Excel中的自定义格式号码

200-0000000000123-45

所以,前三位从来没有000,有时4-16数字都是不同的,并在结束时(1-7不同的号码例如有时他们前导零,有时第4到第16位是0000000000123或0000000000345(在这里我只输入3,我希望excel增加零),有时3123123123125(在这种情况下,我将不得不输入全部18位数字))。后两项是强制性的。

那么,如何在格式单元格对话框中设置excel自定义格式来显示我需要的?我试图把这样的东西放在那里: Example image 但我不知道如何在开始时保留这3个第一位数......任何帮助?是否有可能告诉excel将前三位数字保留在左侧,并在中间添加零位?

谢谢。

+1

您可能需要使用VBA一个worksheet_change事件联系起来。 –

+0

你可以在一列中输入前三位,其余的在第二列中,并将它们连接在一起作为第三列中的字符串? –

+0

您是否总是将它们输入三个带连字符的分组中,如在图像中的A1中所示?如果不是,请修改您的问题以提供您想要执行的更有用的规范。 –

回答

0

您可以使用公式而不是自定义格式。把这样的事情在CEL B1:

=LEFT(A1,4)&REPT("0",13-LEN(MID(A1,5,LEN(A1)-7)))&RIGHT(A1,LEN(A1)-4) 

的200-123-45在A1单元格的值)会给200-0000000000123-45在B1单元格中。 前三位数字,最后两位数字和两个连字符是强制性的。

2

自定义数字格式并不在此规定是可行的 您可以使用一个公式与细胞

=IF(LEN(B5)>10,B5,LEFT(B5,4)&REPT("0",10)&RIGHT(B5,6)) 
+0

这仅适用于两个连字符之间恰好有三位数字的情况。我建议的公式在连字符之间形成0到13位数字。 –