You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改DATEDIF公式将天数差转换为周/月/年前的时间表述

修改后公式(中文表述,适配原表格逻辑)

优先推荐使用更高效的LET函数版本(减少重复查询,性能更好):

=IFERROR(
  ARRAYFORMULA(
    IF(LEN(A3:A),
      LET(
        past_date, VLOOKUP(A3:A, Backend!A2:U, 18, FALSE),
        diff_days, DATEDIF(past_date, TODAY(), "D"),
        diff_weeks, ROUNDDOWN(diff_days/7),
        diff_months, DATEDIF(past_date, TODAY(), "M"),
        diff_years, DATEDIF(past_date, TODAY(), "Y"),
        IFS(
          diff_years >= 1, diff_years & "年前",
          diff_months >= 1, diff_months & "个月前",
          diff_weeks >= 1, diff_weeks & "周前",
          TRUE, diff_days & "天前"
        )
      ),
    )
  ),
)

兼容版公式(不支持LET函数的老版本表格可用)

=IFERROR(
  ARRAYFORMULA(
    IF(LEN(A3:A),
      IFS(
        DATEDIF(VLOOKUP(A3:A, Backend!A2:U, 18, FALSE), TODAY(), "Y")>=1, DATEDIF(VLOOKUP(A3:A, Backend!A2:U, 18, FALSE), TODAY(), "Y")&"年前",
        DATEDIF(VLOOKUP(A3:A, Backend!A2:U, 18, FALSE), TODAY(), "M")>=1, DATEDIF(VLOOKUP(A3:A, Backend!A2:U, 18, FALSE), TODAY(), "M")&"个月前",
        ROUNDDOWN(DATEDIF(VLOOKUP(A3:A, Backend!A2:U, 18, FALSE), TODAY(), "D")/7)>=1, ROUNDDOWN(DATEDIF(VLOOKUP(A3:A, Backend!A2:U, 18, FALSE), TODAY(), "D")/7)&"周前",
        TRUE, DATEDIF(VLOOKUP(A3:A, Backend!A2:U, 18, FALSE), TODAY(), "D")&"天前"
      ),
    )
  ),
)

逻辑说明

  • 时间展示优先级:年 > 月 > 周 > 天,符合日常表述习惯
  • 保留了原公式的数组特性,仅需在首个单元格输入即可自动填充A列有值的所有行
  • 完全兼容Backend表R列m/d/yyyy H:i:s格式的原始时间数据,无需额外做格式转换

内容的提问来源于stack exchange,提问作者Miyer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:45:03