COUNTIFS包括整个列而不是一个单独的项目

时间:2014-11-19 21:46:58

标签: excel excel-vba excel-formula pivot-table countif vba

目标:运行COUNTIFS匹配Sheet2!A:A到Sheet1!B:B以及下面示例中的已完成状态。目标是第1页从数据库中提取培训信息,然后我需要计算该数据库中的哪些人已完成特定培训项目列表(在表2中列出)。

我尝试设置COUNTIFS,但只能针对每个培训项目进行设置。我必须设置一长串这些加起来,并包含一个用户条件,使公式正常工作。

COUNTIFS(Sheet1!B:B,**Sheet2!A2**,Sheet1!C:C,"complete")

为了节省我很多时间和潜在的错误,我想运行:

COUNTIFS(Sheet1!B:B,**Sheet2!A:A**,Sheet1!C:C,"complete")

但是,当我输入公式时,它会显示错误。我也试图利用数据透视表,但它不允许我完成COUNTIFS作为表的计算字段。 我愿意使用VBA,但如果能够解决我的问题,那么它的经验有限。

表1:

Name    LO ID/Title Status
user 1    LO 1      complete
user 1    LO 2      complete
user 1    LO 3      registered
user 2    LO 1      complete
user 2    LO 3      complete
user 2    LO 4      complete

表2:

Cirricula
LO 1
LO 3
LO 4

编辑:表2中的理想输出:

用户1 - 1 (因为他们只有LO1完成,在子环中不需要LO2,而LO3是注册状态)

用户2 - 3 (因为他们已经完成了所有三项完整的课程)

3 个答案:

答案 0 :(得分:1)

这涉及LO 2过滤器的手动选择(以排除LO ID/Title)(除非使用VBA设置),但似乎给出了所需的结果:

SO27027641 example

答案 1 :(得分:0)

在工作表2的B栏上,您可以使用

=SUMPRODUCT((Sheet1!$B$2:$B$7=A2)*(Sheet1!$C$2:$C$7="complete"))

将作为输出

Cirricula   Count complete
LO 1            2
LO 3            1
LO 4            1

更新/修改

要引用user,只需引用A列而不是B列(或者您的user列之后):

=SUMPRODUCT((Sheet1!$A$2:$A$7=D2)*(Sheet1!$C$2:$C$7="complete"))

在表2中,我在User

中有D
Cirricular  count cirricular complete       User    counter user complete
LO 1                2                       user 1          2
LO 2                1                       user 2          3
LO 4                1           

更新/编辑2

要使用公式获得您想要的内容,我在C列中添加了vlookup,以查看LO ID是否在LO ID的所需列表中。然后,您可以在sumproduct公式中添加第三个条件。

(C列中的vlookup=IF(ISERROR(VLOOKUP(B2,$F$2:$F$4,1,FALSE)),"no","yes")

sumproduct http://i57.tinypic.com/30agbnq.png

答案 2 :(得分:0)

假设你有这样的数据:

enter image description here

请注意,LO列表位于Sheet2中。在F2中输入此公式:

=SUMPRODUCT(COUNTIFS(A$2:A$7,E2,B$2:B$7,Sheet2!A$2:A$4,C$2:C$7,"complete"))

以上公式将为您提供上述结果 离我之前发布的内容不远,我们刚刚添加了另一个标准范围和标准 简而言之,在处理多个条件时,您只需要在 COUNTIFS 公式中加入 SUMPRODUCT

注意: 您的上述公式仅缺少 SUMPRODUCT 以及用户的其他条件,但我不建议将整个列用作标准,因为它会损害Excel'计算时间。如果您的数据是动态的,最好的选择是使用Dynamic Named Range作为多个条件。 HTH。