excel中日期根据起止时间自动递归的函数

通常在工程施工或者类似一线工作中,需要记录包含日期、起始时间、终止时间的相关原始记录。在excel中将A\B\C三列分别定位为日期、起始时间、终止时间,为方便电子版编制,现将日期设置为根据起止时间自动递归的函数。

我们以下图为例:

日期时间共计(h)
3月3日17:3618:060.5
3月4日18:062:068.0

 

其中A3=3月3日,B3=17:36,C3=18:06,

通常为了实现日期自动递归,A4=A3+IF(C4<B4,1,0),通过起止时间大小判断日期是否增加。

但是如果终止时间通过输入共计时间来控制,即B4=C3=18:06,C4=B4+D4/24=2:06,A4中的逻辑判断C2<B2永远都会为false,即出现日期不会增加的情况:

日期时间共计(h)
3月3日17:3618:060.5
3月3日18:062:068.0

通过将日期单元格格式修改为常规即可发现,在这种逻辑下停止时间永远会比起始时间大,即使是凌晨也是第二天的凌晨,而不会像时间显示格式那样判断为当日时间比较大小。

日期时间共计(h)
3月3日0.7333333330.7541666670.5
3月3日0.7541666671.08758.0

可以通过取余函数MOD来去掉时间的日期积累,即C4=MOD(B4+D4/24,1)=2:06

此时C4单元格中的2:06实际数值为0.0875,可以用于当日时间比较。

接下来进一步探讨行与行之间如何规避引用数据受新增删除行影响,A4=A3+IF(C4<B4,1,0),公式中出现了对A3的引用,但是如果我在A3\A4之间增加行,原A4单元格将会成为A5=A3+IF(C4<B4,1,0),需要手动调整为A5=A4+IF(C5<B5,1,0),十分繁琐,如何使公式只出现本行的引用,将单独的行进行模块化,以便灵活调整。

可以通过偏移函数即OFFSET函数实现,即将A4=A3+IF(C4<B4,1,0)修改为A4=OFFSET(A4,-1,0)+IF(C4<B4,1,0),A4偏移-1行,0列,即取本单元格的上一个单元格,同理修改其他需要引用其他行数据的单元格,如起始时间,这样将所有引用都聚集在本行,实现行的模块化,规避了新增删除行后的公式手动调整,增加了工作效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值