tha*_*s.a 14 regex extract google-sheets array-formulas google-sheets-formula
在谷歌电子表格中,我需要一个公式来提取包含在任意字符串中的所有数字(0到9),该字符串可能包含任何可能的字符,并将它们放入单个单元格中.
示例(输入 - >输出)
d32????????fe9j.r/3-fF66 -> 329366
h01j2j3jFxF$$4j5j6j7j8j9 -> 0123456789
Wik*_*żew 32
您可以使用\D+正则表达式替换所有非数字字符,并使用空字符串替换
=REGEXREPLACE(A11,"\D+", "")
或者将其转换为数字:
=VALUE(REGEXREPLACE(A11,"\D+", ""))
这些适用于整数,小数和负数:
=REGEXEXTRACT(A2,"-*\d*.?\d+")
=VALUE(REGEXEXTRACT(A2,"-*\d*.?\d+"))
如果某些源单元格可能仅包含数字,则首先将值转换为文本,然后使用正则表达式替换会更安全。否则会产生错误。
结果为文本
=REGEXREPLACE(TO_TEXT(C1),"\D+", "")
结果为数字
=VALUE(REGEXREPLACE(TO_TEXT(C1),"\D+", ""))
整列相同
=ARRAYFORMULA(IF(LEN(C1:C), VALUE(REGEXREPLACE(TO_TEXT(C1:C),"\D+", ""))))