[英]How to get date the same as week number and day of week of previous year using Google Sheets?
[英]Get date from week number in Google Sheets
如果我在 2017 年有第 7 周,那一周的星期一在 Google 表格中是哪一周的日期?
=DATE(B9,1,1)-WEEKDAY(DATE(B9,1,1),3)+7*(WEEKDAY(DATE(B9,1,1),3)>3)+7*(A9-1)
是最復雜的公式,我知道這對於瑞典周數有效(即Monday first day of week
, ISO
的規則對於什么是一周1
)。
=DATE(B1;1;1)+((A1-1)*7)-WEEKDAY(DATE(B1;1;1);3)
DATE(<year>;1;1) // days since 1970 until the frist day of the year
加
((<week number>-1)*7) // how many days into the year is this week
減去
WEEKDAY(DATE(<year>;1;1);3) // how many extra days from previous year in first week
這假設星期一作為一周的第一天,您必須更改WEEKDAY的參數以將其更改為星期日
由於這個定義( https://en.wikipedia.org/wiki/Week ),必須使用1月4日而不是1月1日。 1月4日是第一天,總是在第1周。
=DATE(B1;1;4)+((A1-1)*7)-WEEKDAY(DATE(B1;1;4);3)
如果您使用的是 ISO 周,則接受的答案不會考慮在2020-w53等 2 個技術年(即從 2020 年 12 月 28 日到 2021 年 1 月 3 日)重疊的周數。
因此我改用這個公式:
=DATE(K2,1,1)-WEEKDAY(DATE(K2,1,1),2)+7*(WEEKDAY(DATE(K2,1,1),2)>3)+7*(L2-1) +1
其中K是年份, L是周數(從 yyyy-ww 分成 2 列)
把它放在一個數組公式中:
=ArrayFormula(if(K2:K="",, DATE(K2:K,1,1)-WEEKDAY(DATE(K2:K,1,1),2)+7*(WEEKDAY(DATE(K2:K,1,1),2)>3)+7*(L2:L-1) +1 ))
您可以使用=ArrayFormula(if(E2:E="",,split(E2:E,"-")))
將 yyyy-ww 拆分為兩列。
注意:此公式將返回星期一(這是國際標准 ISO 中一周的第一天)
在 2023 年完成這項工作。它也將在 2024 年底之前工作。這表示 AND 邏輯存在缺陷。請隨時提出建議以使其變得更好
=IFS(
AND(ISOWEEKNUM(A8)=52,YEAR(A8)<>YEAR(A7)),
DATE(YEAR(A8-1),1,1)-WEEKDAY(DATE(YEAR(A8-1),1,1),3)+7*(WEEKDAY(DATE(YEAR(A8-1),1,1),3)>3)+7*(ISOWEEKNUM(A8)-1),
DATE(YEAR(A8),1,1)-WEEKDAY(DATE(YEAR(A8),1,1),3)+7*(WEEKDAY(DATE(YEAR(A8),1,1),3)>3)+7*(ISOWEEKNUM(A8)-1)
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.