Google Sheets满足C列值为"A"条件时返回B列众数的公式求助
带筛选条件的动态众数计算公式
需求规则
需要在「Return Mode Day」工作表B2单元格,计算「Day Test」工作表B列数据的众数,计算需满足3项规则:
- 自动排除B列空值行
- 公式范围自动适配后续新增行,无需手动调整
- 仅统计「Day Test」工作表C列对应行值等于"A"的B列数据
原有未加筛选逻辑的基础众数公式:
=INDEX(IFERROR('Day Test'!B2:B5,MODE(MATCH('Day Test'!B2:B5,'Day Test'!B2:B5,0))))
可用正确公式
直接在目标单元格输入以下公式即可:
=IFERROR(INDEX(FILTER('Day Test'!B2:B,'Day Test'!C2:C="A",'Day Test'!B2:B<>""),MODE(MATCH(FILTER('Day Test'!B2:B,'Day Test'!C2:C="A",'Day Test'!B2:B<>""),FILTER('Day Test'!B2:B,'Day Test'!C2:C="A",'Day Test'!B2:B<>""),0))),"")
公式逻辑说明
- 所有数据范围采用
B2:B、C2:C的无结束行开放写法,后续「Day Test」工作表新增的行只要填写了对应列内容,会自动被纳入计算范围,不需要手动修改公式 FILTER函数先做数据清洗,只保留同时满足「C列值为"A"」、「B列非空」两个条件的B列数据,自动跳过不符合规则的行- 沿用原公式兼容文本、数值格式的众数计算逻辑:
MATCH返回每个值在筛选后数据集中第一次出现的位置,MODE提取出现频次最高的位置值,最后由INDEX取出对应位置的实际值 - 最外层
IFERROR做容错处理,当没有符合条件的统计数据时,单元格返回空值,不会显示错误代码
内容的提问来源于stack exchange,提问作者Stuart
相关产品推荐
相关产品推荐

