跳至内容

如何在 Excel 中计算时间:示例指南

掌握在 Excel 中进行时间计算。将即可用公式直接应用到您的数据。
更新 2026年5月4日  · 4分钟

您可能会惊讶地发现,Excel 将时间存储为一天的一个分数。这意味着它并不会按您看到的方式存储 8:30 AM,而是存储为 0.35417,也就是 8.5/24。您也可以将其理解为全天的 35.4%

在本文中,我将介绍这些及其他重要情境:

  • 时间差: 计算同一天内开始时间与结束时间之间的间隔。
  • 耗时: 使用完整时间戳计算跨多天的持续时间。
  • 日期之间的时间: 计算两个日历日期之间的间隔,可按天、小时或分钟表示。
  • 总时间: 汇总多条时间记录而不触发 24 小时回绕。
  • 平均时间: 计算多条时间记录的平均值。

如何在 Excel 中计算时间差

您很可能需要计算开始时间与结束时间之间的间隔(结束时间 - 开始时间)。无论使用 12 小时制还是 24 小时制,Excel 都将它们视为小数。

Excel 进行该计算并返回小数并不是问题;关键在于如何让其易读,这就需要设置格式。

请看这个示例:

Excel 中格式化前的时间差

此处,单元格 C2 默认会显示 0.354167(8.5/24)。这个数值是正确的,表示 8 小时 30 分钟占一天的比例。为便于阅读,请应用自定义格式 [h]:mm

以下是应用正确格式的步骤:

  1. 选中单元格 C2。

  2. Ctrl + 1 打开设置单元格格式对话框。

  3. 单击 自定义

  4. 类型字段中输入 [h]:mm,或向下滚动选项并单击 [h]:mm:ss,然后单击 确定

Excel 中格式化后的时间差

单元格 C2 现在显示为 8:30:00

请注意,这里使用的是 [h]:mm 而不是 h:mm,原因在于如果没有方括号,Excel 会在超过 24 小时时将小时数回绕至 0。26 小时会显示为 2:00 而不是 26:00。方括号告诉 Excel 显示总小时数,而非时钟上的小时刻度。

Excel 同时支持 12 小时制(AM/PM)和 24 小时制。显示 9:00 AM 的单元格等同于 09:00,显示 9:00 PM 的单元格等同于 21:00。最重要的是在单元格中使用正确的格式,以确保计算按预期进行。

如何在 Excel 中计算耗时

耗时与时间差是相似但不同的两个概念。

前面提到,时间差用于计算同一天内两个时间点之间的间隔;而耗时跨越多天,并且需要完整的日期与时间值(时间戳)才能准确计算。

公式如下:

= enddate_timestamp - startdate_timestamp

两个单元格都必须包含完整的日期和时间。例如,3/1/2026 14:00 和 3/3/2026 9:30

Excel 中格式化前的耗时

当您将单元格 C2 设置为 [h]:mm 格式时,结果为 43:30,表示耗时 43 小时 30 分钟。

Excel 中格式化后的耗时

在进行这些计算时,您可能会遇到一些错误,例如单元格显示为 ######## 或负值,稍后我会说明如何解决这类错误。

如何在 Excel 中计算日期之间的时间

在计算日期差这个概念上,它与小时和分钟略有不同。Excel 将日期存储为序列号(1900 年 1 月 1 日为 1,1900 年 1 月 2 日为 2),因此可以轻松相减以得到间隔。

要计算日期间的天数,只需用结束日期减去开始日期 (= end_date - start_date)

如下所示:

Excel 中按正确格式显示的日期相差天数

结果将为 9 天,但请确保将单元格设置为数值格式;否则,Excel 会将该数值显示为日期而非天数计数。

得到天数后,您可以轻松换算为小时和分钟,做法是乘法转换:

  • 日期间的小时数 = (End_Date - Start_Date) * 24

  • 日期间的分钟数 = (End_Date - Start_Date) * 24 * 60

示例如下:

Excel 中按正确格式显示的日期间小时与分钟

日期间的小时数(两日期之间的总小时数)= 216 小时

日期间的分钟数(两日期之间的总分钟数)= 12,960

在 Excel 中,有一个函数可按特定单位(天、月、年)计算差值,该函数是 DATEDIF()。其用法逻辑如下:

= DATEDIF(Start_Date, End_Date, "d")   → Total difference in days
= DATEDIF(Start_Date, End_Date, "m")   → Total difference in months
= DATEDIF(Start_Date, End_Date, "y")   → Total difference in years

如果您想了解 Excel 的基础概念,建议查看我们的 Excel 基础学习路径。

如何在 Excel 中计算总时间

在 Excel 中汇总一列时间记录与汇总其他数据类型的方式相同。

= SUM(C2:C15)

不过,当所有时间记录之和超过 24 小时时,会回绕至 0。解决方法与本文开头所述一致:将汇总单元格设置为 [h]:mm 格式。

Excel 中格式化前的总时间

如果不对总计单元格(B7)进行格式设置,结果会是 16:30;而设置格式后,结果为 40:30。

Excel 中使用正确格式的总时间

