【问题标题】:How to calculate years for a column of "Jan 1" formatted dates?如何计算“Jan 1”格式日期列的年份?
【发布时间】:2021-01-03 20:53:18
【问题描述】:

我有几列数据,通过ImportXml 从网站导入,其中所有日期的格式如下:

A B Year for A Year for B
Jan 22 Feb 3 =Sequence(366-21, 1, 2020, 0) =Sequence(366-31-2, 1, 2020, 0)
Jan 23 Feb 4
...one row per day in 2020...
Dec 31 ...
Jan 1 ... =Sequence(365, 1, 2021, 0)
... ...

我需要将这些转换为真实日期,因此需要一年(从 2020 年开始)。我目前通过Sequence填写年份列,这很麻烦,因为我需要根据开始日期为每一列输入一个自定义公式,并且我需要为每个新的一年重复这个顺序。

有人有更好的主意吗?

【问题讨论】:

  • 分享您的工作表副本(样本)

标签: arrays date google-sheets formatting


【解决方案1】:

到日期的文本转换是这样完成的:

=ARRAYFORMULA(IF(A2:B="",,A2:B*1))


更新:

=INDEX(IF(A2:A="",, DATE(2020+IFNA(VLOOKUP(ROW(A2:A), IF(
 IFERROR(1/(1/COUNTIFS(A2:A, A2:A, A2:A, "=jan 1", 
 ROW(A2:A), "<="&ROW(A2:A))))<>"", {ROW(A2:A), 
 IFERROR(1/(1/COUNTIFS(A2:A, A2:A, A2:A, "=jan 1", 
 ROW(A2:A), "<="&ROW(A2:A))))}), 2, 1), 0), MONTH(A2:A*1), DAY(A2:A*1))))

=INDEX(IF(B2:B="",, DATE(2020+IFNA(VLOOKUP(ROW(B2:B), IF(
 IFERROR(1/(1/COUNTIFS(A2:A, A2:A, A2:A, "=dec 31", 
 ROW(B2:B), "<="&ROW(B2:B))))<>"", {ROW(B2:B), 
 IFERROR(1/(1/COUNTIFS(A2:A, A2:A, A2:A, "=dec 31", 
 ROW(B2:B), "<="&ROW(B2:B))))}), 2, 1), 0), MONTH(B2:B*1), DAY(B2:B*1))))

【讨论】:

  • 您的样本几乎是正确的,只是 1 月 22 日应该是 2020 年。我需要的只是一种根据开始日期告诉我需要填写多少“2020”的方法。 (顺便说一句,通常使用Datevalue 将文本转换为日期。)
  • A列总是2020,B列总是2021?
  • 遇到1月1日从2020年到2021年(遇到第二个1月1日会变成2022年,大概一年左右)
  • 你能分享一份你的工作表副本吗?
  • 哇,谢谢,相当努力!我真的不明白为什么在你的列 E 中它把年份边界放在(第二个)2 月 5 日之后。但无论如何,这个序列不会出现在真实数据中,我们总是有 12 月 31 日..1 月 1 日,所以我认为你的解决方案有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-09
  • 2011-02-26
相关资源
最近更新 更多