计算Google表格中分隔字符串中的来宾人数

问题描述

我有一个Google表格单元,其中包含参加活动的人员的列表。一些客人会带来朋友。因此,单元格(A1)如下所示:

Ben,Sarah + 2,James,Mary + 5

我需要计算参加会议的总人数,在这种情况下为11。因此,我正在考虑按照以下方式使用公式:

=count(SPLIT(SUBSTITUTE(A1,"+",","),"))

但是这不起作用,因为它仅将数字计为1,并且COUNT函数似乎不起作用。

我该如何进行这项工作,以便正确地将与会者人数设为11?

解决方法

您可以使用以下公式

max(size(A))

enter image description here

使用的功能:

,

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

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

enter image description here

说明:

  • if(regexmatch(A1,something,")))) =>如果答案中没有+符号,则检查单元格是否为空,如果为空,则打印空白,否则只需计算逗号之间有多少人,否则用加1 计算。 (以下说明)
  • split(A1,"\+") =>红色区域=>将逗号分隔单元格,结果可以在图片的红色区域看到
  • split(TRANSPOSE(split(A1,"\+") =>绿色区域=>将遍历上面的每个结果,并在右侧的单元格中分隔其中带有+符号的值,可以在绿色中看到图片中的区域
  • query(split(TRANSPOSE(split(A1,0) =>蓝色区域=>然后我们将查询两列,在左边一列中,我们要计算该列中的行数(具有名称的列),在下一列中想要对值(加号)求和
  • sum(ArrayFormula(query(split(transpose(split(A1,0))) =>黄色区域=>然后我们将两列的值求和以得出最终结果