谷歌表格 - 求和包含文本的单元格中所有数字,但不包括URL

3
我在Google Sheets电子表格中有一列包含文本、数字和URL,我需要在另一列中将所有数字求和。由于这是客户想使用的格式,所以不能将信息拆分到多个列中。 因此,单元格(例如A1)中的信息如下:
Facebook: 1500 followers  
https://facebook.com/user/AccountName/  
Twitter: 2000 followers  
https://twitter.com/AccountName/

现在,在B1单元格中,我有来自这里的公式。
=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\.]+", "|"), "|"))

即使进行了修改,只包括空格之间的数字(因为在URL中没有空格,我只想添加空格之间的数字),如下所示:
=SUM(SPLIT(REGEXREPLACE(A1, "[^([:space:]\d[:space:])]", "|"), "|"))

由于它们在计算中也包含URL中的数字,因此两者都无法正常工作。

我该如何过滤掉URL或仅包括在空格之间的数字?


这两个答案有帮助吗? - Wiktor Stribiżew
2个回答

2

我认为你可以直接使用以下公式:

=SUM(SPLIT(A1," ")

你字符串中的所有实数似乎都会在它们前后有一个空格;而任何不是实数的分组都将被SUM忽略。


就是这样,再简单不过了。您可以在分割字符边缘添加 \n 以捕获行首或行尾的数字。干得好! - JvdV
谢谢,JvdV。正如我经常告诉人们的那样,我们只能根据我们看到的来判断。在给出的单个示例中,该模式暗示所有这样的单元格都将在数字前后有一个空格。但是,正如您所指出的,如果情况并非如此,那么添加一个换行代码和一个按每个拆分参数就足够了。 - Erik Tyler
谢谢,Erik!这真的很简单!我尝试了一下,无论URL是否有数字,它都完美地工作了。你肯定做得很好! - Javi
总是很高兴能够保持简单。 - Erik Tyler

2
假设您的文档中的URL一直到空格或字符串结尾,您可以使用以下方法删除它们和非数字内容,并用句点替换:
=SUM(SPLIT(REGEXREPLACE(A1, "https?://\S*|[^\d.]", "|"), "|"))

请查看正则表达式演示

详细信息

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接