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

Google Sheets员工月度工时动态求和数组实现技术问询

解决Google Sheets月度工时统计问题

问题分析

你当前的公式失效核心原因:

  • QUERY函数中使用row1是错误语法,QUERY需用列范围(如B1:D1)而非行号指代数据;
  • 原公式仅针对单行员工求和,未实现按每位员工分别统计月度总和的需求。

动态统计公式

生成月度总和数组

若需统计2023年9月、2023年10月的月度工时,以下公式可生成每位员工的月度总和二维数组(每行对应一位员工的各月总和):

=ARRAYFORMULA(BYROW(B2:D3, LAMBDA(emp_row,
  LET(
    target_periods, {"2023-09"; "2023-10"},
    monthly_sums, MAP(target_periods, LAMBDA(period,
      SUM(FILTER(emp_row, TEXT(B1:D1, "yyyy-mm")=period))
    )),
    monthly_sums
  )
)))

生成指定格式字符串

若需要将结果格式化为{23年9月工时总和;23年10月工时总和;...}的字符串,可使用调整后的公式:

=ARRAYFORMULA(BYROW(B2:D3, LAMBDA(emp_row,
  LET(
    target_periods, {"2023-09"; "2023-10"},
    monthly_sums, MAP(target_periods, LAMBDA(period,
      SUM(FILTER(emp_row, TEXT(B1:D1, "yyyy-mm")=period))
    )),
    "{"&TEXTJOIN("; ", FALSE, monthly_sums)&"}"
  )
)))

适配大范围数据

若你的数据区域更大(如日期列从B1到Z1,员工行从B2到B100),只需修改公式中的范围参数:

  • 将B2:D3替换为实际员工工时区域(如B2:Z100);
  • 将B1:D1替换为实际日期表头区域(如B1:Z1);
  • 修改target_periods中的年月值即可扩展统计范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 18:22:25