You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量移除字符串中的所有非数字字符?

移除列中所有非数字字符的高效方法

不用逐个字符替换,不管是Excel这类办公工具还是编程场景,都有一次性批量处理的方案:

一、Excel场景

1. 数组公式法(无需VBA)

直接在目标单元格输入以下公式,Excel 2019及以后版本直接回车即可,旧版需按Ctrl+Shift+Enter:

=TEXTJOIN("",TRUE,IF(ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)),MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),""))

选中公式单元格下拉,就能批量处理整列——它会逐个提取字符、判断是否为数字,只保留数字字符并拼接成新字符串。

2. VBA自定义函数(适合大量数据)

按下Alt+F11打开VBA编辑器,插入模块后粘贴以下代码:

Function ExtractNumbers(rng As Range) As String
    Dim regEx As Object
    Set regEx = CreateObject("VBScript.RegExp")
    regEx.Global = True
    regEx.Pattern = "[^0-9]" ' 匹配所有非数字字符
    ExtractNumbers = regEx.Replace(rng.Value, "")
End Function

回到Excel,在目标单元格输入=ExtractNumbers(A1)并下拉,数据量越大这个方法效率越高。

二、编程场景(以Python/Pandas为例)

如果用代码处理表格数据,正则表达式可以一键整列清洗:

import pandas as pd
import re

# 假设df是你的数据框,original_column是需要处理的列
df['cleaned_column'] = df['original_column'].apply(lambda x: re.sub(r'\D', '', str(x)))

\D是正则表达式中匹配所有非数字字符的元字符,一行代码就能完成整列的非数字字符移除。

三、Google Sheets场景

类似Excel,用数组公式直接回车即可,下拉批量处理:

=TEXTJOIN("",TRUE,IF(ISNUMBER(--MID(A1,SEQUENCE(LEN(A1)),1)),MID(A1,SEQUENCE(LEN(A1)),1),""))

内容的提问来源于stack exchange,提问作者MrUnknown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 02:01:13