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

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

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

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

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


当前回答

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

其他回答

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

=TEXT(A1,"0000")

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

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

=RIGHT("0000" & A1, 4)

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

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

e.g.

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

then

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

即使这样也能很好地工作

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

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