计算列中出现的次数,并根据另一列

时间:2016-03-02 22:05:57

标签: google-sheets spreadsheet

前言:这看起来相当复杂,所以如果有什么我可以做的就可以更好地发表评论,我会尽快更新问题。

我正在尝试为学生提供基本上是一个登记表,然后列出每个课程,访问了多少次以及有多少不同的学生去寻求帮助。这对我来说似乎有点复杂,所以希望我能够很好地解释它。

sheetA我的数据如下:

 |     A      |    B    |  C  |  D  |    E    |
-+------------+---------+-----+-----+---------+
1|    Name    |  Date   | In  | Out | Course  |
-+------------+---------+-----+-----+---------+
2|    Ann     |##/##/## |  #  |  #  |  MA101  |
3|    Bob     |##/##/## |  #  |  #  |  MA101  |
4|    Jim     |##/##/## |  #  |  #  |  MA101  |
5|    Bob     |##/##/## |  #  |  #  |  MA101  |
6|    Ann     |##/##/## |  #  |  #  |  MA101  |
7|    Bob     |##/##/## |  #  |  #  |  MA101  |
8|    Ann     |##/##/## |  #  |  #  |  CS101  |

然后在sheetB输出将是:

 |     A     |   B   |   C   |
 +-----------+-------+-------+
1|   Course  | Total | Unique|
 +-----------+-------+-------+
2|   MA101   |   6   |   3   | #This would be 3 because only 3 unique students came
3|   CS101   |   1   |   1   |

因此,所有课程都列在A下,该课程的总访问次数为B,而C是该课程的唯一学生人数。

到目前为止我有什么:

sheetB我有AB的公式。

A2: =unique(transpose(split(ArrayFormula(concatenate('sheetA'!E2:E&" "))," ")))

B2: =arrayformula(if(len(A7:A),countif(transpose(split(ArrayFormula(concatenate('sheetA'!E2:E&" "))," ")),A7:A),iferror(1/0)))

如果有助于查看我将这些方程式与我在this gist

中理解每个部分的注释一起分解

我正在试图弄清楚要放入C2的内容,而我却完全迷失了。

即使有人知道一个更好的方法去做我到目前为止所做的事情,即更简洁或者其他什么,因为那些来自另一个SO帖子。

非常感谢你们,甚至只是为了阅读所有这些

编辑:我将很快离开工作,这可能需要我一点点回应(美国东部时间下午5:15)

1 个答案:

答案 0 :(得分:2)

你可以使用原生公式轻松完成这项工作:

enter image description here

这些公式是:

=UNIQUE(E3:E)

=COUNTIF(E3:E,F2)

=COUNTA(UNIQUE(FILTER(A3:A,E3:E=F2)))