如何仅在 Google 工作表中根据年份计算年龄

How to Calculate Age from Year Only in Google Sheets

我在 A 列中有购买汽车的年份。例如,2015 年。我正在尝试将 A 列中提供的年份与 arrayformula 中的 TODAY() 进行比较来计算车辆的年龄,如下所示...

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

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

感谢您的帮助!

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

在内部,Google Sheets 将所有完整日期视为从原点 1899 年 12 月 31 日算起的天数。因此, 2015 年自己,与完整日期相比,将被视为自 1899 年 12 月 31 日(或 1905 年 7 月 7 日——这是 115 多年前,与任何相对较近的年份的情况一样)以来的 2015 天,因为它们都将被 Sheets 以原始形式解释为 1905 年 6 月下旬至 7 月上旬的一组天数)。

相反,您只想比较 ,这意味着从 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))}