如果您格式化经过时间的单元格(使用[h]:mm:ss的自定义显示格式),则Excel允许您在该单元格中输入小时,分钟和秒。例如,您可以简单地输入129:14:30来表示129小时14分钟30秒。但是,如果尝试在单元格中输入很大的时间值,则会遇到问题。当您尝试输入超过10,000小时的时间值(如12721:52:45)时,Excel不会将条目解析为时间,而是将其视为文本。

有趣的是,当使用[h]:mm:ss将单元格格式化为经过时间时,该单元格可以轻松显示超过10,000小时的经过时间。因此,您可以对一系列单元格求和以得出超过10,000小时的值,但不能输入更大的值。

不幸的是,Excel中似乎无法解决此问题。但是,最好的解决方案可能是重新考虑如何输入数据。毕竟,10,000小时等于416天16小时-超过一年。

您可以轻松地创建一个用于输入天数的列,而将另一列用于部分天数。然后,第三列可以使用公式返回基于其他两列的经过时间。

另一个解决方案是根本不依靠Excel来解析输入。如果要输入大量小时(例如32,315),则可以在单元格中输入以下内容:

=32315/24

Excel会保留您作为公式输入的内容,但会显示正确的小时,​​分​​钟和秒数。如果您想获得更高的精确度,则可以输入代表时间的小时部分的小数部分。例如,37分钟15秒是一个小时的0.620833。这样,您可以输入以下时间:

=32315.620833/24

当然,以这种方式输入时间会变得很繁琐,尤其是当您已经计算出以分钟和秒表示的小时的小数部分时。为了克服这个问题,您可以创建一个自定义函数,该函数允许您输入小时,分钟和秒,并返回可以使用经过时间格式轻松格式化的值。

以下功能可以解决问题:

Public Function RealBigTime(hr As Double, _   min As Double, sec As Double) As Double     Dim hr1 As Double     Dim min1 As Double     Dim sec1 As Double

Application.Volatile     hr1 = hr / 24     min1 = min / 24 / 60     sec1 = sec / 24 / 60 / 60     RealBigTime = hr1 + min1 + sec1 End Function

创建函数之后,在单元格中输入= RealBigTime(32341,30,45)之类的内容。结果是可以使用经过时间格式格式化为32341:30:45的值。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

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

本技巧(2038)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: