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

如何用Power Query筛选仅保留含文本和数字列中的数字

提取混合文本数字列中的数字内容

下面是不同工具下的实现方法:

Excel

提取所有数字字符(Excel 365/2021)

使用动态数组公式,自动提取单元格中所有数字并拼接:

=TEXTJOIN("",TRUE,FILTER(MID(A1,SEQUENCE(LEN(A1)),1),ISNUMBER(MID(A1,SEQUENCE(LEN(A1)),1)*1)))

兼容旧版Excel(需按Ctrl+Shift+Enter执行数组公式)

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

Python Pandas

通过正则表达式提取所有数字字符并拼接成字符串:

import pandas as pd

# 假设df是你的数据框,'混合列'是目标列
df['仅数字列'] = df['混合列'].str.findall(r'\d').str.join('')
# 若需转为数值类型,可追加以下步骤
df['仅数字列'] = pd.to_numeric(df['仅数字列'], errors='coerce')

SQL

MySQL/MariaDB

用正则替换去掉所有非数字字符:

SELECT REGEXP_REPLACE(`混合列`, '[^0-9]', '') AS `仅数字列` FROM `你的表名`;

SQL Server 2017+

支持正则替换直接处理:

SELECT REGEXP_REPLACE(混合列, '[^0-9]', '') AS 仅数字列 FROM 你的表名;

旧版SQL Server(无正则支持)

通过TRANSLATE批量替换非数字字符:

SELECT REPLACE(
    TRANSLATE(混合列, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+-=', REPLICATE(' ', 64)),
    ' ', ''
) AS 仅数字列 FROM 你的表名;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 07:50:50