在 Power BI Desktop 中建立日期數據表

本文說明使用 Power BI Desktop 時,在數據模型中建立日期數據表的良好設計作法。

若要使用數據分析表示式 (DAX) 時間智慧函式,必須具備必要條件模型需求:您的模型中必須至少有一個 日期數據表 。 日期資料表是符合下列需求的資料表:

  • 它必須有數據類型日期(或日期/時間)的數據行,稱為日期數據行
  • 日期資料行必須包含唯一值。
  • 日期資料行不得包含空白。
  • 日期資料行不得有日期遺漏。
  • 日期資料行必須橫跨完整年度。 年度並非一定要是日曆年度 (1 月到 12 月)。
  • 日期數據表必須 標示為日期數據表

您可以使用數種技術中的任何一種,將日期資料表新增至模型:

  • [自動日期/時間] 選項
  • Power Query 以連線到日期維度數據表
  • Power Query 以產生日期數據表
  • 用來產生日期數據表的DAX
  • 要複製現有日期數據表的DAX

提示

日期數據表可能是您要新增至任何模型的最一致功能。 更重要的是,在組織內,應該一致地定義日期數據表。 因此,無論您決定使用何種技術,建議您建立包含 完整設定日期數據表的 Power BI Desktop 範本 。 與組織中的所有模型工具共用範本。 因此,每當有人開發新的模型時,就可以從一致定義的日期數據表開始。

使用自動日期/時間

[ 自動日期/時間] 選項提供方便、快速且易於使用的時間智慧。 報表作者可以在篩選、分組及向下切入行事曆時間週期時,使用時間智慧。

我們建議您只在使用行事歷時間週期時,以及當您有與時間相關的簡單模型需求時,才啟用 [自動日期/時間] 選項。 建立臨機操作模型或執行數據探索或分析時,您也可以使用此選項。 不過,這種方法不支援可將篩選傳播至多個數據表的單一日期數據表設計。 如需詳細資訊,請參閱 Power BI Desktop 中的自動日期/時間指引。

使用 Power Query 連線

當您的數據源已經有日期數據表時,建議您使用它作為模型日期數據表的來源。 當您連線到數據倉儲時,通常是這種情況,因為它會有日期維度數據表。 如此一來,您的模型會利用組織時間的單一真實來源。

如果您正在開發 DirectQuery 模型,且數據源不包含日期數據表,強烈建議您將日期數據表新增至數據源。 它應該符合日期數據表的所有模型需求。 然後,您可以使用 Power Query 連線到日期數據表。 如此一來,您的模型計算就可以利用 DAX 時間智慧功能。

使用 Power Query 產生

您可以使用 Power Query 產生日期資料表。 如需詳細資訊,請參閱 Chris Webb 的部落格文章 :在 Power Query 中產生日期維度數據表。

提示

如果您的組織中沒有數據倉儲或其他一致的定義,請考慮使用Power Query 發佈 數據流。 然後,讓所有數據模型產生器連線到數據流,以將日期數據表新增至其模型。 數據流會成為組織中時間的單一事實來源。

如果您需要產生日期數據表,請考慮使用 DAX 執行。 您可能會發現比較容易。 更重要的是,它可能會更方便,因為 DAX 包含一些內建智慧,以簡化建立和管理日期數據表。

使用 DAX 產生

您可以使用 CALENDAR 或 CALENDARAUTO DAX 函式來建立匯出數據表,以在模型中產生日期數據表。 每個函式都會傳回日期的單一數據行數據表。 然後,您可以使用匯出數據行來擴充匯出數據表,以支援日期間隔篩選和分組需求。

  • 當您想要定義日期範圍時,請使用 CALENDAR 函式。 您會傳入兩個值:開始日期和結束日期。 這些值可由其他 DAX 函式定義,例如 MIN(Sales[OrderDate])MAX(Sales[OrderDate])
  • 當您想要日期範圍自動包含儲存在模型中的所有日期時,請使用 CALENDARAUTO 函式。 您可以傳入單一選擇性參數,這是年份的結束月(如果您的年份是日曆年,以 12 月結束,則不需要傳入值)。 這是一個實用的函式,因為它可確保傳回完整年份的日期,這是標示日期數據表的需求。 更重要的是,您不需要管理將數據表擴充至未來幾年:當數據重新整理完成時,它會觸發數據表的重新計算。 當新年日期載入模型時,重新計算會自動擴充數據表的日期範圍。

提示

如需建立匯出數據表的詳細資訊,包括如何建立日期數據表的範例,請透過 將匯出數據表和數據行新增至 Power BI Desktop 模型 學習模組。

使用 DAX 複製

當您的模型已經有日期數據表,而且您需要額外的日期數據表時,您可以輕鬆地複製現有的日期數據表。 日期是 角色扮演維度的情況。 您可以藉由建立匯出資料表來複製資料表。 匯出數據表表示式只是現有日期數據表的名稱。

如需本文的詳細資訊,請參閱下列資源: