---
schema_version: "1"
id: c543ad9b908ef88e6fb7ed07f1a21fe5663e7701b8b422945f24031149286e49
title: ISO-8601 基于周的日历
collection: tableau
version: current
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/current/zh-cn/public/desktop/dates_calendar.md
canonical_url: https://help.tableau.com/current/public/desktop/zh-cn/dates_calendar.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 13efd28b8c50c2ad358313518c53d4d34f64e7663cbd46957324373de9e90500
description: Use the ISO-8601 week-based calendar in Tableau and build a 4-4-5 fiscal calendar.
---
[跳转到主要内容](#main-content)

# ISO-8601 基于周的日历

ISO-8601 基于周的日历是适用于日期相关数据的一项国际标准。ISO-8601 日历的目的是提供一致且清晰的方法来表示和计算日期。ISO-8601 日历将日期划分为“年”、“季度”、“周”和“平日”。与公历不同，ISO-8601 日历在每个季度中有一致的周数，每周有一致的天数。这使得 ISO-8601 日历在计算零售和财务日期时很受欢迎。

## 将 ISO-8601 设置为默认日历

若要为数据源设置 ISO 8601 日历，请按以下步骤进行操作：

1. 右键单击（在 Mac 上按住 Control 单击）“数据”窗格中的数据源以打开“日期属性”对话框。
2. 将“默认日历”字段更改为“ISO-8601 基于周”。

![日期属性窗口，显示配置日期的选项，例如默认日历类型、周开始日、会计年度开始月份和日期格式。](/tableau/current/zh-cn/public/desktop/zh-cn/Img/date_properties.png)

对于功能区上的每个日期字段，您可以单独设置日历类型。在功能区中，右键单击（在 Mac 上按住 Ctrl 单击）某个日期维度，并选择“ISO-8601 基于周”。

### ISO-8601 日历和标准公历的区别

并非所有日期级别都与会计日历相关。

<table class="table--plain"><colgroup><col><col><col></colgroup><thead><tr><th>公历</th><th>ISO-8601</th><th>日历之间的差异</th></tr></thead><tbody><tr><td>年</td><td>ISOYEAR</td><td>ISO-8601 年始终从最接近 1 月 1 日的第一个星期一开始。这意味着一年可能会在 12 月 29 日和 1 月 4 日之间的任何时间开始。公历的年始终在 1 月 1 日开始。这可能会导致两个日历系统的年在这些日期前后会出现一些差异。每个 ISO-8601 年都是一个<i>长</i>年或<i>短</i>年，包含 52 周或 53 周，具体取决于 ISO-8601 年的开始时间。</td></tr><tr><td>季度</td><td>ISOQUARTER</td><td><p>ISO-8601 的前三个季度总是有 13 周。最后一个季度有 13 周（短年）或 14 周（长年）。</p></td></tr><tr><td>月</td><td>&nbsp;</td><td>ISO-8601 基于周的日历不使用月。许多零售和财务系统将 ISO-8601 季度划分为三个 4-4-5 周的分段，但也存在其他“月”模式。这些可以使用计算来定义。请参见<a href="#Create" class="xref">创建一个 4-4-5 日历</a>。</td></tr><tr><td>周数</td><td>ISOWEEK</td><td><p>ISO-8601 基于周的日历中的所有周都正好是 7 天，并且从星期一开始。每一周都属于一年，不像公历允许周跨年延续。长年有 53 周，短年有 52 周。</p></td></tr><tr><td>日</td><td>&nbsp;</td><td>ISO-8601 基于周的日历不使用数字日（例如 14 日或 23 日）。</td></tr><tr><td>平日</td><td>ISOWEEKDAY</td><td>ISO-8601 平日总是从星期一开始，并以个位数表示。周一是 1，周二是 2，一直到周日的 7。</td></tr></tbody></table>

## 支持 ISO-8601 的日期函数

以下日期函数与 ISO-8601 基于周的日历兼容。

#### DATEADD 和 DATEDIFF

如果使用非 ISO-8601 日期部分 (`day` 或者 `month`)，结果会将 ISO-8601 日期截断到最接近的 ISO 级别。例如，将 ISO-8601 日期增加一个月会导致 `iso-week` 变化。

#### DATENAME

除非您使用 `iso-year`、`iso-quarter`、`iso-week` 或 `iso-weekday` 日期部分，否则结果为公历日期。

#### DATEPART

除非您使用 `iso-year`、`iso-quarter`、`iso-week` 或 `iso-weekday` 日期部分，否则结果为公历日期。

#### DATETRUNC

将 ISO-8601 日期截断到最接近的 ISO 级别。例如，即使 ISO-8601 不使用“月”，在“月”级别截断 ISO 日期将显示公历月份的第一个 `iso-week`。

![显示 ISO 年份、季度和月份周数的表格。](/tableau/current/zh-cn/public/desktop/zh-cn/Img/dates_calendar_4.png)

## 创建一个 4-4-5 日历

ISO-8601 基于周的日历不使用月。许多零售和财务系统将 ISO-8601 季度划分为三个 4-4-5 周的分段，但也存在其他分段系统。

按照以下步骤操作，了解如何在 Tableau Desktop 中实现 4-4-5 日历。

### 步骤 1：设置可视化项

1. 打开 Tableau Desktop 并连接到“Sample - Superstore”已保存数据源。
2. 右键单击“数据”窗格中的数据源以打开“日期属性”对话框。将默认日历更改为“ISO-8601 基于周”。
3. 从“数据”窗格中，将“Order Date”（订单日期）拖到“行”功能区。
4. 在“行”功能区上，单击“ISOYEAR(Order Date)”上的“+”图标，展开 ISOQUARTER(Order Date)。
5. 从“数据”窗格中，将“Sales”（销售额）拖到“列”功能区。

![日期字段上下文菜单，提供以多种方式显示日期的选项。](/tableau/current/zh-cn/public/desktop/zh-cn/Img/dates_calendar_2.png)

### 步骤 2：查找每个季度中的周数

在 4-4-5 分段日历中，每个季度分为其中包含 4 周或 5 周的 3 个分段（类似于月）。我们必须了解每个季度中有多少周才能将它们分段。

1. 选择“分析”>“创建计算字段”。
2. 将计算字段命名为**“Week of Quarter”**（季度的周）
3. 在计算对话框中输入以下计算
    
    DATEPART('iso-week', \[Order Date\]) - (DATEPART('iso-quarter', \[Order Date\])-1)\*13

### 步骤 3：创建 4-4-5 日历计算

1. 选择“分析”>“创建计算字段”。
2. 将计算字段命名为**“4-4-5 Segment”**（4-4-5 分段）。
3. 在计算对话框中输入以下计算
    
    IF(\[Week of Quarter\] <= 4) THEN "1" ELSEIF (\[Week of Quarter\] <= 8) THEN "2" ELSE "3" END
    
    _值 1、2、3 是三个分段的标签，可以替换为您选择的任何值。_
4. 从“数据”窗格中，将**“4-4-5 Segment”**（4-4-5 分段）计算字段拖到“行”功能区。

生成的可视化项现在每个季度都细分为三个分段。

![按年份和季度显示的销售额的条形图。](/tableau/current/zh-cn/public/desktop/zh-cn/Img/dates_calendar_3.png)

#### 修改模式

在**“4-4-5 分段”**计算中，截止点 `<=4` 和 `<=8` 来自 4-4-5 模式。

第一个分段的截止点是 `<=4`（前四周 (1-4)）。第二个分段的截止点是 `<=8` （包括第 5-8 周），其余周 (9-13) 在 ELSE 部分中捕获。（IF f语句一直计算到条件为真，因此第二个分段只需指定上限。）

可以针对其他模式修改这些截止点。具体而言：

- 4-5-4 截止点：`4`（前四周，1-4）和 `9`（接下来的五周，5-9）
- 5-4-4 截止点：`5` 和 `9`

## 另请参见

[日期和时间](https://help.tableau.com/current/public/desktop/zh-cn/dates.htm)

[日期函数](https://help.tableau.com/current/public/desktop/zh-cn/functions_functions_date.htm)