Google Sheets实现带搜索时段验证菜单的唯一项计数降序排序
可实现性结论
该需求可完全实现,无需辅助列,单公式搭配数据验证下拉菜单即可覆盖全部逻辑。
实现步骤
1. 配置时段选择下拉菜单
- 选中用于放置时段选择器的目标单元格(即你原有公式中引用的D2单元格)
- 打开顶部菜单栏「数据」-「数据验证」
- 验证条件选择「列表项」,按顺序输入以下可选值:
24 HOURS、2 DAYS、3 DAYS、7 DAYS、2 WEEKS、1 MONTH、3 MONTHS、6 MONTHS、1 YEAR、2 YEARS、3 YEARS、TOTAL - 保存设置后即可通过下拉选择切换统计时间范围,触发逻辑和你原有COUNTIFS公式完全一致。
2. 替换统计公式
删除原有QUERY统计公式,在统计结果起始单元格输入以下公式即可:
=QUERY( FILTER(A:B,A:A>=TODAY()-VLOOKUP(SUBSTITUTE(D2," ",""),{"24HOURS",0;"2DAYS",1;"3DAYS",4;"7DAYS",7;"2WEEKS",14;"1MONTH",30;"3MONTHS",90;"6MONTHS",180;"1YEAR",365;"2YEARS",730;"3YEARS",1095;"TOTAL",999999},2,FALSE)), "Select Col2,count(Col2) where Col2 matches '^(?!(?:ITEMS|ExcludeB|ExcludeC)$).+' group by Col2 order by count(Col2) DESC,Col2 ASC label count(Col2) ''", 0)
公式逻辑说明
- 内层
FILTER函数先完成时间范围过滤:仅保留日期列符合选中时段要求的行数据,把你原有COUNTIFS中的时间判断逻辑前置,避免QUERY直接处理全量无效数据 - QUERY函数部分适配调整:
- 因FILTER输出为动态数组,引用列时使用
Col2对应原B列的统计条目列 - 排序规则新增
Col2 ASC,实现出现次数相同的条目按文本字母升序排列,满足排序要求 - 完全保留原有正则排除规则,自动过滤不需要统计的ITEMS、ExcludeB、ExcludeC三类条目
- 因FILTER输出为动态数组,引用列时使用
- 切换下拉菜单的时段选项时,公式会自动重算对应时间范围的统计结果,无需手动调整参数
效果参考

内容的提问来源于stack exchange,提问作者Verminous
相关产品推荐
相关产品推荐

