如果某个值具有一定长度,如何在Excel中向该值的开头添加0

如果某个值具有一定长度,如何在Excel中向该值的开头添加0,excel,Excel,我对excel函数不是很了解,但我希望这是我可以在excel电子表格中做的事情,而不是编写文本解析器来做这件事,并且必须将数据放回 我基本上希望在excel中执行此操作: 如果cellValueLength=4个字符或cellValueLength=9个字符,则cellValue=“0”+cellValue 对于奇怪的伪代码,我很抱歉,但我不知道如何才能清楚地传达我要完成的任务 单元格值也可以是字符串。事实上,我更希望它们都是字符串,因为Excel会自动将它们转换为数字,这在一开始就把事情搞砸了

我对excel函数不是很了解,但我希望这是我可以在excel电子表格中做的事情,而不是编写文本解析器来做这件事,并且必须将数据放回

我基本上希望在excel中执行此操作:

如果cellValueLength=4个字符或cellValueLength=9个字符,则cellValue=“0”+cellValue

对于奇怪的伪代码,我很抱歉,但我不知道如何才能清楚地传达我要完成的任务

单元格值也可以是字符串。事实上,我更希望它们都是字符串,因为Excel会自动将它们转换为数字,这在一开始就把事情搞砸了


如果您有任何建议,我们将不胜感激。

在“格式”菜单中,您应该能够将单元格格式化为数字,并按照您描述的方式进行设置


我希望这对你有帮助

作为评论的后续,这一条有效:

=IF(OR(LEN(A1)=4,LEN(A1)=9),"0","") & A1
如果要“就地”完成此操作,请选择单元格并运行此宏:

Sub PreZero()
    For Each r In Selection
        v = r.Text
        If Len(v) = 4 Then
            r.NumberFormat = "00000"
        End If
        If Len(v) = 9 Then
            r.NumberFormat = "0000000000"
        End If
    Next r
End Sub

在B1中说:
=IF(或(LEN(A1)=4,LEN(A1)=9),“0”,以及A1
?您是如何将文件导入excel的?如果您仍然拥有原始文件,可以尝试重新导入它。“数据导入向导”可以将数据格式化为纯文本和csv文件的文本,这样您就不会丢失前导零。@Simoco,谢谢,这正是我要找的。你应该把这个作为答案贴出来,这样我就可以接受了。Jerry我是用SQL得到的,但我知道很多时候,当涉及到数据、字符串解析和其他简单的东西时,SQL中的10行或使用编程语言的50行是SQL中的一行Excel@Adam你是说SQL中的数据已经是这样了?因为如果您从Data>Get Data from External Sources>from SQL Server导入它,您就不会遇到这个问题。另外,如果可以在SQL本身中修复它,我相信它会更好,因为excel有SQL没有的限制,比如记录的数量。@Simoco在SQL表中,字段是一个NVARCHAR,我编写了一个查询来使用server management studio检索它,因为它来自多个表,需要一些过滤。我将结果复制到Excel中。我忘了Excel试图将任何看起来像数字的东西自动格式化为数字,但在我注意到之前,我已经编辑了大部分电子表格。不过,感谢您的建议,我不知道您可以将数据从SQL表导入Excel。