跨越Excel 60进制栅栏

数字办公

郭子君:我在用Excel计算时间之和时发现,如果运算的结果超出60分钟,Excel会“智能”地舍去60或运行的结果根本就不是我期望的格式,可在实际工作中又经常会用到这些运算。如某人从甲地到乙地需要47分32秒,从乙地到丙地需要21分05秒,那如何计算跑完全程所需的时间总长度呢?

答:Excel中的确没有提供这方面的功能,但利用自定义函数,可以满足你的需求。按组合键“Alt+F11”打开VBA编辑器,单击“插入”菜单中的“模块”命令,在当前的工作簿中插入一个模块,在默认的“模块1”中定义一个名为“TimeAdd”的自定义函数,自定义函数的代码下载地址:http://download.cpcw.com。

小提示:代码中用到了Split函数,该函数可以把字符串按指定的分隔符分割成若干个部分并保存到相应的数组变量中去。这样就突破了常规方法中用Left、Mid、Right函数只能提取两位数时间的限制,也解决了用Hour、Minute、Second函数提取时间时不能超过60分钟和60秒钟的限制,3位数以上时间也一样运算,非常的方便。

关闭VBA编辑器返回到Excel工作表中,此时利用TimeAdd函数就可以方便地计算出两段时间之间的和了(见图)。

10-f13-2-1.jpg

若要计算两个时间之间的差值,可再定义一个函数TimeDec,将代码中的“newtime = atime + btime”改为“newtime=atime-btime”,代码末尾一行的变量“timeadd”改为“timedec”就可以了。