为高效处理较大的时间总和,[h]:mm 格式可在无上限的情况下正确显示总小时数。此外,用于报告时,您也可以将总计转换为十进制小时:

= SUM(B2:B6) * 24

这会返回 40.0 而非 40:00,作为纯数字可在后续的乘除或可视化中更顺畅地使用。

如何在 Excel 中计算平均时间

Excel 使用 AVERAGE() 函数像处理其他数字一样计算平均时间;但若格式设置不当,结果可能难以正确显示。

逻辑如下:

= AVERAGE(B2:B8)

如果结果单元格格式为“常规”,您会看到类似 0.354 的数值。应用 h:mm 格式后,会显示为 8:30。对于平均值,请使用 h:mm(不带方括号),因为其很少超过 24 小时。

Excel 中格式化前的平均时间

单元格 B6 起初可能显示为 0.057292,但当您应用 h:mm 格式后,结果变为 1:22:30(1 小时 22 分钟 30 秒)。

Excel 中使用正确格式的平均时间

正如在耗时一节中提到的,这里同样适用 [h]:mm 格式。

您的数据集中也可能包含空白单元格;Excel 在计算平均值时会自动忽略它们。所以如果有七行数据但其中两格为空,Excel 会按五个样本计算。

但是,如果单元格为 0,Excel 会计入该值,可能影响结果。这种情况下,您可以使用 AVERAGEIF() 函数,或用于条件平均(只对大于、小于或等于某一值的行求平均)。

= AVERAGEIF(A2:A10, “>0”)

在 Excel 中计算时间的常见错误

在 Excel 中计算时间时,您可能会犯一些常见错误。以下是其中的一些,以及遇到时的排查方法:

负时间值或 #######

######## 表示列宽过小无法显示结果;加宽即可解决。另一方面,负值通常意味着起止单元格被颠倒,或跨夜计算中缺少日期。

可用以下方式修复:

= IF(B2 < A2, B2 + 1 - A2, B2 - A2)

其原理是:若开始时间为 6:00 PM、结束时间为 2:00 AM,B2 < A2 会检查结束时间是否小于开始时间,如为真则加上一整天(1);否则按常规相减。

格式设置不正确

如果总计看起来比预期小或不准确,请按前文所述使用正确格式([h]:mm)即可解决。

文本与时间值之别

如果您以文本形式输入时间(通常在单元格左对齐,或在前面加了撇号),相关计算都会失败。可使用 = TIMEVALUE(A2) 将文本转换为真实时间值,然后将单元格设置为 h:mm 格式。

对 24 小时回绕的困惑

当您执行 SUM() 却显示较小数值时,问题多半在格式而非公式。对总计单元格应用 [h]:mm 即可修复。

在 Excel 中进行时间计算的最佳实践

我建议的一些最佳实践包括:

  • 在断定公式错误之前,先检查单元格格式。多数错误的时间结果是显示问题,而非计算错误。

  • 对任何求和或总计单元格使用 [h]:mm。对单日内的单条时间记录使用 h:mm

  • 切勿以文本形式输入时间值。直接输入 8:30,让 Excel 自动识别。避免在时间数据中混入前导撇号或文字标签。

  • 凡跨越午夜的计算,请包含日期。仅含时间的值并不具备“次日”的概念。

  • 在将时间用于财务或费率公式前先转换为十进制小时。将时间值乘以 24 得到纯数字,再用于乘除计算。

  • 在整张工作表中保持时间格式一致。在同一列中混用 AM/PM 与 24 小时制会为后续调试埋下隐患。

结论

一旦理解时间只是一天的一个分数,在 Excel 中计算时间并不复杂。

我们涵盖的这些情境——时间差、耗时、多日跨度、每周汇总、平均值——本质上都归结为同样的核心操作:减法、加法与格式设置。格式设置是多数指南一笔带过的步骤,却也是最常见困惑的来源。

如果您想进一步学习 Excel,我们的 Excel 基础学习路径结构清晰,涵盖函数、数据类型以及在 Excel 中处理数据集的相关内容。

FAQs

为何在做减法后,Excel 显示的是小数而不是时间?

Excel 将时间存储为一天的小数分数,应用正确的格式 [h]:mm 后即可正确显示。

“[h]:mm” 与 “h:mm” 有何区别?

[h]:mm 可无上限显示总小时数,而 h:mm 在超过 24 小时后会将单元格回绕至 0。

在 Excel 中,时间差与耗时有何不同?

时间差是同一天内两个时间点之间的间隔;而耗时包含日期与时间,用于计算跨多天的两个时间戳之间的时间。

如何获取两个日期之间的总小时数?

使用 =(End_Date-Start_Date) * 24。这会返回以十进制表示的总小时数。

如何处理跨越午夜的时间计算?

使用 =IF(B2<A2, B2+1-A2, B2-A2)。其中 +1 表示加上一整天以跨越通宵的间隔。

主题

在 DataCamp 学习 Excel

Courses

Data Preparation in Excel

3小时
81.9K
Understand how to prepare Excel data through logical functions, nested formulas, lookup functions, and PivotTables.
查看详情Right Arrow
开始课程
查看更多Right Arrow