如何用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
相关产品推荐
相关产品推荐

