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

Excel中以日期为列标题的数据按指定日期范围汇总工时的方案咨询

Excel中以日期为列标题的数据按指定日期范围汇总工时的方案咨询

嘿,我完全懂你的烦恼——普通数据透视表要手动选一堆日期列,或者每次换范围都要重新设置,确实太折腾了。这里有几个实用的方案,你可以根据自己的Excel版本和需求来挑:

方案一:用函数做动态汇总(适合快速调整日期范围)

先在表格外设置两个单元格,比如E1放起始日期,F1放结束日期。假设你的数据结构是:

  • A列:姓名(A2:A100)
  • 第一行(B1:ZZ1):日期列标题
  • B2:ZZ100:对应工时数据

然后在G2单元格输入下面的公式,下拉就能得到每个人指定日期范围内的总工时:

=SUM(INDEX(B2:ZZ100,MATCH(A2,A2:A100,0),MATCH(E1,B1:ZZ1,0)):INDEX(B2:ZZ100,MATCH(A2,A2:A100,0),MATCH(F1,B1:ZZ1,0)))

原理是用MATCH定位起始/结束日期的列位置,再用INDEX圈出对应姓名的工时列范围,最后SUM求和。只要改E1和F1的日期,汇总结果会自动更新,完全不用手动调整。

方案二:改造数据结构,用更灵活的数据透视表

普通透视表麻烦是因为你的数据是宽格式(日期当列),转成长格式(每一行是「姓名+日期+工时」)后,透视表就能随心所欲地筛选日期范围了:

  1. 选中你的整个数据区域,点击「数据」选项卡→「从表格/区域」(如果弹出提示就勾选「我的表格有标题」)
  2. 进入Power Query编辑器后,选中「姓名」列,点击「转换」选项卡→「逆透视其他列」
  3. 此时数据会变成三列:姓名、属性(日期)、值(工时),可以把「属性」重命名为「日期」,「值」重命名为「工时」
  4. 点击「关闭并上载」,把转换后的数据放到新工作表
  5. 基于这个长格式数据做透视表:把「姓名」拖到「行」区域,「日期」拖到「筛选器」区域,「工时」拖到「值」区域(设置为求和)
    现在你只要在透视表的日期筛选器里选想要的范围(比如某一周),就能自动得到每个人的总工时了。后续新增数据的话,只要刷新透视表就行,非常省心。

方案三:Excel 365/2021专属:动态数组一键生成汇总表

如果你用的是新版本Excel(支持动态数组),可以用LET+FILTER+BYROW组合一步生成汇总表,连下拉公式都省了:

=LET(
    日期行, B1:ZZ1,
    工时区域, B2:ZZ100,
    姓名列, A2:A100,
    起始日期, E1,
    结束日期, F1,
    筛选后的工时列, FILTER(工时区域, (日期行>=起始日期)*(日期行<=结束日期)),
    HSTACK(姓名列, BYROW(筛选后的工时列, SUM))
)

输入后会直接生成包含姓名和对应汇总工时的完整表格,修改E1/F1的日期范围,表格会自动更新,效率拉满。

小提醒

  • 确保你的日期列标题是真正的日期格式,不是文本,不然MATCH、FILTER这类函数会出错(可以选中日期列,右键→设置单元格格式→日期)
  • 如果用Power Query转长格式,记得后续新增数据后要刷新查询(右键转换后的表格→刷新)

备注:内容来源于stack exchange,提问作者Kaijuu Yum

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 13:39:39