前言|职场实例

在日常的职场办公场景中,我们会经常遇到“日期 时间点”复合格式的时间数据,我们需要将两个这种格式的数据进行计算,得到时间差,而且最后要以“X小时X分钟”格式显示时间差。

之前在一篇文章中讲解过这样的问题,由于之前的方法受一定情况束缚,只能解决特定的模型,不能完美的解决所有的情况。所以今天小编又总结了一种升级版的方法,可以完美的解决“日期 时间点”复合格式的时间数据计算时间差的问题。

计算时间差的方法(日期时间格式的混合时间数据)(1)

公式|解决方案

我们可以在C2单元格直接输入函数公式:

=LEFT(TEXT(TEXT(B2-A2,"[M]")/60,"0.00"),2)&"小时"&ROUND(RIGHT(TEXT(TEXT(B2-A2,"[M]")/60,"0.00"),2)/100*60,0)&"分"

下拉填充即可得到所有的结果。如下图所示:

计算时间差的方法(日期时间格式的混合时间数据)(2)

详解|长公式拆解理解

我们看到上面的公式很长,嵌套了多个函数,比如LEFT函数,RIGHT函数,TEXT函数,ROUND函数等。每个函数都非常的基础,其实整个公式很好理解,下面我们拆解公式理解一下。

①获取分钟时间差

C2单元格输入公式:

=TEXT(B2-A2,"[M]")

计算时间差的方法(日期时间格式的混合时间数据)(3)

②将分钟时间差除以60得到小时时间差

D2单元格输入公式:

=C2/60

计算时间差的方法(日期时间格式的混合时间数据)(4)

③将小时时间差批量转换为两位小数格式

E2单元格输入公式:

=TEXT(D2,"0.00")

计算时间差的方法(日期时间格式的混合时间数据)(5)

④提取小时时间差的“小时”数据部分

在F2单元格输入公式:

=LEFT(E2,2)&"小时"

用LEFT函数从左向右进行提取2位。

计算时间差的方法(日期时间格式的混合时间数据)(6)

⑤提取转换小时时间差的“分钟”数据部分

在G2单元格输入函数:

=ROUND(RIGHT(E2,2)/100*60,0)&"分"

用RIGHT函数从右向左进行提取2位,然后除以100再乘以60,最后用ROUND函数四舍五入保留整数得到分钟数部分。

计算时间差的方法(日期时间格式的混合时间数据)(7)

⑥合并“小时”与“分钟”

在H2单元格输入公式:

=F2&G2

计算时间差的方法(日期时间格式的混合时间数据)(8)

,