You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何计算当前时间与Excel历史日期时间戳的年、月、日差值?

如何计算当前时间与Excel历史日期时间戳的年、月、日差值?

当然可以实现这个需求!先帮你排查下你遇到的问题:你用的=DATEDIFF会返回#NAME?或者0,是因为Excel里没有DATEDIFF这个函数,正确的是一个隐藏函数DATEDIF(注意少一个字母F),参数顺序错误也可能导致结果为0哦。

下面直接给你能达成需求的公式,还会帮你拆解每个部分的作用:

假设你的历史日期在A1单元格(比如示例中的12/14/2022 12:08:35),在B1单元格输入以下公式即可得到类似1 years 5 months 6 days的结果:

=DATEDIF(A1,TODAY(),"Y")&" years "&DATEDIF(A1,TODAY(),"YM")&" months "&IF(DAY(TODAY())>=DAY(A1),DAY(TODAY())-DAY(A1),DAY(EOMONTH(TODAY(),-1))-DAY(A1)+DAY(TODAY()))&" days"

公式拆解:

  • DATEDIF(A1,TODAY(),"Y"):计算A1日期到今天的完整年份差,参数"Y"表示只取整年数,比如从2022到2024就是1年。
  • DATEDIF(A1,TODAY(),"YM"):忽略年份差异,计算两个日期之间的完整月份差,参数"YM"会去掉年份的影响,比如12月到次年5月就是5个月。
  • 天数部分的IF判断:
    • 当今天的日数≥A1的日数:直接用DAY(TODAY())-DAY(A1)得到天数差,逻辑简单直接。
    • 当今天的日数<A1的日数:借助EOMONTH(TODAY(),-1)获取上月最后一天的日期,用该日的天数减去A1的日数,再加上今天的日数,这样就能得到正确的跨月天数差,不会出现负数。

另外补充两点实用提示:

  • 如果你想精确到当前时间(而不是当天0点),可以把公式里的TODAY()换成NOW(),不过通常计算年月日差值用TODAY()就足够了。
  • DATEDIF是Excel的隐藏函数,输入时不会在函数提示列表里显示,但所有主流Excel版本都支持它,放心使用即可。

备注:内容来源于stack exchange,提问作者user3208239

火山引擎 最新活动