从Google表格中的周数中获取日期

Pyl*_*nux 12 google-sheets

如果我在2017年有第7周,那么工作日是Google表格中那周的星期一?

小智 18

=DATE(B9,1,1)-WEEKDAY(DATE(B9,1,1),3)+7*(WEEKDAY(DATE(B9,1,1),3)>3)+7*(A9-1)
Run Code Online (Sandbox Code Playgroud)

是最复杂的公式,我知道这工作在瑞典周数(即Monday first day of week,ISO对于什么是一周的规则1).

  • B9 和 A9 中应该有什么? (3认同)
  • 在美国,一周的第一天是星期日,修改后的公式为: `=DATE(B9,1,1)+(A9-1)*7-(WEEKDAY(DATE(B9,1,1)) )+2`(如上所述,假设年份位于 B9 中,周数位于 A9 中。) (2认同)

Pyl*_*nux 13

简答(A1 ==周,B1 ==年):

=DATE(B1;1;1)+((A1-1)*7)-WEEKDAY(DATE(B1;1;1);3)
Run Code Online (Sandbox Code Playgroud)

答案很长:

DATE(<year>;1;1) // days since 1970 until the frist day of the year
Run Code Online (Sandbox Code Playgroud)

((<week number>-1)*7) // how many days into the year is this week
Run Code Online (Sandbox Code Playgroud)

减去

WEEKDAY(DATE(<year>;1;1);3) // how many extra days from previous year in first week
Run Code Online (Sandbox Code Playgroud)

PS:

这假设星期一作为一周的第一天,您必须更改WEEKDAY的参数以将其更改为星期日


小智 5

由于这个定义 ( https://en.wikipedia.org/wiki/Week ) 必须使用 1 月 4 日而不是 1 日。1 月 4 日是第 1 周的第一天。

=DATE(B1;1;4)+((A1-1)*7)-WEEKDAY(DATE(B1;1;4);3)
Run Code Online (Sandbox Code Playgroud)