我有一个庞大的学术出勤数据库,在Excel中过滤成子组的学生。在工作簿的第一页上,我有一个表格,详细列出了每个班级的个人缺席情况,以及他们在最后一栏中缺席的总体百分比。
例如在M6
(第一行过滤数据的最后一个单元格)中,我使用了公式=AVERAGEIF(E6:K6,"<>#DIV/0!")
来计算出我有数据的课程的平均值。具有主题数据的单元格是来自其他工作表的COUNTIF
结果的直接查找,如果没有数据,显然会返回#DIV / 0消息。
我需要做的是获取一个SUBTOTAL 101
函数,或者类似的东西,忽略我的过滤后的隐藏单元格“Group”(在这个例子中为“正在教学组的组”)列表,它将忽略{ {1}}消息,以便我可以通过缺席的“组”取平均值并显示在表格的底部。
请帮我写一个基本上将#DIV/0
公式嵌入AVERAGEIF
公式中的公式(反之亦然,如果是这样的话,如果可能的话),以便给出我想要的结果。我会去修改VBA,但正如你所知,我需要将它分解为婴儿步骤,因为我的编码技能不是很高。
非常感谢任何建议。
提前谢谢。
答案 0 :(得分:3)
您使用的是哪个版本的Excel?在Excel 2010或更高版本中,AGGREGATE
函数的工作方式有点像SUBTOTAL
但有一个选项可以忽略错误,所以这个公式,例如.......
=AGGREGATE(1,7,A2:A100)
....平均(1)A2:A100
中的数据,同时忽略错误和隐藏行(7)
答案 1 :(得分:2)
我建议您通过从工作表中删除任何除零来避免此问题。
例如:if:
=AVERAGE(Z1:Z100)
发出错误,请使用:
=IFERROR(AVERAGE(Z1:Z100),"")
代替