保留前导零和大数

应用对象
Microsoft 365 专属 Excel Microsoft 365 Mac 版专属 Excel Excel 2024 Excel 2024 for Mac Excel 2021 Excel 2019 Excel 2016

你是否曾经在 Excel 导入或输入过包含前导零(如 00123)或大数(如 1234 5678 9087 6543)的数据? 例如,社会安全号码、电话号码、信用卡卡号、产品代码、帐号或邮政编码。 Excel 会自动删除前导零,并将大数转换为科学记数法(如 1.23E+15),以便公式和数学运算可以对它们起作用。 本文介绍如何将数据保留为原始格式,Excel 将原始格式视为文本。

设置自动数据转换

重要

此功能在 Microsoft 365 专属 Excel、Microsoft 365 Mac 版专属 Excel、Excel 2024、Excel 2024 for Mac 中可用。

使用 Excel 的 自动数据转换 功能更改 Excel 对于以下自动数据转换的默认行为:

  • 从数字文本中删除前导零并转换为数字。
  • 将数值数据截断为 15 位精度,并转换为以科学记数法显示的数字。
  • 将字母“E”周围的数值数据转换为科学记数法。
  • 将连续的字母和数字字符串转换为日期。

有关详细信息,请参阅 设置自动数据转换

导入文本数据时将数字转换为文本

导入数据时,使用 Excel 的“获取 & 转换 (Power Query) ”体验将单个列的格式设置为文本。 在本例中,我们要导入文本文件,但从其他源(如 XML、Web、JSON 等)导入的数据的数据转换步骤相同。

  1. 选择“数据”选项卡,然后选择“获取数据”按钮旁边的“从文本/CSV”。 如果看不到“获取数据”按钮,请转到“从文件>从文本新查询>”并浏览到文本文件,然后按“导入”

  2. Excel 会将数据加载到预览窗格中。 按预览窗格中的“编辑”加载查询编辑器

  3. 如果任何列需要转换为文本,请单击列标题选择要转换的列,然后转到主页>转换>数据类型>选择文本。

    Power Query - 转换为文本后的数据

    提示

    可以使用 Ctrl+左键单击选择多个列。

  4. 接下来,在“更改列类型”对话框中选择替换当前列,Excel 会将所选列转换为文本。

    获取 & 转换 > 将数据转换为文本

  5. 完成后,选择 关闭 & 加载,Excel 会将查询数据返回到工作表。
    如果将来数据发生更改,可转到 “数据>刷新”,Excel 将自动更新数据,并为你应用转换。

使用自定义格式保留前导零

如果由于其他程序不将其用作数据源而想仅在工作簿内解决问题,则可以使用自定义格式或特殊格式来保留前导零。 这适用于少于 16 位的数字代码。 此外,您可以使用破折号或其他标点符号来格式化数字代码。 例如,若要使电话号码更具可读性,可以在国际代码、国家/地区代码、区号、前缀和最后几个数字之间添加破折号。

数字代码 示例 自定义数字格式
社交
安全性
012345678 000-00-0000
012-34-5678
手机 0012345556789 00-0-000-000-0000
00-1-234-555-6789
postal
代码
00123 00000
00123

步骤 

  1. 选择要设置格式的单元格或单元格区域。

  2. Ctrl+1 加载“ 设置单元格格式 ”对话框。

  3. 选择“ 数字 ”选项卡,然后在 “类别 ”列表中选择 “自定义 ”,然后在 “类型 ”框中键入数字格式,例如 000-00-0000 (对于社会安全号码代码)或 00000 (对于五位数的邮政编码)。

    提示

    也可以选择 特殊,然后选择邮 政编码邮政编码 + 4电话号码社会保障号码

    查找有关自定义代码的详细信息,请参阅 创建或删除自定义数字格式

    注意

    这不会还原在格式化之前删除的前导零。 它仅影响应用格式后输入的数字。

使用 TEXT 函数应用格式

可以使用数据旁边的空列,并使用 TEXT 函数 将其转换为所需的格式。

数字代码 示例 (在单元格 A1 中) TEXT 函数和新格式
社交
安全性
012345678 =TEXT (A1,“000-00-0000”)
012-34-5678
手机 0012345556789 =TEXT (A1,“00-0-000-000-0000”)
00-1-234-555-6789
postal
代码
00123 =TEXT (A1,“00000”)
00123

信用卡卡号向下舍入

Excel 的最大精度为 15 位有效位数,这意味着对于包含 16 位或更多位数的任何数字(例如卡号),超过 15 位数字的任何数字都将舍入为零。 对于 16 位或更大的数字代码,必须使用文本格式。 为此,可以执行以下两个操作之一:

  • 将列的格式设置为文本
    选择数据区域并按 Ctrl+1 启动“ 设置单元格格式 ”对话框。 在 “数字 ”选项卡上,选择 “文本”

    注意

    这不会更改已输入的数字。 它仅影响应用格式后输入的数字。

  • 使用撇号字符
    可以在数字前面键入撇号 (') ,Excel 会将其视为文本。

返回页首

需要更多帮助吗?

你随时可以在 Excel 技术社区 中咨询专家,或在 社区中获取支持。