关于EXCEL计算工时的函数问题

来源:百度知道 编辑:UC知道 时间:2024/05/14 17:36:34
我用这个函数能解决问题,但是不十分了解是什么意思,有高手请指点下。

这是夜班的函数:
=ROUND((K138-J138)*24-(IF(AND(J138<TIMEVALUE("23:00"),K138>TIMEVALUE("22:30")),IF(K138>TIMEVALUE("23:00"),TIMEVALUE("23:00"),K138)-IF(J138<TIMEVALUE("22:30"),TIMEVALUE("22:30"),J138))+IF(AND(J138<TIMEVALUE("2:10"),K138>TIMEVALUE("2:10")),IF(K138>TIMEVALUE("2:10"),TIMEVALUE("2:10"),K138)-IF(J138<TIMEVALUE("2:10"),TIMEVALUE("2:10"),J138))+IF(AND(J138<1+TIMEVALUE("00:00"),K138>1),IF(K138>1+TIMEVALUE("00:00"),1+TIMEVALUE("00:00"),K138)-IF(J138<1,1,J138)))*24,2)
我会用这个函数,但不他了解具体的意思。

=ROUND(.....,2)是最后结果取两位小数,(K138-J138)*24是指取K138-J138乘以24.
IF(AND(J138<TIMEVALUE("23:00"),K138>TIMEVALUE("22:30"))是提
J138<23:00,K138>22:30同时满足这两个条件才进行下面的判断,如符合,那么当K138>23:00,就返回TIMEVALUE("22:30"),否则返回K138的值,下面你自己看看就会知道了.
AND是所以参数为真早返回真,否则就返回假,TIMEVALUE是把时间转换为序列.

补充楼上liuyinde朋友一点点:
ROUND(.....,2)是指所有条件公式的计算结果相加后,再四舍五入将计算结果保留两位小数
(K138-J138)*24 是指两个单元格的时间差,*24是计算相差的小时数,如果要计算相差分钟数就*1440
and是"和",必须满足and()括号里所有条件才返回真