Google 工作表 - 将单元格中的所有数字与文本相加,但不包括 URL's

Google sheets - sum all the numbers in a cell with text, but excluding URL's

我在 Google 表格电子表格中有一列包含文本和数字,还有 URL,我需要在另一列中汇总所有数字。由于这是客户想要使用的格式,因此不能将信息拆分为多个列。 因此,单元格(例如 A1)中的信息如下:

Facebook: 1500 followers  
https://facebook.com/user/AccountName/  
Twitter: 2000 followers  
https://twitter.com/AccountName/

现在,在 B1 中我有来自 here

的公式
=SUM(SPLIT(AE4,CONCATENATE(SPLIT(A1,".0123456789"))))

效果很好,除非 URL 有任何数字。例如上面的代码给了我 3500,这是正确的。但是如果 URL 有数字,比如 https://linkedin.com/user/a4df65b1,那么我会得到 3570,即 1500+2000+4+65+1。该公式将 URL 中的数字也相加。

我也尝试了以下代码:

=SUM(SPLIT(REGEXREPLACE(A1, "[^\d\.]+", "|"), "|"))

即使修改为仅包含空格之间的数字(因为在 URLs 中没有空格,我只想将空格之间的数字相加),如下所示:

=SUM(SPLIT(REGEXREPLACE(A1, "[^([:space:]\d[:space:])]", "|"), "|"))

两者都不起作用,因为它们在计算中也包含 URL 内的数字。

如何过滤掉 URL 或仅包含空格之间的数字?

假设文档中的 URL 一直到空格或字符串结尾,您可以使用

删除它们和带句点的非数字
=SUM(SPLIT(REGEXREPLACE(A1, "https?://\S*|[^\d.]", "|"), "|"))

参见regex demo

详情

  • https?://\S* - http,一个可选的 s://,然后是零个或多个非空白字符
  • | - 或
  • [^\d.] - 除数字和 ..
  • 以外的任何字符

在我看来你可以使用这个:

=SUM(SPLIT(A1," ")

您的字符串中的所有实数似乎在它们前后都有一个 space; SUM.

将忽略任何非实数分组