将前导零/ 0添加到现有Excel值到一定长度

Mar*_*k A 295 excel padding

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

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

"23" should be "0023", 
"245" should be "0245", and
"3829" should remain "3829"
Run Code Online (Sandbox Code Playgroud)

问题:是否有Excel公式将这些0重新填充到这些值上,以便它们都是四个字符?

注意:这类似于古老的邮政编码问题,其中新英格兰地区的邮政编码得到他们的前导零下降,你必须重新添加它们.

GSe*_*erg 498

=TEXT(A1,"0000")
Run Code Online (Sandbox Code Playgroud)

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

  • @shadow Excel的十六进制数字是一个字符串,而不是一个数字.所以把它当作一个字符串处理:`= RIGHT("0000"+ A1,4)`. (10认同)
  • @shadow,[DEC2HEX](http://www.excelnuggets.com/Engineering/Functions/DEC2HEX)采用地方论证.所以`= DEC2HEX(HEX2DEC(A1),4)`适用于填充十六进制数. (8认同)
  • @mcs他们没有改变语法.您的Excel版本[碰巧使用`;`](https://support.microsoft.com/en-us/kb/2853427)作为参数分隔符,它从您的Windows语言设置中获取. (8认同)
  • 我的天啊!完善!你每天都学到新东西.我甚至有多本狗耳的Excel书籍,从未遇到过这种情况 - 将来我会使用基于Excel的邮政编码数据. (4认同)

Mos*_*ses 77

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

  1. 突出显示要设置样式的列/数组.
  2. 单击ctrl+ 1或格式 - >格式化单元格.
  3. 在数字选项卡中,选择自定义.
  4. 将自定义格式设置为000#.(零零零#)

请注意,这实际上并不会更改单元格的值.它仅显示工作表中的前导零.

  • 如果不需要保留原始单元格之前的前导零,但如果需要在其他任何地方使用字符串,则无效.它会使单元格显示为0004,01032,0284但是如果你试图将字符串组合在一个单独的单元格中,它会显示,例如,4-1032-284而不是所需的0004-01032-0284 (7认同)
  • 作为参考,这应该是'0000`,而不是'000 #`.否则它不适用于0. (7认同)
  • 对于那些有我上述问题的人,答案是将#(hash)换成0(零).当没有值时#给你没有字符,但是当没有值时0给你零!有道理并且效果很好:$ 0.0 ,,"M" (2认同)

Mon*_*ded 16

当我意识到免费DEC2HEX()提供这个功能时,我点击此页面尝试填充十六进制值. 您只需要添加第二个参数.例如,捆扎转成=> => ...等

120C
DEC2HEX(12,2)0C
DEC2HEX(12,4)000C


Pro*_*ega 9

我不确定这是否是Excel 2013中的新功能,但如果您右键单击该列并说"特殊",则实际上有一个预定义的邮政编码选项和邮政编码+ 4.魔术.

在此输入图像描述

  • 很棒的建议和更新.需要给微软一个-1来鼓励任何人在电子表格中存储SSN. (5认同)

zgi*_*rod 7

我知道这是在不久前回答的,但是这里没有提到我很惊讶的简单解决方案。

=RIGHT("0000" & A1, 4)
Run Code Online (Sandbox Code Playgroud)

每当我需要垫的时候,我都会使用上面的东西。我个人认为它是最简单的解决方案,更易于阅读。