从字符串中提取数字 - Google 电子表格
Extract digits from string - Google spreadsheet
在 Google 电子表格中,我需要一个公式来提取包含在任意字符串中的所有数字(0 到 9),该字符串可能包含任何可能的字符并将它们放入单个单元格中。
示例(输入 -> 输出)
d32Ελληνικάfe9j.r/3-fF66 -> 329366
h01j2j3jFxF$j5j6j7j8j9 -> 0123456789
您可以使用 \D+
正则表达式替换所有 non-digit 个字符,并用
替换空字符串
=REGEXREPLACE(A11,"\D+", "")
或将其转换为数字:
=VALUE(REGEXREPLACE(A11,"\D+", ""))
您可以执行查找和替换(编辑 -> 查找和替换),搜索正则表达式 [^\d]
(不是数字的任何内容)并替换为空。
如果你想用小数点提取,你可以使用正则表达式:
=VALUE(REGEXEXTRACT(B4,"[0-9]*\.[0-9]+[0-9]+"))
提取数字、小数点和 2 位有效数字的示例:
=VALUE(REGEXEXTRACT(A1,"[0-9]*\.[0-9]+[0-9]+"))
输出:
数组公式变体:
=ARRAYFORMULA(IF(A1:A<>""; REGEXREPLACE(A1:A; "\D+"; )*1; ))
这些适用于整数、小数和负数:
=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+", ""))))
在 Google 电子表格中,我需要一个公式来提取包含在任意字符串中的所有数字(0 到 9),该字符串可能包含任何可能的字符并将它们放入单个单元格中。
示例(输入 -> 输出)
d32Ελληνικάfe9j.r/3-fF66 -> 329366
h01j2j3jFxF$j5j6j7j8j9 -> 0123456789
您可以使用 \D+
正则表达式替换所有 non-digit 个字符,并用
=REGEXREPLACE(A11,"\D+", "")
或将其转换为数字:
=VALUE(REGEXREPLACE(A11,"\D+", ""))
您可以执行查找和替换(编辑 -> 查找和替换),搜索正则表达式 [^\d]
(不是数字的任何内容)并替换为空。
如果你想用小数点提取,你可以使用正则表达式:
=VALUE(REGEXEXTRACT(B4,"[0-9]*\.[0-9]+[0-9]+"))
提取数字、小数点和 2 位有效数字的示例:
=VALUE(REGEXEXTRACT(A1,"[0-9]*\.[0-9]+[0-9]+"))
输出:
数组公式变体:
=ARRAYFORMULA(IF(A1:A<>""; REGEXREPLACE(A1:A; "\D+"; )*1; ))
这些适用于整数、小数和负数:
=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+", ""))))