关于如何在导入到Excel或从Excel导出时防止前导零被剥离,SO有很多很多问题和质量答案。但是,我已经有了一个电子表格,其中的值被截断为数字,实际上,它们应该作为字符串处理。我需要清理数据并把前导零加回去。

有一个字段应该是四个字符,前导零将字符串填充为四个字符。然而:

"23" should be "0023", 
"245" should be "0245", and
"3829" should remain "3829"

问:有没有一个Excel公式把这些0填充到这些值上,使它们都是四个字符?

注意:这类似于古老的邮政编码问题,其中新英格兰地区的邮政编码的前导零被删除,您必须将它们添加回来。


当前回答

=TEXT(A1,"0000")

然而,文本函数能够做其他花哨的东西,如日期格式化,以及。

其他回答

我不确定这是否是Excel 2013中的新功能,但如果你右键单击该列并选择“Special”,实际上有一个预定义的ZIP Code和ZIP Code + 4选项。魔法。

如果您使用自定义格式,并需要在其他地方连接这些值,您可以复制它们并粘贴特殊—>值在工作表的其他地方(或在不同的工作表),然后连接这些值。

当我意识到DEC2HEX()免费提供了这个特性时,我试图填充十六进制值。 您只需要添加第二个参数。例如,把12转到0C Dec2hex (12,2) => 0c Dec2hex (12,4) => 000c ... 等等

更有效(不那么突兀)的方法是通过自定义格式。

突出显示要设置样式的列/数组。 单击ctrl + 1或Format ->格式化单元格。 在“号码”页签中,选择“自定义”。 自定义格式设置为000#。(零零零#)

注意,这实际上并不会改变单元格的值。它只显示工作表中的前导零。

即使这样也能很好地工作

REPT(0,2-LEN(F2)&F2

其中2是数字总数,对于0 ~ 9 ->,它将显示00到09休息将不添加任何内容。