跳至主要内容

如何从 Excel 单元格中删除非数字字符?

Author: Mandyzhou Last Modified: 2025-05-08

Excel 用户经常遇到包含数字和非数字字符混合的数据,例如字母或符号。清理这些数据对于进一步的分析或报告至关重要。在本指南中,我们将探讨四种从 Excel 单元格中删除非数字字符的方法,确保您的数据干净且可用。

A screenshot of Excel data with non-numeric characters removed

从 Excel 单元格中删除非数字字符

在本节中,我们将介绍四种有效的方法来从 Excel 单元格中删除非数字字符,针对不同版本的 Excel 和用户的专业水平量身定制。


通过使用公式从 Excel 单元格中删除非数字字符

要从 Excel 单元格中删除非数字字符,您可以使用基于 TEXTJOIN 函数的公式。

步骤 1:选择一个单元格并应用公式

在 C2 单元格中,应用以下公式,并按 Enter 键获取结果。

=TEXTJOIN("",TRUE,IFERROR(MID(A2,SEQUENCE(LEN(A2)),1)+0,""))+0
A screenshot showing the TEXTJOIN formula applied to remove non-numeric characters in Excel
TEXTJOIN 函数适用于 Excel 2019 及更高版本。而 SEQUENCE 函数适用于 Excel 2021 及更高版本。如果您希望在所有 Excel 版本中以更简单的方式实现目标,请参考 通过使用 Kutools AI 助手 方法或 通过使用一个神奇工 方法,我们将在接下来介绍。
步骤 2:将公式应用于其他单元格并获取所有结果

计算出初始结果后,拖动公式单元格(在此示例中为 C2)的填充柄向下应用公式到其他单元格,扩展至 C8 单元格。

A screenshot showing the results after applying the TEXTJOIN formula to remove non-numeric characters
公式解释:
  1. LEN(A2):查找 A2 中字符串的长度。
  2. SEQUENCE(LEN(A2)):创建一个从 1 到字符串长度的数字列表。每个数字对应字符串中的一个字符位置。
  3. MID(A2, SEQUENCE(LEN(A2)), 1):每次从 A2 中提取一个字符。
  4. +0:尝试将每个字符转换为数字。如果某个字符不是数字,则会导致错误。
  5. IFERROR(..., ""):如果转换字符导致错误(意味着它不是数字),则将其替换为空字符串。
  6. TEXTJOIN("", TRUE, ...):将所有字符重新组合成一个字符串,跳过任何空字符串(已删除的非数字字符)。
  7. 最后的 +0:将最终的数字字符串转换回数值。

通过使用 Kutools AI 助手从 Excel 单元格中删除非数字字符

Kutools for Excel 的“AI 助手”功能在清理 Excel 表格时提供了无与伦比的便利,可以轻松删除非数字字符。只需您简单的输入,这个强大的工具就会接管,自动分析并执行所需任务,无需复杂的公式。这不仅加快了处理速度,还消除了出错的可能性,显著提高了您的生产力和准确性。“AI 助手”将可能繁琐的手动任务转变为无缝、高效的运作,成为任何希望优化工作流程的 Excel 用户的必备工具。

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

下载并安装 Kutools for Excel 后,点击“Kutools AI ”>“AI 助手 ”打开“Kutools AI 助手 ”窗格。

1. 在“Kutools AI 助手”窗格中,像下面的文本一样在聊天框中输入您的请求,并点击 A screenshot of the Send button in Kutools AI Aide pane “发送”按钮或按 Enter 键提交您的查询。

“请帮我从 Excel 的 A2:A8 区域中删除非数字字符。”

2. 一旦工具分析完您的输入,点击“执行”按钮。Kutools AI 助手将利用其 AI 技术处理您的请求,并直接在 Excel 中应用结果。

A GIF showing how Kutools AI Aide removes non-numeric characters from Excel cells

提示:要使用此功能,您应先安装 Kutools for Excel,请 点击下载 Kutools for Excel 现在。


通过使用一个神奇工具从 Excel 单元格中删除非数字字符

为了通过删除指定区域内的非数字字符高效地清理数据,Kutools for Excel 的“删除特定字符”工具提供了一键解决方案。这个强大的工具简化了通常繁琐的过程,使您可以快速消除数据中的不需要的字符,确保立即获得更干净、更可用的结果。

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

1. 选中要删除非数字字符的区域后,点击“Kutools”>“文本”>“删除特定字符”。

2. 在“删除特定字符”对话框中,勾选“非数字”选项,并点击“确定”。然后立即从选中区域中删除非数字字符。

A GIF demonstrating Kutools Remove Characters tool in Excel

提示:要使用此功能,您应先安装 Kutools for Excel,请 点击下载 Kutools for Excel 现在。


通过使用 VBA 代码从 Excel 单元格中删除非数字字符


要通过 VBA 代码从范围中删除非数字字符,请按照以下步骤操作:

步骤 1:打开 VBA 模块编辑器并复制代码
  1. 在 Excel 中按住“ALT + F11”键,打开“Microsoft Visual Basic for Applications”窗口。
  2. 点击“插入”>“模块”,然后在模块窗口中复制并粘贴以下代码。
  3. VBA 代码:删除所有非数字字符
    Sub RemoveNotNum()
    'Updateby Extendoffice
    Dim Rng As Range
    Dim WorkRng As Range
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    Set WorkRng = Application.Selection
    Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
    For Each Rng In WorkRng
        xOut = ""
        For i = 1 To Len(Rng.Value)
            xTemp = Mid(Rng.Value, i, 1)
            If xTemp Like "[0-9]" Then
                xStr = xTemp
            Else
                xStr = ""
            End If
            xOut = xOut & xStr
        Next i
        Rng.Value = xOut
    Next
    End Sub
    
步骤 2:执行代码
    1. 粘贴此代码后,请按 F5 键运行此代码。
    2. 在弹出的 KutoolsforExcel 对话框中,选择要从中删除非数字字符的范围,然后点击确定。

A screenshot of the VBA code selecting range for removing non-numeric characters in Excel

结果

然后选中范围内的所有非数字字符都被删除。

A screenshot showing all non-numeric characters in the selected range are removed

如果您的数据包含带小数点的数字,您可以使用以下 VBA 脚本:
    1. Sub RemoveNotNum()
      'Updateby Extendoffice
      Dim Rng As Range
      Dim WorkRng As Range
      On Error Resume Next
      xTitleId = "KutoolsforExcel"
      Set WorkRng = Application.Selection
      Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
      For Each Rng In WorkRng
          xOut = ""
          For i = 1 To Len(Rng.Value)
              xTemp = Mid(Rng.Value, i, 1)
              If xTemp Like "[0-9.]" Then
                  xStr = xTemp
              Else
                  xStr = ""
              End If
              xOut = xOut & xStr
          Next i
          Rng.Value = xOut
      Next
      End Sub
      
    2. 结果

A screenshot of the VBA code results showing non-numeric characters removed from data in Excel