Google Sheet IF+Filter函数优化:限制分数最大值为8.00
Excel公式调整:限制分数显示上限为8.00
原公式已实现按用户名和日期筛选分数,且无匹配结果时返回0.00,现在只需对筛选出的分数做上限处理,以下是两种可行方案:
方案1:用MIN函数简化处理(适合单分数场景)
直接将筛选结果与8取最小值,大于8的分数会自动被替换为8.00,公式如下:
=IFERROR(MIN(FILTER(Raw!$AF:$AF, Raw!$AG:$AG=$C2, Raw!$AH:$AH=I$1),8),"0.00")
原理:MIN(筛选出的分数, 8)会自动选取两者中较小的值,若分数超过8则取8,否则保留原分数。
方案2:用LET函数避免重复计算(更高效,推荐)
通过LET函数先存储筛选结果,再做判断,减少重复调用FILTER的计算量,适合数据量较大的场景:
=IFERROR(LET(score, FILTER(Raw!$AF:$AF, Raw!$AG:$AG=$C2, Raw!$AH:$AH=I$1), IF(score>8, 8, score)),"0.00")
步骤拆解:
LET(score, ...):将筛选出的分数赋值给变量scoreIF(score>8, 8, score):判断score是否大于8,是则返回8,否则返回原分数- 外层
IFERROR保持原逻辑,无匹配结果时返回0.00
注意事项
- 若单个用户名+日期对应多个分数,
MIN方法会返回这些分数中的最小值(同时不超过8);LET+IF方法则需配合动态数组特性(Excel 365)或ARRAYFORMULA(谷歌表格)来处理多结果场景。
内容的提问来源于stack exchange,提问作者user19998204
相关产品推荐
相关产品推荐

