【问题标题】:Excel weeknum function returns wrong weekExcel weeknum 函数返回错误的星期
【发布时间】:2016-07-14 14:34:24
【问题描述】:

问题如题。

我有一个单元格“D4”,其中包含日期“09/07/2016”。相邻单元格具有公式“=weeknum(D4,1)”。这个函数的输出是“28”。但在周日至周六的基础上,7 月 9 日周六不在第 28 周,而是在第 27 周。

我认为这可能与周六/周日以及一周的开始和结束时间等有关,因此我尝试了上周的多个不同日期 - 4 号星期一、5 号星期二、6 号星期三等。在每种情况下,“weeknum”都会返回值“28”。

我只是注意到这个问题,因为我有一个宏,它使用带有周数的单元格的值来查找我们的客户团队每周保存的电子表格。正如他们 - 正确 - 将电子表格保存为“第 27 周”一样,它不起作用。我最初认为客户团队是错误的,但我在网上查了一下,他们是正确的。

怎么会这样? Excel肯定不会错,我一定犯了某种错误?

我知道 Excel 在第 53 周和第 1 周开始和结束时存在不遵循 ISO 标准的问题,但我不知道这会对年中的一周产生什么影响。

我确实想到这个问题可能与英国与美国的日期格式有关。但是,当然,6 月 7 日也不是第 28 周。

【问题讨论】:

  • 我看到第 28 周从 July 3rd, 2016 开始,在 Sunday-Saturday 基础上结束于 July 9th, 2016...
  • 我的猜测是 excel 将 1 月 1 日作为第一周下降,而您可能想从第一周开始计算(我不了解 ISO 标准)。如果是这种情况,只要 1 月 1 日属于不完整的一周,Excel 就会增加一周。
  • @Statsanalyst:“我知道 Excel 在第 53 周和第 1 周开始和结束时存在不遵循 ISO 标准的问题,但我不知道这会如何影响年中的一周。”一周是在没有任何缓冲的情况下跟随前一周;-)。因此,如果您将第一周的一周数字推到右侧,那么接下来的所有周都会随之而来。

标签: excel


【解决方案1】:

这一切都记录在WEEKNUM中。

有两个系统用于此功能:

系统 1 包含 1 月 1 日的那一周是 年,编号为第 1 周。

系统 2 包含一年中第一个星期四的那一周是 一年的第一周,编号为第 1 周。这个系统是 ISO 8601 中规定的方法,通常称为 欧洲周编号系统。

语法

WEEKNUM(serial_number,[return_type])

Return_type  Week begins on  System 
...
21           Monday          2

所以=WEEKNUM("09/07/2016",21) 将按照 ISO 8601 中的定义进行计算,因为 Return_type 21 是唯一具有系统 2 的类型。


ISOWEEKNUM

=ISOWEEKNUM("09/07/2016")

也会这样做。

【讨论】:

    【解决方案2】:

    =ISOWEEKNUM(a2)-1 为我返回正确的星期,与=WEEKNUM(a2,21)-1 相同

    【讨论】:

      猜你喜欢
      • 2020-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多