Excel 周数结果不一致

Excel 周数结果不一致

我正在使用包含特定日期的周数的电子表格。经过一番研究,我发现了一个可以应用于日期列的函数 ISOWEEKNUM(),这似乎运行良好。以下链接显示了此电子表格的摘录:

摘自电子表格

然而,我注意到该功能在 2018 年似乎出现故障,它显示 2018 年 12 月 31 日的周数为第 1 周,而在前几年它总是显示为第 52 周或第 53 周(这对我来说很有意义)。

此函数除了日期之外没有其他参数,因此看起来相当简单。您知道如何让它工作吗?

答案1

您的公式没有问题,但可能不是您想要使用的公式。还有另一个 Excel 公式:

=WEEKNUM(serial_num, [return_type])

这将返回您期望得到的结果。但是,您应该首先检查哪种类型的周数更适合您的应用程序。

让我进一步解释一下:

ISOWEEKNUM(日期)函数的工作原理是,一周总是从星期一开始,到星期日结束,然后设定标准,即一年的第一周是包含该年第一个星期四的那一周。这意味着前一年最后几天可以标记为下一年的第一周。

WEEKNUM(日期,开始日期)函数从包含 1 月 1 日的那一周开始计数。因此 1 月 1 日是第 1 周的第一天。默认情况下,新一周从星期日开始,因此第 2 周从 1 月 1 日之后的第一个星期日开始。您可以使用函数中的第二个参数更改开始日期。换句话说,如果 1 月 1 日是星期六并且使用默认开始日期,则第一周可以有 1 天。<- 这是理解 WEEKNUM() 函数背后的关键。

我创建了一个包含您的日期值的小型电子表格,并添加了一些日期值来演示差异:

在此处输入图片描述

请注意,并非只有 2018 年,一年的最后一天位于下一年的第一周。ISOWEEKNUM() 函数运行正常,只是对第一周的开始时间有不同的解释。

另一种观察这一现象的方式是查看跨越 1 月 1 日的一天内的 2 个函数:

在此处输入图片描述

2015 年 1 月 1 日是星期四。因此,ISOWEEKNUM() 周函数包括 12 月的最后 3 天,而 WEEKNUM() 函数从 1 月 1 日开始一周,但默认开始日为星期日,第一周只有 3 天。

我希望这可以解释差异。

答案2

该函数似乎在 2018 年出现故障,因为它将 2018 年 12 月 31 日的周数显示为第 1 周

这是正确的,因为 2018 年 12 月 31 日是星期一。

如果 12 月 31 日是星期一、星期二或星期三,则为下一年的第 01 周。如果是星期四,则为刚结束的一年的第 53 周;如果是星期五,则为第 52 周(如果刚结束的一年是闰年,则为第 53 周);如果是星期六或星期日,则为刚结束的一年的第 52 周。

来源ISO 周日期 - 维基百科

相关内容