Excel如何基于另一列条件忽略空单元格返回最高频文本
修正公式方案
错误原因
原公式返回#N/A是因为未过滤A列空单元格,空值参与运算后MODE函数无法匹配到有效众数。
通用兼容公式(支持所有Excel版本)
=INDEX($A$1:$A$11,MODE(IF(($B$1:$B$11=3)*($A$1:$A$11<>""),MATCH($A$1:$A$11,$A$1:$A$11,0))))
- 旧版Excel(2019及更早)输入完成后,需要按
Ctrl+Shift+Enter组合键触发数组运算 - 公式中新增
$A$1:$A$11<>""条件过滤空单元格,*表示同时满足「B列等于3」和「A列非空」两个规则
365/2021及以上版本简化公式(无需数组回车)
如果需要返回所有并列最高频的文本,可以使用:
=LET( 筛选范围,FILTER(A1:A11,(B1:B11=3)*(A1:A11<>"")), 唯一值,UNIQUE(筛选范围), 出现次数,BYROW(唯一值,LAMBDA(x,COUNTIF(筛选范围,x))), FILTER(唯一值,出现次数=MAX(出现次数)) )
如果只需要返回第一个出现的最高频文本,直接使用通用公式回车即可。
内容的提问来源于stack exchange,提问作者blackmamba
相关产品推荐
相关产品推荐

