使用COUNTIF函数同时计算两个条件时遇到了问题

5

我在Excel中有两个条件。

我想要使用COUNTIFS函数计算2014年和K-8年级的课程数量:=COUNTIFS(A2:C3,"2014",D2:E3,"Grades K-8") 但是好像没有得到正确结果。

Year 1  Year 2  Year 3  Grades K-8  Grades 9-12 Teachers 
2014    2015            Grade K-8   Grade 9-12  Teachers
2016    2017    2018    Grade K-8   Grade 9-12  Teachers

我一直得到值错误。非常感谢任何帮助!


3
您的公式中写着“K-8年级”,但在您的表格中,只有“K-8年级”没有加s的数值。我会为您进行翻译。 - Wizhi
2个回答

3

这应该可以解决问题 :)

在单元格H3中,搜索条件为9-12年级2014年

=SUMPRODUCT((E2:E6="Grade 9-12")*(A2:C6=2014))

SUMPRODUCT函数查找给定两个范围的所有组合,并告诉您它们出现的次数。

enter image description here

由于您要在一个条件的行中搜索,而在另一个条件的列中搜索,因此无法使用countifs。或者更准确地说,当您搜索年份时,您正在跨越多行和多列的范围内搜索。因此,您需要使用countif将该数组中的每个项目与另一个数组的项目进行比较。


虽然Wizhi的答案是正确和准确的,但它执行了一个数组计算。在更多的行和列(更多的条件)上,这将在某个时候开始拖慢您的系统。COUNTIFS函数更快,并且还允许您使用完整的列引用而不会影响性能。 - Forward Ed
感谢您的输入Forward Ed,非常感谢:)。我尝试看看是否可以使用COUNTIFS,因为我认为它更加“高效”。由于必须执行数组组合,SUMPRODUCT需要执行更多的计算,这在应用于大型数据集和更多条件时会有劣势。我也很想看到使用COUNTIFS的解决方案 :) - Wizhi
太好了,它起作用了 :)!! 请标记答案为已接受,以便其他人可以看到问题已解决。在答案的投票按钮下方有一个灰色的勾号。保重 :)!! 接受答案:它是如何工作的? - Wizhi

0

基于你的数据布局和你只在一个列中查找成绩,并且你要查找的年份仅限于3列,你可以使用以下公式:

 =COUNTIFS(A:A,2018,D:D,"Grade K-8")+COUNTIFS(B:B,2018,D:D,"Grade K-8")+COUNTIFS(C:C,2018,D:D,"Grade K-8")

基本上,在COUNTIFS内部的检查中,多个条件都是AND检查。由于每个年份列的多个列是OR,因此您需要逐个检查每个年份列。您可以使用+来进行OR操作并重复列检查。

如果您需要检查多个列和列的组合,则公式将变得混乱,最好使用类似Wizhi答案的数组类型公式。

POC


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接