Menu

Excel 周数:WEEKNUM 与 ISOWEEKNUM

=WEEKNUM(A2) 返回 A2 中日期的周数,每周从星期日开始。=ISOWEEKNUM(A2) 返回欧洲通用的 ISO 周数,每周从星期一开始。还包括求一周的开始日期,以及根据周数求日期。

本页的每张表格都是实时的:修改数字或公式,就会重新计算。

=WEEKNUM(A2) 返回 A2 中日期的周数。默认情况下每周从星期日开始,第 1 周是包含 1 月 1 日的那一周。欧洲大部分地区使用的是 ISO 周数,每周从星期一开始:这种情况请用 =ISOWEEKNUM(A2)。

新年前后的周数
B2
ABCD
1DateWEEKNUMISOWEEKNUMDay
22026-03-021010Mon
32026-12-275352Sun
42026-12-315353Thu
52027-01-01153Fri
62027-01-03253Sun
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

两种算法在大多数日期上结果相同,只在新年前后出现分歧。星期五 2027-01-01 按 WEEKNUM 是第 1 周,因为第 1 周总是包含 1 月 1 日。按 ISOWEEKNUM 它属于 2026 年的第 53 周:ISO 第 1 周是包含当年第一个星期四的那一周,而那一周从 1 月 4 日星期一开始。星期日 2026-12-27 显示了另一个区别:WEEKNUM 已经进入第 53 周,因为它的每周从星期日开始。

WEEKNUM 的返回类型

WEEKNUM 的第二个参数决定每周从哪一天开始。类型 21 会切换到 ISO 算法,与 ISOWEEKNUM 相同,这在旧版 Excel 中很有用:ISOWEEKNUM 需要 Excel 2013 或更高版本。

return_type每周开始于第 1 周
1 或省略星期日包含 1 月 1 日
2星期一包含 1 月 1 日
11 至 17星期一至星期日包含 1 月 1 日
21星期一包含第一个星期四(ISO 8601)
同样的日期,四种返回类型
C2
ABCDE
1DateType 1Type 2Type 21ISOWEEKNUM
22026-01-042111
32026-01-052222
42027-01-01115353
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

星期日 2026-01-04 在类型 1 下开始了第 2 周,但在类型 2 下仍属于第 1 周,因为类型 2 的一周到星期日才结束。类型 21 和 ISOWEEKNUM 的结果总是一致。

一周的开始日期

按周分组的报表通常显示一周的第一天,而不是周数。用日期减去星期几即可:WEEKDAY(A2,3) 把星期一算作 0,所以 =A2-WEEKDAY(A2,3) 就是 A2 当天或之前的那个星期一。如果每周从星期日开始,就用 =A2-WEEKDAY(A2)+1。

每周的星期一和星期日
B2
ABCD
1DateWeek starts (Monday)Week starts (Sunday)Week ends (Sunday)
22026-03-042026-03-022026-03-012026-03-08
32026-03-082026-03-022026-03-082026-03-08
42026-03-092026-03-092026-03-082026-03-15
52027-01-012026-12-282026-12-272027-01-03
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

星期三 2026-03-04 所在的那一周从星期一 2026-03-02 开始,到星期日 2026-03-08 结束。星期一对应的就是它自己。公式的结果是日期,所以需要设置日期格式;否则会显示 46083 这样的数字。返回类型的说明请看 WEEKDAY。

把周数转换成日期

反过来,从“2026 年第 12 周”求日期,要用到一条规则:1 月 4 日总是在 ISO 第 1 周中。先找到那一周的星期一,第 1 周之后每多一周就加 7 天。

ISO 周的星期一
C2
ABC
1YearWeekMonday
22026122026-03-16
3202612025-12-29
4202712027-01-04
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

2026 年第 12 周从 2026-03-16 开始,2026 年第 1 周从 2025-12-29 开始,2027 年第 1 周从 2027-01-04 开始。一年的第一个 ISO 周可能从 12 月开始,所以标签中的年份和日期本身的年份并不总是一致。

练习:周数

轮到你了:ISO 周数
B2
AB
1DateISO week
22026-05-24
32023-03-15
42026-11-08
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

轮到你了: 在 B2 中返回 A2 中日期的 ISO 周数,然后向下填充到 B4。

轮到你了:一周的开始
B2
AB
1DateMonday
22026-05-22
32026-05-24
42026-05-25
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

轮到你了: 在 B2 中返回 A2 日期所在那一周的星期一,然后向下填充到 B4。每周从星期一到星期日。

常见错误:1 月出现第 53 周

按 YEAR(A2) 和 ISOWEEKNUM(A2) 分组,会把 2027 年 1 月 1 日放进“2027 年第 53 周”,而这一周并不存在。ISO 周属于它的星期四所在的年份,所以要从同一周的星期四取年份:YEAR(A2-WEEKDAY(A2,2)+4)。

年份和周数标签
C2
ABC
1DateWrong labelRight label
22026-12-312026-W532026-W53
32027-01-012027-W532026-W53
42027-01-032027-W532026-W53
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

对于 2027 年 1 月 1 日,错误的标签是 2027-W53,正确的标签是 2026-W53,与 12 月 31 日属于同一周。在一年的另一端情况正好相反:星期一 2025-12-29 属于 2026 年的 ISO 第 1 周,正确的标签是 2026-W01。TEXT(...,"00") 让周数保持两位数,这样标签就能按顺序排序。

常见问题

Excel 中怎么根据日期得到周数?

=WEEKNUM(A2) 返回周数,每周从星期日开始,1 月 1 日所在的那一周是第 1 周。要得到欧洲大部分地区使用的 ISO 周数,请用 =ISOWEEKNUM(A2) 或 =WEEKNUM(A2,21)。

WEEKNUM 和 ISOWEEKNUM 有什么区别?

WEEKNUM 的第 1 周从 1 月 1 日开始,所以一年的第一周和最后一周可能不满 7 天。ISOWEEKNUM 遵循 ISO 8601:每周从星期一到星期日,第 1 周是包含当年第一个星期四的那一周,所以 1 月 1 日可能属于上一年的第 52 或 53 周。

Excel 中怎么求某一周的星期一?

=A2-WEEKDAY(A2,3) 返回 A2 日期当天或之前的那个星期一。类型为 3 的 WEEKDAY 把星期一算作 0,所以星期一会保持不变。把结果设置为日期格式。

Excel 中怎么把周数转换成日期?

对于 ISO 周,Y 年第 N 周的星期一是 =DATE(Y,1,4)-WEEKDAY(DATE(Y,1,4),3)+(N-1)*7。1 月 4 日总是在 ISO 第 1 周中,所以公式先退回到那一周的星期一,再往后推 N-1 周。

为什么 Excel 会显示第 53 周?

使用 WEEKNUM 时,12 月 31 日总是在第 53 周,因为第 1 周是 1 月 1 日所在的不完整的一周(如果是从星期六开始的闰年,比如 2028 年,就是第 54 周)。使用 ISOWEEKNUM 时,一年如果从星期四开始或在星期四结束,就有 53 周,2026 年就是这样。

Coddy 编程语言插图

和 Coddy 一起学编程

开始