【问题标题】:Google sheets - sum all the numbers in a cell with text, but excluding URL's谷歌表格 - 将单元格中的所有数字与文本相加,但不包括 URL
【发布时间】:2021-04-15 14:08:13
【问题描述】:

我在 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\.]+", "|"), "|"))

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

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

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

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

【问题讨论】:

  • 这两个答案有帮助吗?

标签: regex google-sheets split formula spreadsheet


【解决方案1】:

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

=SUM(SPLIT(A1," ")

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

【讨论】:

  • 就是这样,没有比这更简单的了。您也可以将 \n 添加到拆分字符边缘以捕获行尾或行首的数字。干得好
  • 谢谢,JvdV。正如我经常告诉人们的那样,我们只能继续我们所看到的。在给出的单个示例中,该模式意味着所有此类单元格的前后都有一个空格和数字。但正如您所指出的,如果事实并非如此,那么添加换行代码和逐个拆分参数就很容易了。
  • 谢谢,埃里克!就这么简单!我试过了,不管 URL 有没有数字,它都能完美运行。你肯定把它砸碎了!
  • 总是很高兴能够让事情变得简单。
【解决方案2】:

假设您的文档中的 URL 上升到空格或字符串结尾,您可以使用句点删除它们和非数字

=SUM(SPLIT(REGEXREPLACE(A1, "https?://\S*|[^\d.]", "|"), "|"))

请参阅regex demo

详情

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-24
    • 2022-10-20
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    相关资源
    最近更新 更多