You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheet多条件统计问题:按年份+指定周统计企业出现次数

Google Sheets 按年份+指定周统计企业出现次数解决方案

一、自动统计所有企业及频次(实时响应周数切换)

使用QUERY函数结合动态单元格引用,实现年份和周数的实时筛选统计:

=QUERY(数据!A:C, "SELECT B, COUNT(B) WHERE YEAR(A) = "&仪表板!A1&" AND WEEKNUM(A) = "&仪表板!B1&" AND B IS NOT NULL GROUP BY B ORDER BY COUNT(B) DESC LABEL B '企业名称', COUNT(B) '出现次数'", 1)

参数说明:

  • 数据!A:C:替换为你的数据源范围(A列存日期,B列存企业名称)
  • 仪表板!A1:年份选择控件所在单元格
  • 仪表板!B1:周数选择控件所在单元格
  • WEEKNUM(A):若你的周数起始规则为周一,可改为WEEKNUM(A,2)

该公式会自动按指定年份+周数统计企业出现次数,按频次降序排列,切换周数/年份时实时更新结果。

二、批量列出所有并列最高频次的企业

如果需要单独提取所有频次并列第一的企业,可基于上述统计结果,用FILTER和MAX组合实现:

假设基础统计结果在D:E列(D为企业名称,E为次数):

  1. 获取最高频次:
=MAX(E2:E)
  1. 列出所有频次等于最高值的企业:
=FILTER(D2:D, E2:E = MAX(E2:E))

整合版公式(一步到位)

用LET函数将统计与提取合并,避免冗余:

=LET(
  统计结果, QUERY(数据!A:C, "SELECT B, COUNT(B) WHERE YEAR(A) = "&仪表板!A1&" AND WEEKNUM(A) = "&仪表板!B1&" AND B IS NOT NULL GROUP BY B ORDER BY COUNT(B) DESC", 0),
  最高频次, INDEX(统计结果, 1, 2),
  {统计结果; "并列最高企业:", TEXTJOIN(", ", TRUE, FILTER(INDEX(统计结果,,1), INDEX(统计结果,,2)=最高频次))}
)

该公式会先输出完整的企业频次列表,最后一行自动汇总所有并列最高的企业名称。

三、常见问题修复

  • 切换周数后公式不筛选:检查年份/周数控件单元格是否为数值格式,确保QUERY中的引用&仪表板!A1&没有被引号包裹(静态值会导致无法更新)
  • 周数统计偏差:根据所在地区调整WEEKNUM的第二参数,比如中国常用WEEKNUM(A,2)(周一为一周第一天)
  • 统计包含空白值:在QUERY的WHERE条件中添加AND B IS NOT NULL,过滤无意义的空数据

内容的提问来源于stack exchange,提问作者Porky Guy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 16:23:25