ISO-8601 基于周的日历

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

将 ISO-8601 设置为默认日历

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

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

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

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

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

公历ISO-8601日历之间的差异
ISOYEARISO-8601 年始终从最接近 1 月 1 日的第一个星期一开始。这意味着一年可能会在 12 月 29 日和 1 月 4 日之间的任何时间开始。公历的年始终在 1 月 1 日开始。这可能会导致两个日历系统的年在这些日期前后会出现一些差异。每个 ISO-8601 年都是一个年或年,包含 52 周或 53 周,具体取决于 ISO-8601 年的开始时间。
季度ISOQUARTER

ISO-8601 的前三个季度总是有 13 周。最后一个季度有 13 周(短年)或 14 周(长年)。

 ISO-8601 基于周的日历不使用月。许多零售和财务系统将 ISO-8601 季度划分为三个 4-4-5 周的分段,但也存在其他“月”模式。这些可以使用计算来定义。请参见创建一个 4-4-5 日历
周数ISOWEEK

ISO-8601 基于周的日历中的所有周都正好是 7 天,并且从星期一开始。每一周都属于一年,不像公历允许周跨年延续。长年有 53 周,短年有 52 周。

 ISO-8601 基于周的日历不使用数字日(例如 14 日或 23 日)。
平日ISOWEEKDAYISO-8601 平日总是从星期一开始,并以个位数表示。周一是 1,周二是 2,一直到周日的 7。

支持 ISO-8601 的日期函数

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

DATEADD 和 DATEDIFF

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

DATENAME

除非您使用 iso-yeariso-quarteriso-weekiso-weekday 日期部分,否则结果为公历日期。

DATEPART

除非您使用 iso-yeariso-quarteriso-weekiso-weekday 日期部分,否则结果为公历日期。

DATETRUNC

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

创建一个 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”(销售额)拖到“列”功能区。

步骤 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 分段)计算字段拖到“行”功能区。

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

修改模式

“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 截止点:59

另请参见

日期和时间(链接在新窗口中打开)

日期函数(链接在新窗口中打开)

 

感谢您的反馈!您的反馈已成功提交。谢谢!