【问题标题】:How to prevent automatic truncation of leading zeros in Excel cell如何防止自动截断 Excel 单元格中的前导零
【发布时间】:2019-07-16 19:40:21
【问题描述】:

如果我粘贴04562,它会自动截断前导零并将其存储为4562

我希望它把它存储为04562

【问题讨论】:

    标签: excel formatting


    【解决方案1】:

    如果您使用 MS Excel 编辑需要存储前导零数字的单元格,只需格式化并将单元格内容定义为 TEXT。如果您以编程方式存储它,则可以将值放在引号 '' 中。

    更新

    我刚刚注意到,如果我转到“格式化单元格”并选择自定义格式并将格式设置为 0000,我在单元格中输入的任何数字都小于 4 位,它仍然保持 4以'0'开头的数字长度,如0001、0099、0120、9999

    【讨论】:

    • 如何将格式设置为文本。请帮助我是 excel 的初学者
    • 您还可以在数字格式对话框的自定义部分中格式化为邮政编码。
    • 如果你有很长的数字,比如 1,33444E15 ,它就不起作用,如果你这样做,那么你会得到文本“1,33444E15”
    • 即使您的列设置为 TEXT,更改数据使其看起来像数字的查找和替换仍会触发 Excel 删除前导零,例如用 01B 中的空字符串替换 B 会将其更改为 1,而不是 01。Excel 很糟糕,小心..
    【解决方案2】:

    虽然所有这些都是将数字转换为文本以便保留前导零的准确解决方法,但这并不是问题的答案。

    您的问题的答案是,如果您想要一个在 Excel 中带有前导零的数字,您不能拥有它 - 至少在导入期间是这样。

    Microsoft 开发人员出于某种原因构建了 Excel 以将 03 读取为数字并截断前导零,结果为 3。没有办法阻止这种情况。

    很遗憾,因为所有解决方法都假定您知道哪些列的值可能带有前导零,这样您就可以采取措施*事后*来尝试修复您的数据。

    顺便说一句,Google 表格也做同样的事情。

    所以简短的回答是,没有电子表格应用程序(至少我知道),您可以在其中读取可能包含 00453 作为数字的 csv 文件并将其导入为 00453 而不是 453 .

    【讨论】:

    • 你说的是导入。关于从 csv 文件导入,我相信可以保留零。在其中一个导入步骤中,您可以选择列数据格式。如果您选择“文本”,则会保留前导零。
    • 另外,这个问题并没有询问关于从 CSV 导入的问题。所以你的答案真的不是对这里提出的问题的答案。
    【解决方案3】:

    如果您只是双击一个 csv 文本文件将其打开,Office 2010 将打开它并截断所有前导零,因为默认情况下它对每一列进行常规格式化。相反,您可以导入文件:单击“数据”选项卡-“获取外部数据”选项包括“从文本”-打开一个向导,您可以在其中标记要导入的文件,预览它,并定义格式任何包含前导零作为“文本”的列。以这种方式导入时,会保留前导零。

    【讨论】:

    • 这是最好的答案。导入时,您需要单击要设置为文本的列。哇,这真是令人沮丧的经历!
    【解决方案4】:

    单击单元格,然后在“主页”选项卡的“数字”组中,单击“数字”旁边的对话框启动器按钮图像。

    在“类别”列表中,单击“自定义”,然后在“类型”框中输入数字格式,例如 000-00-0000 用于社会安全号码代码,或 00000 用于五位数邮政编码。

    https://support.office.com/en-us/article/Keep-leading-zeros-in-number-codes-1bf7b935-36e1-4985-842f-5dfa51f85fe7

    【讨论】:

      【解决方案5】:

      您可以使用以下格式保存它。

      在excel中可以

      1) 通过选择适当的单元格,右键单击,选择“设置单元格格式”,将格式设置为“文本”。然后在“数字”选项卡下,选择“文本”。任何时候输入一个数字,它都会被读取为文本

      2) 在任何数字前加上撇号 ('),Excel 将“按原样”接受它

      如果您使用的是 VBA,您可以执行以下操作

      1) 选择需要格式化的单元格并更改数字格式选项

      Range("A1").NumberFormat = "@"

      当您读取数据时(从 Excel 中的单元格或从 VBA),它将包含输入的任何前导零。

      【讨论】:

        【解决方案6】:

        问题在于实际存储的值与显示的值...所有这些表示“修复”都没有解决存储值中前导零丢失的问题。

        因此,如果您在单元格中输入值或导入的最终结果相同,则无论单元格上的格式限制如何,您都无法在存储的值中保留前导零。

        【讨论】:

          【解决方案7】:

          你也可以在你的值前面加上一个',尽管这会标记单元格,直到你把它变成一个文本字段。

          【讨论】:

          • 这将在手动输入文本时起作用。但是粘贴的时候,用康看的解决方案就可以了。
          【解决方案8】:

          我认为对于一些可能需要更多帮助来寻找选择这些东西的人来说,逐步进行可能会有所帮助。

          1. 单击/突出显示您需要的一个或多个正方形。

          2. 留在顶部的Home 标签上。一直到右侧,在右侧的第二个框中,有一个选项,上面写着Format。点击那个。

          3. 一直点击底部的Format Cells...。第一个标签应该是Number。在Number 选项卡上,有一个选项显示Text。点击它。现在,按底部的OK,完成。

          【讨论】:

            【解决方案9】:

            如果您要输入的金额有固定位数,例如 5 位数的邮政编码,那么您可以将自定义格式应用到此单元格,掩码为:00000。有了这个,无论你输入什么数量,长度不超过5位,都会保留前导零。

            1. 右键单击要格式化的单元格。
            2. 单击单元格格式。
            3. 选择数字标签。
            4. 点击自定义选项。
            5. 单击右侧列表框中列出的任何选项。
            6. 点击类型texbox,并用“00000”覆盖其内容。
            7. 点击确定。

            【讨论】:

              【解决方案10】:

              这是我最好和最简单的解决方案。因为如果您已经输入了数据,Excel 将更改数字。仅当您在 更改格式后输入时才有效。

              1. 添加新列
              2. 突出显示列并通过右键单击和格式化单元格将格式更改为 TEXT
              3. 记下您的邮政编码或数字并复制它
              4. 粘贴到记事本中(摆脱格式化)
              5. 复制记事本数据并粘贴到新的 Excel 列中

              【讨论】:

                【解决方案11】:

                我不知道这是否是完美的解决方法,但我第一次尝试并成功了。

                在左侧单元格中,您看不到前导 0,我想添加前导 0。解决方法是使用公式="0"&A3(Cell number)

                (记得设置你的,它应该可以完美地工作,见下面的例子。

                【讨论】:

                  【解决方案12】:

                  如果您要导入/打开具有前导零的 .csv 文件,请使用 Open Office 或 Libre Office。 当您打开文件时,它将显示一个对话框来指定诸如列分隔符之类的内容。您还可以选择其中一列并将类型指定为“文本”,这将保留前导零。

                  如果您随后将其保存为 .xlsx 文件,则可以使用 Excel 打开并保留前导 0。

                  似乎应该有一种方法可以在导入 Excel 时指定它,但我找不到它。

                  【讨论】:

                    【解决方案13】:

                    在以零开头的数字之前添加撇号将保留完整的数字,但不会添加撇号。例如:如果您的号码是 08753,除非您输入 '08753,否则 Excel 会将数字截断为 8753。然后 Excel 将用 08753 填充单元格。简单!

                    【讨论】:

                      【解决方案14】:

                      许多人在上面说过,这不是一件容易的事。这是一个建议。

                      假设您的错误邮政编码(没有前导 0)在 A 列中。

                      1. 插入一个虚拟列,让我们使用 B。
                      2. 在 B 列输入公式 =A1*1 并向下复制以捕获所有 zip。 执行此操作后,您应该会看到前导零,但是您不是 完成的。它们仍然不会被读取。
                      3. 复制 B 列,然后将 B 列的内容粘贴到新的 工作簿。
                      4. 将新工作簿另存为 .csv 文件(保存时单击 “另存为类型”框并选择 CSV 逗号分隔)。
                      5. 打开您刚刚创建的新 CSV 文件。
                      6. 复制,然后将内容直接粘贴到您的垃圾上 邮政编码格式不正确。 (这意味着你不能拥有你的 粘贴位置已过滤,请记住这一点)。栏目内容 必须匹配,否则您的数据将不匹配。
                      7. 点击并选择您刚刚粘贴的所有邮政编码。
                      8. 选择格式单元格并选择:特殊,然后是邮政编码
                      9. 希望您的 zips 能够保持 5 位格式,并且应该是 能够在公式等中读取。

                      这是一个长期的修复,对我有用。希望它对你有用!

                      【讨论】:

                        猜你喜欢
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 2021-06-06
                        • 1970-01-01
                        • 1970-01-01
                        • 2019-08-12
                        • 1970-01-01
                        • 2015-03-04
                        相关资源
                        最近更新 更多