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

如何用Excel的SUMIF()仅求和小时数?Excel2007加班计算需求

解决Excel 2007中加班时长取整与SUMIF求和问题

嘿,针对你在Excel 2007里遇到的两个加班时长处理问题,我给你整理了具体的解决方法:

一、忽略分钟,仅保留加班时长的小时数

你的需求是把类似0.18(对应约10分钟)的结果转成0.0,本质就是舍去分钟对应的小数部分,只保留整数小时,分两种情况处理:

如果你的加班时长是小数格式(比如0.18代表0.18小时)

直接用INT()函数,它会自动舍去小数部分,只保留整数:

  • 假设加班时长在单元格A1,输入公式:=INT(A1)
  • 效果:0.18→0,1.45→1,2.9→2,完美忽略所有分钟部分。

如果你的加班时长是时间格式(比如显示为00:10)

用HOUR()函数更直接,它会提取时间中的小时数,完全忽略分钟:

  • 假设时间在单元格A1,输入公式:=HOUR(A1)
  • 效果:00:10→0,1:30→1,2:59→2,刚好符合你的需求。

二、用SUMIF(或替代函数)对处理后的小时数求和

Excel 2007的SUMIF()函数不能直接在求和区域嵌套函数,所以给你两种方案:

方案1:用辅助列先转换,再SUMIF求和

  1. 新增一列(比如B列),在B1输入=INT(A1)(或=HOUR(A1),根据你的数据格式选),下拉填充所有行;
  2. 假设员工姓名在C列,要统计"SANIA SARWER"的总加班小时数,输入公式:
    =SUMIF(C:C, "SANIA SARWER", B:B)
    这样就会只对符合姓名条件的、已经处理好的小时数求和。

方案2:不用辅助列,用SUMPRODUCT直接计算

如果不想加辅助列,用SUMPRODUCT()可以一步到位,它支持条件判断+计算求和:

  • 假设A列是加班时长,C列是员工姓名,输入公式:
    =SUMPRODUCT((C:C="SANIA SARWER")*INT(A:A))
  • 原理:先判断C列是否等于目标姓名,得到TRUE/FALSE的数组,再乘以INT(A:A)的结果(TRUE转1,FALSE转0,只有符合条件的行才会被计入求和),最后自动求和。
  • 注意:如果是时间格式,把INT(A:A)换成HOUR(A:A)就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:43:47