计算 Google 工作表中分隔字符串中的客人数量
Counting number of guests in delimited string in Google Sheets
我有一个 Google 表格单元格,其中包含参加活动的人员列表。有些客人会带来朋友。所以单元格 (A1) 可以如下所示:
Ben, Sarah + 2, James , Mary + 5
我需要计算参加的总人数,在本例中为 11。因此我考虑使用以下公式:
=count(SPLIT(SUBSTITUTE(A1,"+",","),","))
但这不起作用,因为它只将数字计为 1 项,并且 COUNT 函数似乎不起作用。
我怎样才能使这项工作正确地给出与会者人数 11?
你可以这样得到总和:
=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,","))))
=> 如果答案中没有 +
符号,则检查单元格是否为空,如果为空,则打印空白,否则只计算中间有多少人逗号,否则用加计算。 (下面的解释)
split(A1,",")),"\+")
=> 红色区域=> 将单元格用逗号分隔,结果如图红色区域
split(TRANSPOSE(split(A1,",")),"\+")
=> 绿色区域 => 将遍历上面的每个结果,并将它们之间带有 +
符号的值分隔到右侧的单元格中,可以在图片中的绿色区域
query(split(TRANSPOSE(split(A1,",")),"\+"),"select count(Col1), sum(Col2)",0)
=> 蓝色区域 => 然后我们将查询 2 列,在左侧我们要计算该列(带有名称的列)中的行数,在下一个我们要对值(加号)求和的列
sum(ArrayFormula(query(split(transpose(split(A1,",")),"\+"),"select count(Col1), sum(Col2)",0)))
=> 黄色区域 => 然后我们将 2 列的值相加得到最终结果
你可以使用下面的公式
=IF(LEN(A2),
SUM(COUNTA(SPLIT(A2,",")),
IFERROR(SPLIT(REGEXREPLACE(A2,"\D"," ")," "))),"")
使用的函数:
我有一个 Google 表格单元格,其中包含参加活动的人员列表。有些客人会带来朋友。所以单元格 (A1) 可以如下所示:
Ben, Sarah + 2, James , Mary + 5
我需要计算参加的总人数,在本例中为 11。因此我考虑使用以下公式:
=count(SPLIT(SUBSTITUTE(A1,"+",","),","))
但这不起作用,因为它只将数字计为 1 项,并且 COUNT 函数似乎不起作用。
我怎样才能使这项工作正确地给出与会者人数 11?
你可以这样得到总和:
=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,","))))
=> 如果答案中没有+
符号,则检查单元格是否为空,如果为空,则打印空白,否则只计算中间有多少人逗号,否则用加计算。 (下面的解释)split(A1,",")),"\+")
=> 红色区域=> 将单元格用逗号分隔,结果如图红色区域split(TRANSPOSE(split(A1,",")),"\+")
=> 绿色区域 => 将遍历上面的每个结果,并将它们之间带有+
符号的值分隔到右侧的单元格中,可以在图片中的绿色区域query(split(TRANSPOSE(split(A1,",")),"\+"),"select count(Col1), sum(Col2)",0)
=> 蓝色区域 => 然后我们将查询 2 列,在左侧我们要计算该列(带有名称的列)中的行数,在下一个我们要对值(加号)求和的列sum(ArrayFormula(query(split(transpose(split(A1,",")),"\+"),"select count(Col1), sum(Col2)",0)))
=> 黄色区域 => 然后我们将 2 列的值相加得到最终结果
你可以使用下面的公式
=IF(LEN(A2),
SUM(COUNTA(SPLIT(A2,",")),
IFERROR(SPLIT(REGEXREPLACE(A2,"\D"," ")," "))),"")
使用的函数: