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

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

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

任何线索? 我希望有一些方法来设置Excel只是采取什么,让它独自一人,但似乎并非如此! 我将不胜感激任何build议或意见。 非常感谢您提前!

更新 – 谢谢大家的帮助! 这里有一些更具体的。 我们正在使用第三方会员pipe理应用程序 – 我们不能直接访问数据库,我们需要使用他们的“查询生成器”工具来获取我们想要大量更新的数据。 然后,我们使用他们的“模板”格式(称为XLSX)进行导出,但是必须在幕后进行,因为如果我们尝试导入常规的旧Excel,就会出现错误。 只有他们的模板有效。

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

我所做的与ooo的解释类似 – 我用不正确的数字导出模板,然后导出为CSV / txt,并将这些数字复制/粘贴到模板中并重新导入。 我没有得到一个错误,这是我猜想的,但是我不能确定它是否成功,直到午夜之后! 🙁

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

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

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

在这里输入图像描述

在Excel数据/从文本和选定分隔,然后下一步

在这里输入图像描述

在这里输入图像描述

在导入向导的第3步中。 对于您希望作为文本的每个栏/栏,突出显示栏并select文本

在这里输入图像说明

数据应该被放置为文本并保留前导零。

在这里输入图像描述

同样,所有这些都假定数据库包含非损坏的数据,并且您可以导出简单的文本或csv文件。 它还假定您拥有Excel 2010,但是可以在所有版本中进行微小的更改。

希望@oo的答案适合你。 我主要是为了提供信息而提供另一个答案,并且不想处理对评论的限制。

有一点要明白的是,Excel将“数字外观”数据视为实际数字是非常积极的。 如果您要通过双击打开CSV并让Excel执行此操作(而不是使用ooo的小心操作),那么这些数字仍然会以数字forms出现(无前导零)。 正如你发现的,抵消这种情况的一种方法是在你的数据上附加明确的非数字字符(在Excel得到肮脏的手之前), 真正说服 Excel处理的是文本。

现在,如果上传到软件的文件是以.xlsx结尾的文件,那么很可能当前的Excel格式(由Excel 2007及更高版本使用的压缩XML文档)。 我想通过“常规的旧Excel”你的意思是.xls (它仍然适用于新版本的“兼容模式”的Excels)。

因此,如果您迄今为止所尝试的操作不起作用,那么在将字符附加到数据末尾之前,仍然有许多途径需要进一步研究。 (我会根据需要更新这个答案。)

你在撇号的正确轨道上。 您将需要将它们的数字作为文本存储在Excel文件中,并将其添加到文件中。

你用什么来创build从数据库中原来的Excel文件/导出? 这可能是你的重点需要关于你的出口。

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

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

例如,单元格C212345 ,我需要它是10个字符长。 我会把=text(c2,"0000000000")

结果将是0000012345