Excel – 返回基于两列的唯一值计数

我正在做一个有很多列和几张表的项目。 为了简单起见,我只发布那些我需要帮助的人:在一个表中,我有一个用户名,不pipe他们是否收到证书。 证书的计算是基于他们在其他testing(三个或三个以上给他们的证书)上的通过次数。 在另一张表上,我发布了统计信息,我只想显示唯一证书总数。 该表看起来像下面(简化)。

*Username* | *Test Result* | *Bundle* abc | Pass | "" abc | Pass | "" 123 | Pass | True 123 | Pass | True 123 | Pass | True 123 | Pass | True qwerty | Fail | False qwerty | Pass | False qwerty | Pass | False 

因此,有了上述,他们需要三个或更多的testing有“捆绑”。 如果他们通过两个失败的第三他们得到一个失败的“捆绑”。 如果他们没有进行三次testing,则不算通过或失败。

在另一张表格上,我想显示已经获得“捆绑”和没有独特学生人数。

我尝试过的一些事情:

 =COUNTIFS(MOS_Table[Username],"*",MOS_Table[Bundle],TRUE) 

(注意:MOS_Table是表格的名称)这将统计Bundle列中的TRUE值的总数 ,但是对于他们所进行的每个testing统计相同的学生。

 =COUNTIF(MOS_Table[Bundle],TRUE) 

这返回与上面相同。

我用SUMPRODUCT和SUM,COUNTIFS和其他东西的组合尝试了其他人。 我不确定是否有更好的方法来解决这个问题,但是我会采取一些措施来解决这个问题。 长期来看,将会有多达400-500个可能的行。

提前致谢!

请试试这个:

 =SUM(IF(MOS_Table[Bundle]=TRUE,1/COUNTIF(MOS_Table[Username],MOS_Table[Username]))) 

这是一个数组公式,必须用Ctrl + Shift + Enter确认

countif返回一个完整计数{2,2,4,4,4,4,3,3,3}的数组,并且1/使得它可以被总结,但仅用于IF的真实部分{FALSE,FALSE,0.25,0.25,0.25,0.25,FALSE,FALSE,FALSE} 。 在你的例子中是1。

如果你还有任何问题,只要问:)