Excel使用INDEX+MODE+MATCH公式遇空值报错及日期选择实现问题
公式报错修复方案
你的报错原因是遍历范围包含空单元格时,MATCH函数会匹配到空值,MODE函数无法处理空值对应的匹配结果,最终触发错误:
Did not find value '' in MATCH evaluation.
最高频次条目公式
适用Excel 365/2021及以上版本(支持动态数组)
先用FILTER筛除空单元格,再执行匹配统计:
=INDEX(FILTER('Data Input'!F433:F610,'Data Input'!F433:F610<>""),MODE(MATCH(FILTER('Data Input'!F433:F610,'Data Input'!F433:F610<>""),FILTER('Data Input'!F433:F610,'Data Input'!F433:F610<>""),0)))
适用旧版Excel(无FILTER函数)
使用IF判断跳过空值,输入完成后需要按Ctrl+Shift+Enter触发数组公式计算:
=INDEX('Data Input'!F433:F610,MODE(IF('Data Input'!F433:F610<>"",MATCH('Data Input'!F433:F610,'Data Input'!F433:F610,0),NA())))
最低频次条目公式
MODE函数本身不支持统计最低频次,需搭配其他函数实现:
适用Excel 365/2021及以上版本
=TAKE(SORTBY(UNIQUE(FILTER('Data Input'!F433:F610,'Data Input'!F433:F610<>"")),COUNTIF('Data Input'!F433:F610,UNIQUE(FILTER('Data Input'!F433:F610,'Data Input'!F433:F610<>""))),1),1)
如果存在多个频次相同的最低值,公式会返回第一个出现的条目。
自定义日期范围统计实现方案
可以通过日历控件+多条件筛选实现需求,操作步骤如下:
- 启用开发工具:依次点击「文件」→「选项」→「自定义功能区」,勾选左侧列表中的「开发工具」后确认。
- 插入日期选择控件:点击「开发工具」→「插入」→「ActiveX控件」,选择「日历控件16.0」,分别插入两个日历控件,绑定到空白单元格作为起始日期(如C1)和结束日期(如D1),选择日期后会自动写入对应绑定单元格。
- 修改统计公式的数据源:假设你数据源的日期字段存储在'Data Input'表的A列,将之前公式中筛除空值的
FILTER部分,替换为带日期条件的多条件筛选逻辑:
FILTER('Data Input'!F:F,('Data Input'!A:A>=C1)*('Data Input'!A:A<=D1)*('Data Input'!F:F<>""))
修改后即可实现选择任意日期范围,自动统计对应区间的最高/最低频次条目。
内容的提问来源于stack exchange,提问作者Shavlen
相关产品推荐
相关产品推荐

