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

如何修改COUNTIFS公式实现员工单日工时累计统计?

解决员工单日总工时≥10小时的天数统计问题

原公式仅统计单个单元格工时≥10的记录数,无法累计同一员工同一天的多行工时总和,导致统计结果与预期不符。以下是两种修改方案:

方案1:兼容所有Excel版本的公式

针对每一天单独计算总工时,判断是否达标后累加达标天数:

=IFERROR(
(--(SUMIFS(Table6[MON], Table6[Employee Name], [@Employee])>=10)) +
(--(SUMIFS(Table6[TUES], Table6[Employee Name], [@Employee])>=10)) +
(--(SUMIFS(Table6[WED], Table6[Employee Name], [@Employee])>=10)) +
(--(SUMIFS(Table6[THURS], Table6[Employee Name], [@Employee])>=10)) +
(--(SUMIFS(Table6[FRI], Table6[Employee Name], [@Employee])>=10)) +
(--(SUMIFS(Table6[SAT], Table6[Employee Name], [@Employee])>=10)) +
(--(SUMIFS(Table6[SUN], Table6[Employee Name], [@Employee])>=10))
, "-")

逻辑说明:

  • SUMIFS(Table6[MON], Table6[Employee Name], [@Employee]):计算当前员工周一的所有工时总和
  • --(总和>=10):将布尔判断结果(TRUE/FALSE)转换为1/0,达标计1,不达标计0
  • 7个工作日的判断结果相加,得到总达标天数
  • IFERROR(..., "-"):处理无数据的异常情况,返回短横线

方案2:Excel 365/2021 简化公式

利用动态数组函数批量处理7列,代码更简洁:

=IFERROR(
SUM(--(BYCOL(Table6[[MON]:[SUN]], LAMBDA(col, SUMIFS(col, Table6[Employee Name], [@Employee]))>=10))),
"-")

逻辑说明:

  • BYCOL(Table6[[MON]:[SUN]], LAMBDA(col, SUMIFS(col, Table6[Employee Name], [@Employee]))):批量计算当前员工7天每天的工时总和,返回包含7个值的数组
  • --(数组>=10):将数组中每个总和的判断结果转为1/0
  • SUM(...):累加所有达标天数
  • 同样用IFERROR处理异常情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:48:17