【问题标题】:How to Calculate Age from Year Only in Google Sheets如何仅在 Google 表格中计算年龄
【发布时间】:2021-06-20 06:03:42
【问题描述】:

我在 A 列中有购买汽车的年份。例如,2015 年。我正在尝试将 A 列中提供的年份与数组公式中的 TODAY() 进行比较,像这样.. .

={"Vehicle Age";arrayformula(if(A2:A="",,(datedif(A2:A,today(),"Y"))))}

由于某种原因,它给了我数字 115 作为已指定年份的每个单元格的结果。知道为什么吗?我似乎无法在互联网上的任何地方找到答案。

感谢您的帮助!

【问题讨论】:

    标签: google-sheets array-formulas


    【解决方案1】:

    可以这么说,您在这里混合了苹果和橙子。

    在内部,Google 表格将所有完整日期视为距原点 1899 年 12 月 31 日的天数。因此,与完整日期相比, 2015 本身将被视为自 1899 年 12 月 31 日(或 1905 年 7 月 7 日——这是 115 多年前,任何相对最近的年份都是如此,因为它们都将被解释为它们以 1905 年 6 月下旬至 7 月上旬的一组天数由 Sheets 呈现)。

    相反,您只想比较 年份,这意味着从 TODAY() 中提取年份,因为 A2:A 已经是仅限年份的数字:

    ={"Vehicle Age";arrayformula(if(A2:A="",,year(TODAY())-A2:A))}

    但是,由于任何年份的车型实际上都是在前一年发布的,因此您可能需要在公式中添加一年:

    ={"Vehicle Age";arrayformula(if(A2:A="",,year((TODAY())-A2:A)+1))}

    当然,您也可以将您的 A2:A 年份转换为实际日期(例如,列出的每年的 1 月 1 日),然后也使用 datedif

    ={"Vehicle Age";arrayformula(if(A2:A="",,datedif(DATE(A2:A,1,1),today(),"Y")))}

    ...或者加上额外的一年...

    ={"Vehicle Age";arrayformula(if(A2:A="",,datedif(DATE(A2:A,1,1),today(),"Y")+1))}

    【讨论】:

    • 谢谢,埃里克。第一个公式对我有用。第二个返回 2016 的所有结果,所以我将公式修改为这个并且它起作用了。 ={"车龄";arrayformula(if(A2:A="",,year(TODAY())-A2:A)+1)}.感谢您的帮助。
    • 至于为什么第二个公式可能对您不起作用,您在 A2:A 中的原始年份数据可能是字符串而不是数字。很难说没有看到单独的工作表和数据。但最重要的是,您现在有了一个可行的解决方案。正如他们所说,“如果它没有坏,就不要修理它。”
    猜你喜欢
    • 1970-01-01
    • 2014-12-14
    • 1970-01-01
    • 2014-11-16
    • 2017-05-26
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    相关资源
    最近更新 更多