在线等,急!excel 多区间取值问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 11:20:54
每个月的额定工时是176(每天的额定工时是7小时)
工时超过额定工时176的,加班1小时(包括1小时)以内不计算;加班1小时以上3.5小时(包括3.5小时)以下算加工半天;达3.5小时以上7小时(包括7小时)以下算加工1天,超出部分如此类推。
工时不足额定工时176的,不足1小时(包括1小时)以内不计算;不足1小时以上3.5小时(包括3.5小时)以下算缺半天;达3.5小时以上7小时(包括7小时)以下算缺1天,超出部分如此类推。
即:一个人10月份上班的工时是192,那么他就算加工0.5天(192-176=16,16/7=2余2,2<3.5,所以他算加工2.5天)
在excel中如何算呢?
上面那个工时192的,是算加工2.5天

麻烦是麻烦了点,但还是可以做到的,假设A1是实际工时,在其他单元格输入公式
=IF(A1>=176,IF(MOD((A1-176),7)<=1,ROUNDDOWN((A1-176)/3.5,0)/2,ROUNDUP((A1-176)/3.5,0)/2),IF(MOD((176-A1),7)<=1,ROUNDDOWN((176-A1)/3.5,0)/2,ROUNDUP((176-A1)/3.5,0)/2)*(-1))

你的算法是不是有点问题。

达3.5小时以上7小时(包括7小时)以下算加工1天。超出的16个小时为什么是除7,而不是除3.5呢?

员工会不会意见呢

假设A2是工时,B2显示的是加班天数,则在B2输入公式

=IF(A1<176,IF(MOD(176-A1,7)=0,-INT((176-A1)/7),IF(MOD(176-A1,7)>3.5,-INT((176-A1)/7)-1,IF(MOD(176-A1,7)>1,-INT((176-A1)/7)-0.5,-INT((176-A1)/7)))),IF(MOD(A1-INT(A1/176)*176,7)=0,INT((A1-INT(A1/176)*176)/7),IF(MOD(A1-INT(A1/176)*176,7)>3.5,INT((A1-INT(A1/176)*176)/7)+1,IF(MOD(A1-INT(A1/176)*176,7)>1,INT((A1-INT(A1/176)*176)/7)+0.5,INT((A1-INT(A1/176)*176)/7)))))

说明,负数表示缺工

要注意的是:
一天一天的计算,同把每天都加班时间合到一起计算是不同的,合在一起算,员工加班天数有可能会少,
比如第一天工作,10.6个小时,第二天工作10.6,其他天都是7个小时,一天一天算就是加班2天,合起来算就是1天.

例如:
A B C D E F G
1 实际工数 标准 差 整数部分 小数部分 判断 加工数
2 172 176 -4 0 4 1 1<