给定一个ISO 8601周数,在LibreOffice Calc电子表格中获取该周第一天的日期

4
LibreOffice Calc电子表格提供了一个函数ISOWEEKNUM,用于返回指定日期的标准ISO 8601周数
我希望实现相反的功能,即:给定一个标准周数,返回该周第一天(星期一)的日期。可以传递整数,如果能够传递标准格式的字符串就更好了。
像这样:
DATE_OF_ISOWEEKNUM( 2017 , 42 ) ➝ date of Monday of week 42 in week-based year 2017
DATE_OF_ISOWEEKNUM( "2017-W42" ) ➝ date of Monday of week 42 in week-based year 2017

理想情况下,我希望能够传递一个数字1-7,代表星期一到星期日中我想要一个日期的星期几。类似这样:

DATE_OF_ISOWEEKNUM( 2017 , 42 , 1 ) ➝ date of Monday of week 42 in week-based year 2017
DATE_OF_ISOWEEKNUM( "2017-W42-1" ) ➝ date of Monday of week 42 in week-based year 2017

DATE_OF_ISOWEEKNUM( 2017 , 42 , 7 ) ➝ as above, but Sunday
DATE_OF_ISOWEEKNUM( "2017-W42-7" ) ➝ as above, but Sunday

用户 kemehttps://forum.openoffice.org/en/forum/viewtopic.php?f=9&t=14602 上提供了一组公式来完成此操作。您是否正在寻找一个单一的函数?如果是这样,DATE_OF_ISOWEEKNUM 可以通过宏实现。 - Jim K
1个回答

3

示例:

在此输入图片描述

公式:

=DATE(B$1,1,$A4*7)+(2-WEEKDAY(DATE(B$1,1,$A4*7)))-7*(ISOWEEKNUM(DATE(B$1,1,1))=1)
  • 计算一年中第几周的日期(星期数*7)。
  • 将日期更正为星期一。
  • 如果一年的第一天是第一个ISO周的话,将日期更正为7天之前。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接