Google表格提取纯数字有四种方法:一、REGEXEXTRACT提取首个连续数字;二、SUBSTITUTE与REGEXREPLACE剥离非数字字符;三、SPLIT与JOIN提取多个独立数字并合并;四、REDUCE遍历逐字符提取全部数字。

如果您需要从包含字母、符号和数字的混合文本中提取纯数字,Google表格提供了多种函数组合方式实现该目标。以下是几种常用且有效的提取数字公式写法:
一、使用REGEXEXTRACT配合REPLACE提取首个连续数字
该方法适用于文本中仅需提取第一个出现的连续数字(如“订单号:A12345”中提取“12345”),利用正则表达式定位数字序列,并通过替换移除非数字字符。
1、在目标单元格输入公式:=REGEXEXTRACT(A1,"[0-9]+"),可提取A1中第一个连续数字字符串。
2、若需强制返回数值类型(而非文本),在外层嵌套VALUE函数:=VALUE(REGEXEXTRACT(A1,"[0-9]+"))。
3、当文本中无数字时,该公式将返回#N/A错误,可结合IFERROR处理:=IFERROR(VALUE(REGEXEXTRACT(A1,"[0-9]+")),0)。
二、使用SUBSTITUTE与REGEXREPLACE逐级剥离非数字字符
该方法适用于提取文本中所有数字并拼接成一个整数(如“价格¥299.5元+运费¥12”提取为“299512”),通过多次替换清除非数字字符,再用正则进一步规整。
1、先用REGEXREPLACE清除所有非数字字符(保留小数点):=REGEXREPLACE(A1,"[^0-9.]","")。
2、若需去除小数点,继续嵌套替换:=SUBSTITUTE(REGEXREPLACE(A1,"[^0-9.]",""),".","")。
3、最终转为数值:=VALUE(SUBSTITUTE(REGEXREPLACE(A1,"[^0-9.]",""),".",""))。
三、使用SPLIT与JOIN提取多个独立数字并合并
该方法适用于文本中存在多个分离的数字块(如“ID:102,批次:34,数量:7”),需分别提取后连接为单个字符串或求和。
1、用REGEXREPLACE将所有非数字字符(除逗号外)替换为逗号,便于分割:=REGEXREPLACE(A1,"[^0-9,]","")。
2、用SPLIT拆分数字并用JOIN合并:=JOIN("",SPLIT(REGEXREPLACE(A1,"[^0-9,]",""),","))。
3、若需对各数字求和,改用SUM与ARRAYFORMULA:=SUM(ARRAYFORMULA(VALUE(SPLIT(REGEXREPLACE(A1,"[^0-9,]",""),",")))))。
四、使用REDUCE与REGEXMATCH遍历提取全部数字(适用于新版本支持LAMBDA)
该方法适用于复杂结构文本(如含换行、多空格、嵌套括号),利用REDUCE逐字符判断是否为数字并累积拼接,灵活性高且容错性强。
1、在支持LAMBDA的Google表格中输入:=REDUCE("",SPLIT(A1,""),LAMBDA(acc,c,IF(ISNUMBER(FIND(c,"0123456789")),acc&c,acc)))。
2、结果为纯数字字符串,可加VALUE转为数值:=VALUE(REDUCE("",SPLIT(A1,""),LAMBDA(acc,c,IF(ISNUMBER(FIND(c,"0123456789")),acc&c,acc))))。
3、若原始文本为空或全无数字,该公式返回空字符串,可用IF判断补0:=IF(REDUCE("",SPLIT(A1,""),LAMBDA(acc,c,IF(ISNUMBER(FIND(c,"0123456789")),acc&c,acc)))="",0,VALUE(REDUCE("",SPLIT(A1,""),LAMBDA(acc,c,IF(ISNUMBER(FIND(c,"0123456789")),acc&c,acc)))))。










