首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Google工作表中以分隔字符串计算来宾数

在Google工作表中以分隔字符串计算来宾数
EN

Stack Overflow用户
提问于 2020-10-05 14:52:20
回答 2查看 122关注 0票数 1

我有一个Google单元格,里面有参加活动的人的名单。有些客人会带朋友来。因此单元格(A1)可以如下所示:

代码语言:javascript
复制
Ben, Sarah + 2, James , Mary + 5

我需要计算参加会议的总人数,在这个例子中是11人。所以我在考虑使用这样的公式:

代码语言:javascript
复制
=count(SPLIT(SUBSTITUTE(A1,"+",","),","))

但这不起作用,因为它只将数字计算为1项,计数函数似乎不起作用。

我如何使这项工作,使它正确地给出的人数为11人?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-05 15:21:59

您可以通过以下操作获得总金额:

=if(regexmatch(A1,"\+"),sum(ArrayFormula(query(split(transpose(split(A1,",")),"\+"),"select count(Col1), sum(Col2)",0))),if(isblank(A1),"",counta(split(A1,","))))

解释:

如果答案中没有

  • if(regexmatch(A1,"\+"), something, if(isblank(A1),"",counta(split(A1,",")))) =>符号,则检查单元格是否为空,如果为空,则打印为空,否则只需计算逗号之间有多少人,否则用加号计算。(解释below)
  • split(A1,",")),"\+") =>红色区域=>将用逗号分隔单元格,结果可以在picture
  • split(TRANSPOSE(split(A1,",")),"\+") =>绿色区域的红色区域中看到,=>将循环遍历上面的每个结果,并分离到右边的一个单元格,在它们之间有一个+号的值,可以在image
  • query(split(TRANSPOSE(split(A1,",")),"\+"),"select count(Col1), sum(Col2)",0) =>蓝色区域=>中的绿色区域中看到,然后我们将查询2列,在左边的2列中,我们希望计数该列中的行数(列中有名称),在下一列中,我们希望对值进行和(加号ones)
  • sum(ArrayFormula(query(split(transpose(split(A1,",")),"\+"),"select count(Col1), sum(Col2)",0))) =>黄色区域=> ),然后我们将对2列的值进行求和,以得到最终结果
票数 2
EN

Stack Overflow用户

发布于 2020-10-05 19:52:04

您可以使用以下公式

代码语言:javascript
复制
=IF(LEN(A2), 
     SUM(COUNTA(SPLIT(A2,",")), 
         IFERROR(SPLIT(REGEXREPLACE(A2,"\D"," ")," "))),"")

所使用的职能:

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64211047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档