Google Sheets如何通过条件过滤聚合实现带可选筛选的平均分计算
方案说明
你可以直接用AVERAGE+FILTER组合填充四个占位符,逻辑清晰不易出错,Sheet1的数据范围默认取表头之外的Sheet1!A2:D(如果你的数据行范围不同可自行调整),四个result的写法如下:
- result1:
AVERAGE(Sheet1!D2:D)
直接统计全量Mark列的平均值即可 - result2:
AVERAGE(FILTER(Sheet1!D2:D, Sheet1!A2:A=D2))
先用FILTER筛选出Class列等于你选中班级的所有Mark值,再求平均 - result3:
AVERAGE(FILTER(Sheet1!D2:D, Sheet1!B2:B=G2))
筛选出Section列等于你选中分区的所有Mark值后求平均 - result4:
AVERAGE(FILTER(Sheet1!D2:D, Sheet1!A2:A=D2, Sheet1!B2:B=G2))
同时匹配班级和分区两个筛选条件后求平均
更简洁的优化方案
你其实可以完全不用写嵌套的IFS判断,下面这一个公式就能覆盖所有四种筛选场景,直接替换你整个IFS函数即可:
=AVERAGE(FILTER(Sheet1!D2:D, IF(D2="All Classes", TRUE, Sheet1!A2:A=D2), IF(G2="All Sections", TRUE, Sheet1!B2:B=G2)))
如果要避免无匹配数据时返回错误值,可以在外层套IFERROR:
=IFERROR(AVERAGE(FILTER(Sheet1!D2:D, IF(D2="All Classes", TRUE, Sheet1!A2:A=D2), IF(G2="All Sections", TRUE, Sheet1!B2:B=G2))), "无匹配数据")
内容的提问来源于stack exchange,提问作者Scarecrow
相关产品推荐
相关产品推荐

