COUNTIFS包括整个列而不是单个项目
目标:运行COUNTIFS匹配的Sheet2!A:A到Sheet1!B:B,并从下面的示例中完成状态。 目标是从表1中获取从数据库中提取的培训信息,然后我需要计算来自该数据库的人员已经完成了特定培训项目的列表(在表2中列出)。
我试图build立一个COUNTIFS,但只能为每个单独的培训项目。 我将不得不build立一个长长的string这些加起来,还包括一个用户条件的公式才能正常工作。
COUNTIFS(Sheet1!B:B,**Sheet2!A2**,Sheet1!C:C,"complete")
为了节省我很多时间和潜在的错误,我想运行:
COUNTIFS(Sheet1!B:B,**Sheet2!A:A**,Sheet1!C:C,"complete")
但是,当我input公式时,它显示一个错误。 我也尝试过使用数据透视表,但是不能让我完成一个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 (因为他们有三个项目完成需要在cirricula)
这涉及LO ID/Title
filter的手动select(排除LO 2
)(除非例如用VBA设置),但似乎给出了所需的结果:
在表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
s所需的列表中。 然后,您可以在sumproduct
公式中添加第三个条件。
(列C中的=IF(ISERROR(VLOOKUP(B2,$F$2:$F$4,1,FALSE)),"no","yes")
)
sumproduct http://i57.tinypic.com/30agbnq.png
假设你有这样的数据:
请注意LO列表在Sheet2中。 在F2中input这个公式:
=SUMPRODUCT(COUNTIFS(A$2:A$7,E2,B$2:B$7,Sheet2!A$2:A$4,C$2:C$7,"complete"))
以上公式会给你你上面描述的结果。
离我之前发布的东西不远,我们只是添加了另一个标准范围和标准。
总之,你只需要joinSUMPRODUCT
在处理多个条件时,在您的COUNTIFS公式中。
注意:您的公式只是缺乏SUMPRODUCT和其他标准的用户,虽然我不build议使用整个列作为标准,因为它会损害Excel的计算时间。 如果你的数据是dynamic的,你最好的办法就是对多个标准使用一个dynamic命名范围 。 HTH。