Google Sheets中用REGEXEXTRACT提取指定小数位数值的问题
修正Google Sheets正则提取公式方案
错误原因分析
你之前的公式里使用了\(.{5}\)这类写法,其中\(和\)是用来匹配文本中的实际括号字符,但你的单元格内容里并没有括号,这直接导致正则表达式无法匹配目标内容,出现匹配错误。
正确公式示例
1. 分两列提取结果(第一列存第一个数值,第二列存第二个)
=ArrayFormula(IF(A2:A9="",,REGEXEXTRACT(A2:A9, "(\d{1,3}\.\d{6}), (\d{1,3}\.\d{6})")))
- 正则说明:
(\d{1,3}\.\d{6}):第一个捕获组,匹配1-3位整数、小数点、6位小数,精准提取第一个目标数值,:匹配内容中的逗号+空格分隔符(\d{1,3}\.\d{6}):第二个捕获组,提取第二个目标数值
2. 同一列合并显示两个结果(用逗号分隔)
=ArrayFormula(IF(A2:A9="",,JOIN(", ", REGEXEXTRACT(A2:A9, "(\d{1,3}\.\d{6}), (\d{1,3}\.\d{6})"))))
3. 兼容整数部分超过3位的情况
如果你的数值整数部分可能有更多位数(比如4位及以上),可以把\d{1,3}替换为\d+(匹配任意位数的整数):
=ArrayFormula(IF(A2:A9="",,REGEXEXTRACT(A2:A9, "(\d+\.\d{6}), (\d+\.\d{6})")))
内容的提问来源于stack exchange,提问作者Osm
相关产品推荐
相关产品推荐

