Piers有一个运行的报告,完成后,他以秒为单位记录开始时间和持续时间。如果A1是开始时间,B1是秒数,Piers使用以下公式确定结束时间:

=A1+TIME(0,0,B1)

该公式可以正常工作,除非报表执行花费了超过32,767秒的时间(这通常会发生)。 Piers想知道他可以使用什么公式来克服明显的Excel限制。

首先,重要的是要了解您所发现的确实是Excel的局限性。或更确切地说,是TIME功能的限制。您在函数中使用的三个参数(代表小时,分钟和秒)必须是整数值。每个值都必须在0到32767的范围之内,这就是“编程说话”。超出该范围,您将得到一个错误。

一种解决方案是简单地确保您使用的值不超出此范围。我喜欢仍然使用TIME函数来重新编写公式:

=A1+TIME(INT(B1/3600),0,MOD(B1,3600))

原始公式中的限制意味着您的报表运行时间不能超过9小时(32767秒),而此修订后的公式将处理近4年的时间。 (如果您要运行4年以上的报告,则可能是错误的!)

当然,您可以完全绕过使用TIME函数,而只是想出自己的公式来将秒添加到A1中的值。这比看起来容易。您需要做的就是记住时间值在Excel中存储为一天的一部分。由于每天有86,400秒(60秒60分24小时),因此可以使用以下公式:

=A1+B1/86400

只要确保包含公式的单元格的格式可以显示时间,就不会有问题。 (就像格式化单元格A1一样格式化单元格;您可以使用Format Painter来做到这一点。)

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(9421)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处找到适用于Excel的较旧菜单界面的本技巧的版本: