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

基于多列统计唯一日期及施工数据的Google Sheets函数求助

解决方案:员工工作数据统计(支持动态日期)

针对你遇到的统计问题,我整理了几个简洁高效的Google Sheets公式,解决唯一日期计数、个人/每日总量汇总的问题,同时支持动态日期范围(起始固定为2019-05-31):

1. 统计每位员工的唯一工作日期数

这个需求的核心是把分散在多列的员工数据和对应日期绑定,再按员工分组去重计数。用FLATTEN展开多列员工数据,配合QUERY分组统计:

=QUERY(
  FLATTEN({AI3:AM, AG3:AG&""}),
  "SELECT Col1, COUNT(DISTINCT Col2) 
   WHERE Col1 IS NOT NULL 
   GROUP BY Col1 
   LABEL COUNT(DISTINCT Col2)'唯一工作日期数'",
  1
)
  • 原理:FLATTEN({AI3:AM, AG3:AG&""})把AI到AM列的员工数据拆成单列,每一行对应原来的日期(转成文本避免格式冲突);
  • COUNT(DISTINCT Col2)自动对每个员工的日期去重计数;
  • 过滤掉空值员工,避免无效统计。

2. 个人砌块总量+厕所总量汇总

不用逐个列写COUNTIF/SUMIF,用同样的展开思路,一次输出两个核心指标:

=QUERY(
  FLATTEN({AI3:AM, F3:F, AG3:AG&""}),
  "SELECT Col1, COUNT(Col1), SUM(Col2) 
   WHERE Col1 IS NOT NULL 
   GROUP BY Col1 
   LABEL COUNT(Col1)'砌块总量', SUM(Col2)'厕所总量'",
  1
)
  • COUNT(Col1)统计每个员工出现的次数(即砌块数量,因为每一行对应一个砌块);
  • SUM(Col2)汇总该员工所有对应行的厕所数量(F列);
  • 自动处理多列员工的分散数据,不用手动加总各列的结果,避免遗漏。

3. 每日砌块+厕所总量汇总(支持动态日期)

假设你用单元格B1存放动态结束日期(格式和AG列一致,为整数日期),起始日期固定为2019-05-31(对应整数日期43610,可通过DATEVALUE("2019-05-31")验证):

=QUERY(
  {AG3:AG, F3:F},
  "SELECT Col1, COUNT(Col1), SUM(Col2) 
   WHERE Col1 >= 43610 
   AND Col1 <= "&VALUE(B1)&"
   GROUP BY Col1 
   ORDER BY Col1 
   LABEL Col1'日期', COUNT(Col1)'当日砌块总量', SUM(Col2)'当日厕所总量'",
  1
)
  • 按日期分组统计,自动按日期排序;
  • 动态日期通过引用B1实现,修改B1的数值即可快速更新统计范围;
  • 如果AG列是标准日期格式而非整数,把条件改成Col1 >= date '2019-05-31' AND Col1 <= date '"&TEXT(B1, "yyyy-mm-dd")&"'即可适配。

为什么你之前的公式会出问题?

单独用COUNTUNIQUE+COUNTIF的组合无法关联员工和对应的日期——COUNTUNIQUE是对整列日期统计,而COUNTIF只筛选员工,两者没有绑定对应关系。必须先把员工-日期-厕所数的对应关系展开成一维表,再分组统计,这就是FLATTEN函数的核心作用。

内容的提问来源于stack exchange,提问作者ciaran haines

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:07:40