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

Excel中结合XLOOKUP按员工、项目、月份求和工时的公式求助

计算员工每月项目总工时的Excel公式方案

方法1:用SUMIFS直接求和(最简洁高效)

这是最适配你需求的方法,多条件一步到位:
假设你要在单元格(比如F2)计算指定员工(F1)、指定项目(G1)、2022年6月的总工时,公式如下:

=SUMIFS(D:D,
    A:A, F1,
    B:B, G1,
    C:C, ">="&DATE(2022,6,1),
    C:C, "<="&EOMONTH(DATE(2022,6,1),0)
)
  • 细节说明:
    • D:D是存放工时的列,A:A/B:B分别对应员工、项目列
    • DATE(2022,6,1)生成目标月份的第一天,EOMONTH(...,0)自动算出当月最后一天,不用手动查月末日期

方法2:结合SUBTOTAL实现筛选后求和

如果需要支持手动筛选数据后仍能正确统计可见行的工时,用这个方案:

=SUMPRODUCT(SUBTOTAL(9,OFFSET(D2,ROW(D:D)-ROW(D2),0,1,1)),
    --(A:A=F1),
    --(B:B=G1),
    --(MONTH(C:C)=6),
    --(YEAR(C:C)=2022)
)
  • 细节说明:
    • SUBTOTAL(9,...)会自动忽略隐藏行,适配筛选场景
    • --(条件)把“是/否”的逻辑判断转成1/0,SUMPRODUCT负责把符合所有条件的工时累加起来

用XLOOKUP组合实现的思路

XLOOKUP本身是查找函数,需要配合数组逻辑和SUM来完成求和:

=SUM(XLOOKUP(1,(A:A=F1)*(B:B=G1)*(MONTH(C:C)=6)*(YEAR(C:C)=2022),D:D,"",0,1))
  • 细节说明:
    • (A:A=F1)*(B:B=G1)*...生成一个逻辑数组,符合所有条件的位置值为1,其余为0
    • XLOOKUP找到所有值为1的位置,返回对应的工时,最后用SUM求和
    • 注意:Excel 365/2021版本直接回车即可,旧版需要按Ctrl+Shift+Enter触发数组计算

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 13:05:37