Excel:作为 COUNTIFS 语句的一部分,查找列表中与另一个列表匹配的所有值

标签 excel

我正在努力将条件集成到我的 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/

相关文章:

R:将大量行的数据框写入Excel

vba - Excel VBA 创建错误

vba - Excel 自动筛选,复制选择,粘贴到新工作表

arrays - 将多维项添加到数组中,然后一次检索所有项

python - reshape 表以创建按前缀聚合的时间序列

.net - 使用 NPOI (1.2.5.0) 删除 Excel 工作表的列

linux - 毫秒到 Excel 导致日期相差 4 年

Excel vlookup不是空白的多值

vba - 如何对非矩形范围的列中的单元格进行计数

excel - 如果列仅包含值 "D"或为空,则返回 TRUE