我正在努力将条件集成到我的 COUNTIFS 语句中。我有大约 5 种我能够轻松应对的情况,但我不知道最后一种情况。标准范围为 A1:A40000,并且标准将计算与工作表 2 单元格 A1:A40 上的 30 个文本字符串列表中的任何值匹配的数量。这可能吗?不需要其他条件我就能得到结果。不幸的是,我无法灵活地在 A1:A40000 旁边添加一列来检查它是否在列表中。
编辑:根据请求进行澄清。
我正在做的事情的简化版本。我需要根据整个数据集中的列来计算满足多个条件的项目(A 列)的数量。因此,我需要找到 B 列中值为“1”的项目数 - AND - “C”列中值为“YES” - AND - “D”列中值为“OLD” - AND - (我正在努力解决的部分)“E”列必须包含完全独立的范围内的任何一个值(称为 Z1:Z40)。前 3 个条件的公式为:
=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
中的每个值各有一个值),因此您需要一个函数来对该数组求和 - 我使用 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
可以是任何单行/列范围
关于Excel:作为 COUNTIFS 语句的一部分,查找列表中与另一个列表匹配的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20552903/