从字符串 - 谷歌电子表格中提取数字

时间:2017-01-19 21:36:06

标签: regex google-sheets extract

在Google电子表格中,我需要一个公式来提取包含在任意字符串中的所有数字(0到9),这些字符串可能包含任何可能的字符,并将它们放入单个单元格中。

示例(输入 - >输出)

d32Ελληνικάfe9j.r/3-fF66 -> 329366
h01j2j3jFxF$$4j5j6j7j8j9 -> 0123456789

6 个答案:

答案 0 :(得分:18)

您可以使用\D+正则表达式替换所有非数字字符,并使用

替换空字符串替换
=REGEXREPLACE(A11,"\D+", "")

或将其转换为数字:

=VALUE(REGEXREPLACE(A11,"\D+", ""))

enter image description here

答案 1 :(得分:8)

这些与整数,小数负数一起使用:

=REGEXEXTRACT(A2,"-*\d*.?\d+")
=VALUE(REGEXEXTRACT(A2,"-*\d*.?\d+"))

regex negative decimals - google sheets function

答案 2 :(得分:2)

如果某些源单元格可能仅包含数字,则将值首先转换为文本,然后再进行正则表达式比较安全。否则会产生错误。

结果为文本

=REGEXREPLACE(TO_TEXT(C1),"\D+", "")

结果为数字

=VALUE(REGEXREPLACE(TO_TEXT(C1),"\D+", ""))

整列相同

=ARRAYFORMULA(IF(LEN(C1:C), VALUE(REGEXREPLACE(TO_TEXT(C1:C),"\D+", ""))))

enter image description here

答案 3 :(得分:0)

如果要提取小数点,可以使用regexextract:

=VALUE(REGEXEXTRACT(B4,"[0-9]*\.[0-9]+[0-9]+"))

提取数字,小数和2个有效数字的示例:

=VALUE(REGEXEXTRACT(A1,"[0-9]*\.[0-9]+[0-9]+"))

输出:

Extract just digits, decimal, and 2 significant digits

答案 4 :(得分:0)

数组公式变体:

=ARRAYFORMULA(IF(A1:A<>""; REGEXREPLACE(A1:A; "\D+"; )*1; ))

0

答案 5 :(得分:-1)

您可以执行查找和替换(编辑 - &gt;查找和替换),搜索正则表达式[^\d](任何不是数字)并替换为空。

enter image description here