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

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

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

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

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


=TEXT(A1,"0000")

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


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

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

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


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


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


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


我知道这个问题在一段时间前就已经有了答案,但我很惊讶这里没有提到一个简单的解决方案。

=RIGHT("0000" & A1, 4)

每当我需要垫,我使用类似上面的东西。我个人认为这是最简单的解决方案,也更容易阅读。


即使这样也能很好地工作

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

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


假设要填充的数字在单元格A1中,并且“填充零的数量”为4,

e.g.

"23"应该是"0023" “245”应该是“0245”,并且 “3829”应该保持“3829”

then

=TEXT(A1,REPT("0",4))