计算一列中出现的次数,并根据另一列消除重复

Counting number of occurrences in a column, and eliminating repeats based on another column

我正在尝试为接受辅导的学生进行本质上的登录 sheet,然后列出每门课程的访问次数以及访问寻求帮助的不同学生的数量。这对我来说似乎有点复杂,所以希望我能解释得足够好。

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 post.

您可以使用原生公式轻松做到这一点:

公式为:

=UNIQUE(E3:E)

=COUNTIF(E3:E,F2)

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