簡介

已完成

藉由使用數據分析表示式 (DAX) ,您可以將三種類型的計算新增至語意模型:

  • 計算資料表
  • 計算結果欄
  • 量值

注意

DAX 也可以用來定義資料列層級安全性 (RLS) 規則,這些規則就是一些運算式,能夠在模型資料表上執行篩選條件。 不過,規則不被視為模型計算,因此它們不在此模型的範圍內。 如需詳細資訊,請參閱 Power BI 的資料列層級安全性

計算資料表

您也可以撰寫 DAX 公式,以便將計算資料表新增至您的模型。 此公式可以複製或轉換現有模型資料或建立一系列資料,以便產生新的資料表。 計算資料表資料一律會匯入您的模型中,因此其會增加模型儲存體大小,而且可以延長資料重新整理時間。

注意

計算資料表無法連線至外部資料,您必須使用 Power Query 來完成這項工作。

計算資料表在各種情境下都很有用:

  • Date 資料表
  • 角色扮演維度
  • 模擬分析

Date 資料表

需要 Date 資料表才能套用稱為時間智慧的特殊時間篩選條件。 DAX 時間智慧函式只有在日期資料表完成設定時才能正確運作。 若來源資料未包括日期資料表,您可以使用 CALENDARCALENDARAUTO DAX 函式來將其建立為計算資料表。

角色扮演維度

若兩份型資料表具有多個關聯性,則可能是因為您的模型具有角色扮演維度。 例如,若您有一個名為 Sales 的資料表,其中包括兩個日期資料行 OrderDateKeyShipDateKey,這兩個資料行都會與 Date 資料表中的 Date 資料行相關聯。 在此情況下,因為 Date 資料表可以扮演訂單日期出貨日期角色,所以會被描述為角色扮演維度。

顯示兩個資料表 (Sales 和 Date) 的影像。資料表間有兩個關聯性。只有一個關聯性是作用中。

Microsoft Power BI 模型只允許資料表之間存在一種作用中的關聯性,在模型圖中以實線表示。 作用中的關聯性預設會用來傳播篩選條件;在此案例中,關聯性會連結 Date 資料表和 Sales 資料表中的 OrderDateKey 資料行。 這兩份資料表之間的任何剩餘的關聯性皆為非作用中的狀態。 在模型圖中,此種關聯性會以虛線表示。 只有在使用 USERELATIONSHIP DAX 函式在計算公式中明確要求非作用中關聯性時,才會加以使用。

一個可能的更好模型設計是使用兩個日期資料表,每一個都與 Sales 資料表建立作用中關聯性。 因此,報表使用者可以依訂單日期或出貨日期篩選,或同時篩選兩種條件。 計算資料表可以複製 Date 資料表資料,以便建立 Ship Date 資料表。

顯示兩個資料表 (Sales 和 Date) 的影像。Sales 資料表和 Date 資料表之間有一個關聯性,而 Sales 資料表和 Ship Date 資料表之間有一個關聯性。兩個關聯性皆為作用中狀態。

模擬分析

Power BI Desktop 支援名為模擬參數的功能。 建立假設狀況參數時,會將計算資料表自動新增至您的模型。

假設狀況參數可讓報表使用者選取或篩選儲存在計算資料表中的值。 量值公式能夠使用有意義的值。 舉例來說,what-if 參數可讓報表使用者選取虛構的貨幣匯率,而量值可依選取的匯率分割收益 (以當地貨幣表示)。

值得注意的是,因為模擬資料表不是用來傳播篩選條件,所以不會與其他模型資料表相關聯。 基於這個理由,它們有時會被稱為中斷連線的資料表

計算結果欄

您可以撰寫 DAX 公式,以便將計算結果欄新增至模型中的任何資料表。 每一行資料列會計算公式,而且公式會傳回單一值。 新增至匯入儲存模式數據表時,會在重新整理語意模型時評估公式,並增加模型的儲存大小。 將公式新增至 DirectQuery 儲存體模式資料表時,會在查詢資料表時,利用基礎來源資料庫計算公式。

在 [欄位] 窗格中,會使用特殊圖示來顯化計算結果欄。 下列範例展示 Customer 資料表中名為 Age 的單一計算結果欄。

顯示 [欄位] 窗格區段的影像。在 Customer 資料表內有多個欄位。一個欄位以特殊圖示裝飾,這表示其為計算結果欄。

量值

您可以撰寫 DAX 公式,以便將量值新增至模型中的任何資料表。 此公式會考量如何完成模型資料的摘要。 與計算結果欄一樣,公式必須傳回單一值。 量值與計算結果欄不同 (其會在資料重新整理期間重新計算),其會在查詢期間計算。 其結果一律不會儲存在模型中。

在 [欄位] 窗格中,量值會和計算機圖示一起顯示。 下列範例顯示 Sales 資料表中的三個量值:CostProfitRevenue

顯示 [欄位] 窗格區段的影像。在 Sales 資料表內有多個欄位。有三個欄位以計算機圖示裝飾,這表示其為量值。

有時候,量值可以描述為明確量值。 更明確來說,明確量值是以 DAX 撰寫的模型計算,通常只會稱做量值。 不過,隱含量值的概念也存在其中。 隱含量值是可以利用視覺物件,進行簡單摘要的資料行,像是計數、總和、最小值,以及最大值等。 您可以在 [欄位] 窗格中識別隱含量值,因為會系統會搭配 Sigma 符號 (∑) 加以顯示。

注意

在將資料行新增至視覺物件時,可以進行摘要。 因此,不論其是否搭配 Sigma 符號顯示,在將其新增至視覺效果時,都可以將其設定為隱含量值。

此外,表格模型中不會有像是導出量值的概念。 計算一字是用來描述計算資料表和計算結果欄,與來自 Power Query 的資料表和資料行區分開來。 Power Query 沒有明確量值的概念。