Excel - 可变长度数字中可变数量的前导零?

时间:2012-10-03 21:30:08

标签: excel formatting numbers zero

多年来,我们的会员号码的格式已多次改变,例如00008,9538,746,0746,00746,100125以及各种其他排列有效,独特且需要保留。从我们的数据库导出到批量更新所需的自定义Excel模板中会删除前导零,这样00746和0746都会被截断为746.

插入撇号技巧或格式化为文本在我们的情况下不起作用,因为我们在Excel中打开它时数据似乎已经改变了。格式化为zip将不起作用,因为我们的长度小于五位的有效数字不能添加零。而且我对“自定义”格式化没有任何好运,因为这似乎要求向数字添加相同数量的前导零,或者为每个数字添加足够的零以使它们具有相同的长度。

任何线索?我希望有一些方法可以将Excel设置为仅仅采用它给出的内容而不管它,但似乎并非如此!我将不胜感激任何建议或意见。非常感谢大家!

更新 - 感谢大家的帮助!这里有一些更具体的细节。我们使用的是第三方会员管理应用程序 - 我们无法直接访问数据库,我们需要使用他们的“查询构建器”工具来获取我们想要批量更新的数据。然后我们使用他们的“模板”格式导出,称为XLSX,但幕后必须有一些东西,因为如果我们尝试导入常规的旧Excel,我们会收到错误。只有他们的模板有效。

数据在数据库中格式正常,因为所有数字都在基于Web的管理工具中正确显示。此外,如果我导出为CSV,将其保存为.txt并将其导入Excel,数字显示正常。

我所做的与ooo的解释类似 - 我导出的模板数字不正确,然后导出为CSV / txt,并将这些数字复制/粘贴到模板中并重新导入。我没有得到错误,这是我猜的,但我不知道它是否在午夜之后才成功! : - (

4 个答案:

答案 0 :(得分:5)

假设数据库中的数据没有损坏,请尝试从数据库导出到csv或文本文件。

然后可以执行以下操作以确保正确格式化导入

带逗号分隔符的文本文件:

enter image description here

在Excel数据/来自文本和选定的分隔符中,然后是

enter image description here

enter image description here

导入向导的第3步。对于您想要作为文本的每个列/字段,突出显示该列并选择文本

enter image description here

然后应将数据作为文本放置并保留前导零。

enter image description here

同样,所有这些都假设数据库包含未损坏的数据,您可以导出简单的文本或csv文件。它还假设您拥有Excel 2010,但它可以在所有版本中进行微小的变化。

答案 1 :(得分:3)

希望@ ooo的答案适合你。我提供的另一个答案主要是出于提供信息的目的,并且不想处理评论的限制。

有一点需要理解的是,Excel将“数字化”数据视为实际数字非常积极。如果您通过双击打开CSV并让Excel执行其操作(而不是使用ooo的仔细程序),那么这些数字仍然会以数字形式出现(没有前导零)。正如您所发现的,抵消这种情况的一种方法是在您的数据上添加明确的非数字字符(在Excel获得它的肮脏之前),真正说服 Excel它正在处理的是文本。

现在,如果上传到他们软件的内容是以.xlsx结尾的文件,则很可能 当前的Excel格式(Excel 2007使用的压缩XML文档)然后)。我认为“常规旧Excel”是指.xls(在“兼容模式”下仍适用于较新的Excel)。

因此,如果您到目前为止所尝试的内容不起作用,在使用字符添加到数据末尾之前仍有一些途径需要探索。 (我会根据需要更新这个答案。)

答案 2 :(得分:2)

你和撇号一起走在正确的轨道上。 您需要在将文件添加到文件时将其作为文本存储在Excel中。

您用什么来创建原始excel文件/从数据库导出? 这可能是您需要关注出口的地方。

例如,一种方法是您可以修改数据库导出以在数字前包含'符号前缀,以便excel知道将它们显示为文本。

答案 3 :(得分:0)

我使用公式=text(cell,"# of zeros of the field")添加前面的零。

示例,单元格C2 12345 ,我需要它 10 个字符。我会放=text(c2,"0000000000")

结果将是 0000012345

相关问题