ISO-8601 以週為基準的日曆
ISO-8601 以週為基準的日曆是日期相關資料的國際標準。ISO-8601 日曆的目的是提供一種一致、清晰的方法來表示和計算日期。ISO-8601 日曆將日期分為年、季度、週和週間日。與西曆不同,ISO-8601 日曆每個季度的週數以及每週的天數都是一致的。這讓 ISO-8601 日曆在計算零售和財務日期時很受歡迎。
將 ISO-8601 設為預設日曆
若要為資料來源設定 ISO 8601 日曆,請按以下步驟進行操作:
- 以右鍵按一下(在 Mac 上,Control + 按一下) [資料] 窗格中的資料來源以開啟 [日期屬性] 對話方塊。
- 將 [預設日曆] 欄位設定為 ISO-8601 以週為基準。
對於架上的每個日期欄位,您可以單獨設定日曆類型。在架中,以滑鼠右鍵按一下日期維度(在 Mac 上,按住 Ctrl 再按一下滑鼠左鍵),然後選取 [ISO-8601 以週為基準]。
ISO-8601 和標準西曆之間的差異
會計日曆內,並非所有日期層級都相關。
西曆 | ISO-8601 | 日曆之間的差異 |
---|---|---|
年 | ISOYEAR | ISO-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 日曆建立 4-4-5 日曆。 | |
週數 | ISOWEEK | ISO-8601 以週為基準的日曆中所有週都正好是 7 天,並且從週一開始。每週都屬於單一的一年,這與西曆不同,西曆允許週跨越年。長年有 53 週,短年有 52 週。 |
天 | ISO-8601 以週為基準的日曆不使用數字日(例如 14 日或 23 日)。 | |
週間日 | ISOWEEKDAY | ISO-8601 週間日總是從週一開始,並以個位數表示。週一為 1,週二為 2,週日為 7。 |
支援 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
。
建立 4-4-5 日曆
ISO-8601 以週為基準的日曆不使用月份。許多零售和財務系統會將 ISO-8601 季度按 4-4-5 週分為三個區段,雖然也存在其他劃分方式。
遵循這些步驟以瞭解如何在 Tableau Desktop 中實作 4-4-5 日曆。
步驟 1:設定視覺效果
- 開啟 Tableau Desktop 並連線到 [Sample - Superstore] 已儲存資料來源。
- 右鍵按一下「資料」窗格中的資料來源,以開啟「日期屬性」對話方塊。將預設日曆變更為 ISO-8601 以週為基準。
- 從資料窗格中,將訂單日期拖到列架上。
- 在「列」架上,按一下 ISOYEAR(訂單日期)上的「+」圖示以展開 ISOQUARTER(訂單日期)。
- 從資料窗格中,將銷售額拖到 欄架上。
步驟 2:尋找每季度的週數
在 4-4-5 區段日曆中,每個季度分為 3 個區段(類似於月),每個區段有 4 或 5 週。我們必須找出每個季度有多少週,才能將它們分成幾個區段。
- 選取 [分析] > [建立計算欄位]。
- 將計算欄位命名為季度週數
- 在計算對話方塊中輸入下列計算
DATEPART('iso-week', [Order Date]) - (DATEPART('iso-quarter', [Order Date])-1)*13
步驟 3:建立 4-4-5 日曆計算
- 選取 [分析] > [建立計算欄位]。
- 將計算欄位命名為 4-4-5 區段。
- 在計算對話方塊中輸入下列計算
IF([Week of Quarter] <= 4) THEN "1" ELSEIF ([Week of Quarter] <= 8) THEN "2" ELSE "3" END
- 從資料窗格中,將 4-4-5 區段計算欄位拖到列架。
產生的視覺效果是現在每個季度都細分為三個區段。
修改模式
在 4-4-5 區段計算中,截斷點 <=4
和 <=8
來自 4-4-5 模式。
第一個區段的截斷點為 <=4
,對應前 4 週 (1-4)。第二個區段的截斷點為 <=8
(包括 5-8 週),其餘的週數(9-13) 會在 ELSE 部分中擷取。(IF 陳述式會進行計算,直到條件為真,所以第二個區段只需要指定上限。)
可以針對其他模式修改這些截斷點。具體而言:
- 4-5-4 截斷點:
4
(對應前四週,1-4)和9
(對應接下來的五週,5-9) - 5-4-4 截斷點:
5
和9
另請參閱