首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Google工作表中,每一行只计数一次字符串的出现情况。

在Google工作表中,每一行只计数一次字符串的出现情况。
EN

Stack Overflow用户
提问于 2018-05-31 08:38:41
回答 1查看 464关注 0票数 1

我有字符串的电子表格数据,需要计数的‘类型’,但不是实例。

代码语言:javascript
复制
   A   B C D
 1 Lin 1 2 1
 2 Tom 1 4 2
 3 Sue 3 1 4

分配给1老师的学生的正确之和是3,而不是4。第1老师在B和D课中遇到林老师与人数无关。

我借用了一个在Excel中有效的公式,但在Google中,我和其他人需要保存和操作数据。

代码语言:javascript
复制
F5=SUMPRODUCT(SIGN(COUNTIF(OFFSET(B$2:D$2, ROW($2:$4)-1, 0), E5)))

  A   B C D E 
2 Lin 1 2 1
3 Tom 1 4 2
4 Sue 3 1 4
5           1 [exact string being searched for, ie a teacher name]

我不知道谷歌表格在这个公式中没有理解什么。是否有人知道使用正确的表达式,或者更有效的方法来获得我需要的精确计数,而不需要在行中重复来膨胀计数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-31 09:35:51

这就是mmult方法,它的工作方式是找出分配给老师1等的学生的行总数,然后查看总数中有多少大于0。

代码语言:javascript
复制
=ArrayFormula(sum(--(mmult(n(B2:D4=E5),transpose(column(B2:D4)))>0)))

代码语言:javascript
复制
=ArrayFormula(sum(sign(mmult(n(B2:D4=E5),transpose(column(B2:D4))))))

如果在没有ArrayFormula包装器的情况下作为数组公式输入,也可以在Excel中工作。

一个特定的Google单子可以很短

代码语言:javascript
复制
=ArrayFormula(COUNTUNIQUE((B2:D4=E5)*row(B2:D4)))-1

计数包含匹配的唯一行。

注:我在上面的最后一个公式中减去1,因为我假设至少有一个零(不匹配)应该被忽略。在极端情况下,所有班级的所有学生都被分配给同一位老师,这样你就有了一个矩阵(例如)。从理论上讲,这是正确的:

代码语言:javascript
复制
=ArrayFormula(COUNTUNIQUE(if(B2:D4=E5,row(B2:D4),"")))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50620076

复制
相关文章

相似问题

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