Excel:在列表中查找与另一个列表匹配的所有值作为COUNTIFS语句的一部分
我正在努力将条件集成到我的COUNTIFS语句中。 我有5个条件,我已经能够轻松地工作,但我无法弄清楚最后一个。 标准范围将是A1:A40000,并且标准将计算与工作表2,单元格A1:A40中的30个文本string列表中的任何值匹配的编号。 这可能吗? 没有其他条件我可以得到结果。 不幸的是,我没有灵活性在A1:A40000旁边添加一列来检查它是否在列表中。
编辑:澄清每个请求。
我正在做的简化版本。 我需要根据整个数据集中的列来计数满足几个条件的数字项(列A)。 因此,我需要find在列B中具有值“1”的项目的数量,以及在列“C”中的AND值和“是”的值,以及在列“D”中的“OLD”的值。和 – (我正在挣扎的部分)列“E”必须包含任何一个完全独立的值(称之为Z1:Z40)。 前三个条件的公式是:
=COUNTIFS(B:B,1, C:C,"YES", D:D,"OLD")
粗体的最后标准是这样的:
=COUNTIFS(B:B,1, C:C,"YES", D:D,"OLD", **E:E,isnumber(match(E:E,Z1:Z40,0))**)
但是这是行不通的…
您可以简单地使用范围作为标准。 如果你这样做,那么你的COUNTIFS
函数将返回一个数组( Z1:Z40
每个值为一个值Z1:Z40
),所以你需要一个函数来求和该数组 – 我使用SUMPRODUCT
因为它不需要数组入口
=SUMPRODUCT(COUNTIFS(B:B,1,C:C,"yes",D:D,"old",E:E,Z1:Z40))
这种方法有一些限制 – 你只能在一个COUNTIFS
函数中使用两个“多项”标准(如果你必须是一个列,另一个是一行,或者你需要使用TRANSPOSE
来实现这一点), Z1:Z40中的项目不应重复(或者可能重复计数)。
为了克服这些限制,你可以使用SUMPRODUCT
代替COUNTIFS
– 与ISNUMBER(MATCH
为多项目标准)如果你使用SUMPRODUCT
,那么最好是限制效率原因的范围,例如
=SUMPRODUCT((B2:B100=1)*(C2:C100="yes")*(D2:D100="old")*ISNUMBER(MATCH(E2:E100,Z1:Z40,0)))
您可以添加尽可能多的ISNUMBER(MATCH
标准), Z1:Z40
可以是任何单个行/列范围
假设所有的标题都在第一行,真正的数据从第二行开始。我会在结尾添加一列,并把公式
=IF(AND(B2=1, C2="YES", D2="OLD", COUNTIF($Z$1:$Z$40,E2)),"YES","NO")
然后将其复制下来,其中列F为“是”的行是符合所有条件的行。
还有一种使用通配符的方法
=countifs(A1:D1;"*yes")
计算所有包含“是”的单元格