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

Excel-基于两列返回唯一值的计数,excel,excel-formula,Excel,Excel Formula,我正在做一个有很多专栏和几页的项目。为了简单起见,我将发布我需要帮助的内容:在一个表中,我有一个用户名,以及他们是否收到了证书。证书的计算基于他们在其他测试中通过的次数(三次或三次以上授予他们证书)。在另一张纸上,我发布了统计数据,我只想显示唯一证书的总数。该表如下所示(简化) 因此,有了上述内容,他们需要三个或更多的测试才能拥有“捆绑包”。如果他们通过了两次考试,第三次考试不及格,那么他们的“捆绑”考试就会不及格。如果他们没有参加过三次测试,就不算通过或失败 在另一张纸上,我想显示获得“捆绑”

我正在做一个有很多专栏和几页的项目。为了简单起见,我将发布我需要帮助的内容:在一个表中,我有一个用户名,以及他们是否收到了证书。证书的计算基于他们在其他测试中通过的次数(三次或三次以上授予他们证书)。在另一张纸上,我发布了统计数据,我只想显示唯一证书的总数。该表如下所示(简化)

因此,有了上述内容,他们需要三个或更多的测试才能拥有“捆绑包”。如果他们通过了两次考试,第三次考试不及格,那么他们的“捆绑”考试就会不及格。如果他们没有参加过三次测试,就不算通过或失败

在另一张纸上,我想显示获得“捆绑”和未获得“捆绑”的独特学生的数量

我尝试过的一些事情:

=COUNTIFS(MOS_Table[Username],"*",MOS_Table[Bundle],TRUE)
(注意:MOS_Table是表的名称)这将统计Bundle列中的真值总数,但会统计他们参加的每个测试的同一个学生

=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,4,3,3}
1/
使其可以求和,但仅用于
IF
{FALSE,FALSE,0.25,0.25,0.25,FALSE,FALSE,FALSE}
的真部分。在你的例子中是1

如果您还有任何问题,只需问:)

请尝试以下内容:

=SUM(IF(MOS_Table[Bundle]=TRUE,1/COUNTIF(MOS_Table[Username],MOS_Table[Username])))
这是一个数组公式,必须用ctrl+shift+enter确认

countif返回一个完整计数数组
{2,2,4,4,4,4,4,3,3}
1/
使其可以求和,但仅用于
IF
{FALSE,FALSE,0.25,0.25,0.25,FALSE,FALSE,FALSE}
的真部分。在你的例子中是1


如果您还有任何问题,只需问:)

您是否尝试过使用简单计数过滤器为1的数据透视表,然后查找您需要的数据透视表?这是一个解决方案,但似乎可以实现您的目标。我还没有进入数据透视表,所以我不确定它们的用途或功能。我确实需要统计表上有一些表格,其中包括每个测试的详细信息和通过率以及其他数据。这听起来像是Pivot表可以为我做的事情吗?您是否尝试过使用简单计数过滤器为1的Pivot表,然后只查找您需要的数据?这是一个解决方案,但似乎可以实现您的目标。我还没有进入数据透视表,所以我不确定它们的用途或功能。我确实需要统计表上有一些表格,其中包括每个测试的详细信息和通过率以及其他数据。这听起来像Pivot表可以为我做的事情吗?请注意:如果不是所有的
*Bundle*
都是
TRUE
(或者没有一个)。。。记住这一点:)对此我感激不尽!我花了几天的时间想弄明白。我接近于类似这样的内容,但将Bundle和Username列向后放置,而没有执行1/部分。这太棒了。
*Bundle*
列没有全部为TRUE,并且有空格,但是,这似乎仍然可以正常工作。我做了一些测试,一切都很顺利。再次感谢你!请注意:如果不是所有的
*Bundle*
都是
TRUE
(或者没有一个)。。。记住这一点:)对此我感激不尽!我花了几天的时间想弄明白。我接近于类似这样的内容,但将Bundle和Username列向后放置,而没有执行1/部分。这太棒了。
*Bundle*
列没有全部为TRUE,并且有空格,但是,这似乎仍然可以正常工作。我做了一些测试,一切都很顺利。再次感谢你!