KutoolsforOffice — 一套方案,五大工具。事半功倍。

如何计算两个日期之间的天数、周数、月数或年数?

作者晓阳修改日期

在 Excel 中处理日期数据时,您常常需要精确计算两个日期之间相隔的天数、周数、月数或年数。这类计算广泛应用于项目排期、员工工龄分析、财务预测等场景。Excel 提供了多种直观高效的方法来实现此类日期差值计算,包括直接使用公式、调用内置功能,以及借助扩展工具简化甚至自动化整个过程。本教程将逐步详解各种精准计算日期差值的方法,助您为不同应用场景选择最合适的解决方案。


使用公式统计两个日期之间的天数

计算两个日期之间的天数是 Excel 中最常见的日期处理任务之一。无论您是在追踪截止日期、计算持续时间,还是监控累计周期,Excel 公式都能助您精准高效地完成这些计算。

1. 在希望显示结果的空白单元格中,输入以下任一公式:

=DATEDIF(A2,B2,"D")
=B 2-A2

注意A2 应包含开始日期,B2 应包含结束日期。

2. 向下拖动填充柄,即可将公式应用到其他行,单元格将自动显示相应起始日期与结束日期之间的天数。

输入公式以计算两个给定日期之间的天数

提示与注意事项:

  • 如果结束日期早于开始日期:
    • 公式 =B2 —— A2 将返回一个负值。
    • 公式 =DATEDIF(A2, B2, "D“) 将返回 #NUM! 错误。
      因此,请务必确认所输入的日期准确无误。
  • DATEDIF 函数会忽略时间部分,仅计算完整的天数。
  • 若要包含起止日期(即同时包含开始日期和结束日期),请在公式末尾加上 +1:
    例如,=DATEDIF(A2, B2, "D") + 1 或 =B2 - A2 + 1.

使用公式统计两个日期之间的周数

确定两个日期之间的周数,对于工资周期、定期活动或学术日程安排至关重要。Excel 通过以下公式让这一计算变得简单直观。此方法适用于基础的周数计算;若需基于日历周进行统计,则可能需要额外调整。

1. 在空白单元格中输入以下任一公式:

=(DATEDIF(A2,B2,"D")/7)
=(B 2-A2)/7

注意:在这些公式中,A2 为开始日期,B2 为结束日期。

2. 通过拖动填充柄将公式扩展至所需行,结果将以小数形式显示周数。此方法特别适用于精确计算周数;但若您仅需完整周数(整数),请参阅下方提示。

输入公式以计算两个日期之间相隔多少周

  • 提示若要仅计算两个日期之间的完整周数,请使用以下公式:
  • =ROUNDDOWN((DATEDIF(A2, B2, "d") /7),0)
    =INT((B 2-A2)/7)

输入公式以获取两个日期之间完整的周数

附加说明:如需将周数与特定工作日对齐(例如始终从周一开始),您可借助辅助列或 WEEKNUM 函数实现定制化计算。


计算两个日期之间以天、周、月、年等为单位的各种差值

如果您难以记住不同场景该用哪个公式,Kutools for Excel日期时间助手功能可让您立即计算出以天、周、月、年,甚至“日+星期”或“月+星期”等组合形式表示的日期差值,无需记忆或调整公式!此功能特别适合经常处理大量日期数据的用户。

Kutools for Excel的日期和时间助手界面

Kutools for Excel——通过 300 多款必备工具全面增强 Excel 功能,助您工作更快速、更轻松,并借助 AI 功能实现更智能的数据处理与高效办公!立即获取


使用公式统计两个日期之间的月数

计算两个日期之间的月数,有助于精准追踪贷款期限、到期时间或项目阶段等周期性事项。DATEDIF 函数正是为这类基于时间区间的日期计算而量身打造。

1. 在希望显示结果的单元格中输入以下公式:

=DATEDIF(A2,B2,"m")

注意:请使用 A2 作为开始日期,B2 作为结束日期。

2. 根据需要向下拖动填充柄,即可返回给定区间内的完整月数。

输入公式以获取两个日期之间的月数

  • 提示若要获得月和天的组合结果,请使用以下公式:
  • =DATEDIF(A2,B2,“m“)&“ 个月 “&DATEDIF(A2,B2,“md“)&“ 天“

输入公式以获取两个日期之间的月数和天数

注意事项:DATEDIF 函数将月份视为完整单位,因此除非在上述组合公式中明确要求,否则不会计入不足整月的部分。请调整输入格式,确保日期字段被 Excel 正确识别为有效日期,以免出现错误。


使用公式统计两个日期之间的年数

对于年度报告、员工周年纪念日或其他需要统计完整年份的场景,Excel 可借助 DATEDIF 函数高效完成此类计算。

1. 在空白单元格中输入以下公式:

=DATEDIF(A2,B2,"y")

注意:请将 A2 设为开始日期,B2 设为结束日期。

2. 使用填充柄将公式快速应用到所有目标单元格,即可返回两个日期之间的完整年数。此方法非常适合用于快速计算服务年限,或判断是否满足特定福利的资格门槛。

输入公式以计算两个日期之间的年数

故障排除:如果日期格式为文本而非真正的 Excel 日期,公式可能会返回错误。如有必要,请使用 DATEVALUE 函数进行转换。


使用公式统计两个日期之间的年、月和天数

在需要更详细拆分结果时(例如计算年龄或生成详细的工龄报告),您可灵活组合使用 DATEDIF 函数,精准呈现两个日期之间的年、月和天数。

1. 在单元格中插入或粘贴以下公式:

=DATEDIF(A2, B2, "y") &" years "&DATEDIF(A2, B2, "ym") &" months " &DATEDIF(A2, B2, "md") &" days"

注意:请使用 A2 作为开始日期,B2 作为结束日期。

2. 根据需要拖动公式,即可按组合文本格式计算并显示差异(例如“2 年 3 个月 7 天”)。

输入公式以获取两个日期之间的年数、月数和天数

提示:此结果特别适用于需要完整拆分的场景,例如记录员工年龄、合同期限或客户关系时长。若需将结果显示在不同单元格中,请拆分公式或使用辅助列。


使用强大功能计算两个日期之间以天、周、月、年等为单位的各种差值

如果您不熟悉公式操作,或希望灵活地在不同单位(天、周、月、年或其组合)之间快速切换,Kutools for Excel日期时间助手工具可轻松帮您简化此过程。

注意:要使用日期时间助手,请先下载 Kutools for Excel。安装完成后,即可从功能区快速访问该功能。

安装完 Kutools for Excel 后,请按以下说明操作:

1. 单击一个单元格以放置结果,然后依次转到 Kutools > 公式助手 > 日期时间助手,如下图所示:

功能区中 Kutools 选项卡上的日期和时间助手选项

2. 在日期时间助手对话框中:

  • 选择 Difference 选项,位于 Type 下;
  • 参数输入框中选择开始日期和结束日期;
  • 按需设置结果类型(例如年 + 月 + 日 + 星期等),即可获得个性化的分解结果。

日期和时间助手对话框

3. 单击确定即可完成计算。如需覆盖更多数据行,请拖动填充柄扩展结果。

返回的结果

立即点击下载 Kutools for Excel,免费试用吧!

如果您经常需要进行混合或非常规的日期计算,或希望采用一种无需公式、灵活高效的解决方案,强烈推荐此方法。


VBA 宏:自动计算两个日期之间的天数、周数、月数或年数

对于需要处理大规模数据或在多行中自动化重复计算的用户,使用 VBA 宏可显著提升效率。当您需一次性处理大量日期对,或复制公式不切实际时,此方法尤为适用。借助 VBA,您可在指定范围内轻松计算天数、周数、月数或年份的差异,甚至还能根据需求自定义输出格式。该方法特别适合周期性报告和批量处理任务。

1. 通过导航至开发工具 > Visual Basic,打开 VBA 编辑器。在 Microsoft Visual Basic for Applications 窗口中,单击插入 > 模块,然后将以下代码复制并粘贴到模块中:

Sub CalculateDateDifferences()
    Dim WorkRng As Range
    Dim RowRng As Range
    Dim StartCol As Integer
    Dim EndCol As Integer
    Dim OutputCol As Integer
    Dim DiffType As String
    Dim xTitleId As String
    
    xTitleId = "KutoolsforExcel"
    On Error Resume Next
    
    Set WorkRng = Application.InputBox("Select the range of date pairs (two columns: Start and End Date)", xTitleId, Selection.Address, Type:=8)
    
    If WorkRng Is Nothing Then Exit Sub
    
    StartCol = WorkRng.Columns(1).Column
    EndCol = WorkRng.Columns(2).Column
    OutputCol = EndCol + 1
    
    DiffType = Application.InputBox("Enter difference type: D=Days, W=Weeks, M=Months, Y=Years", xTitleId, "D", Type:=2)
    
    For Each RowRng In WorkRng.Rows
        If IsDate(RowRng.Cells(1, 1)) And IsDate(RowRng.Cells(1, 2)) Then
            Select Case UCase(DiffType)
                Case "D"
                    RowRng.Cells(1, 3).Value = RowRng.Cells(1, 2).Value - RowRng.Cells(1, 1).Value
                Case "W"
                    RowRng.Cells(1, 3).Value = (RowRng.Cells(1, 2).Value - RowRng.Cells(1, 1).Value) / 7
                Case "M"
                    RowRng.Cells(1, 3).Value = DateDiff("m", RowRng.Cells(1, 1).Value, RowRng.Cells(1, 2).Value)
                Case "Y"
                    RowRng.Cells(1, 3).Value = DateDiff("yyyy", RowRng.Cells(1, 1).Value, RowRng.Cells(1, 2).Value)
                Case Else
                    RowRng.Cells(1, 3).Value = "Invalid Type"
            End Select
        Else
            RowRng.Cells(1, 3).Value = "Invalid date(s)"
        End If
    Next
    
    Application.DisplayAlerts = True
    MsgBox "Date differences calculated in the third column of your selected range.", vbInformation, xTitleId
End Sub

2. 单击运行按钮按钮运行宏。系统将提示您选择包含起始日期和结束日期的相邻两列区域。随后输入差异类型:D 表示天数,W 表示周数,M 表示月数,Y 表示年数。结果将显示在所选区域右侧的紧邻列中。

使用提示:此宏非常适合快速、一致地进行批量处理。请确保您的日期列已正确设置为日期格式,以免出错。如果结果列中出现“无效日期”,请检查所选区域是否包含非日期值或空单元格。该方法特别适合高级用户或需要定期生成批量报告的场景。


更多日期和时间相关文章:

  • 在 Excel 中计算跨午夜时间段的小时数
  • 假设您有一张记录工作时间的时间表,其中 A 列为当天的开始时间,B 列为次日的结束时间。通常情况下,若直接使用公式“=B 2-A2”计算两时间之间的差值,将无法得到如左侧截图所示的正确结果。那么,如何在 Excel 中准确计算跨越午夜的两个时间之间的小时数呢?
  • 统计两个日期之间的天数 / 工作日数 / 周末天数
  • 您是否曾在 Excel 中需要统计两个日期之间的天数?有时,您可能只想计算这两个日期之间的工作日;而有时,又可能仅需统计其中的周末天数。那么,在特定条件下,该如何准确统计两个日期之间的天数呢?

最佳办公效率工具

🤖KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行   |  生成代码|  创建自定义公式  |  数据分析及生成图表|  调用 Kutools Functions……
热门功能查找、高亮或标记重复项   |  删除空白行   |  合并列或单元格且不丢失数据   |  不使用公式的四舍五入……
高级 LOOKUP多条件 VLookup  |  多值 VLookup  |   跨多工作表 VLookup   |   模糊查找……
高级下拉列表快速创建下拉列表   |  级联下拉列表   |  多选下拉列表……
列管理器添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列……
特色功能网格聚焦   |  设计视图   |增强编辑栏   | 工作簿和表管理器   |  资源库(自动文本)|  日期提取   |  汇总工作表  |  加密/解密单元格   | 按列表发送邮件   |  超级筛选   |   特殊筛选(筛选粗体单元格/斜体/删除线……) ......
精选 15 工具集12 文本工具添加文本删除特定字符,……)|   50+ 图表 类型甘特图,……)|   40+ 实用公式基于生日计算年龄,……)|   19 插入工具插入二维码从路径插入图片,……)|   12 转换工具小写金额转大写汇率转换,……)|   7 合并和拆分工具高级合并行分割单元格,……)|……更多
在您的首选语言中使用 Kutools – 支持英语、西班牙语、德语、法语、中文及 40+ 种其他语言!

使用 Kutools for Excel 大幅提升您的 Excel 技能,体验前所未有的高效。Kutools for Excel 提供 300 多项高级功能,助您提升生产力、节省时间。立即点击此处,获取您最需要的功能……


Office Tab 为 Office 带来标签式界面,让您的工作更轻松

  • 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读
  • 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
  • 将您的工作效率提升 50%,每天减少数百次鼠标点击!

所有 Kutools 插件,一个安装程序

Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。

ExcelWordOutlookTabsPowerPoint
  • 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
  • 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
  • 协同效果更佳— 在多个 Office 应用中实现高效协同
  • 30 天全功能试用— 无需注册,无需信用卡
  • 超值之选— 比单独购买插件更省钱