簡介
藉由使用數據分析表示式 (DAX) ,您可以將三種類型的計算新增至語意模型:
- 計算資料表
- 計算結果欄
- 量值
注意
DAX 也可以用來定義資料列層級安全性 (RLS) 規則,這些規則就是一些運算式,能夠在模型資料表上執行篩選條件。 不過,規則不被視為模型計算,因此它們不在此模型的範圍內。 如需詳細資訊,請參閱 Power BI 的資料列層級安全性。
計算資料表
您也可以撰寫 DAX 公式,以便將計算資料表新增至您的模型。 此公式可以複製或轉換現有模型資料或建立一系列資料,以便產生新的資料表。 計算資料表資料一律會匯入您的模型中,因此其會增加模型儲存體大小,而且可以延長資料重新整理時間。
注意
計算資料表無法連線至外部資料,您必須使用 Power Query 來完成這項工作。
計算資料表在各種情境下都很有用:
- Date 資料表
- 角色扮演維度
- 模擬分析
Date 資料表
需要 Date 資料表才能套用稱為時間智慧的特殊時間篩選條件。 DAX 時間智慧函式只有在日期資料表完成設定時才能正確運作。 若來源資料未包括日期資料表,您可以使用 CALENDAR
或 CALENDARAUTO
DAX 函式來將其建立為計算資料表。
角色扮演維度
若兩份型資料表具有多個關聯性,則可能是因為您的模型具有角色扮演維度。 例如,若您有一個名為 Sales 的資料表,其中包括兩個日期資料行 OrderDateKey 和 ShipDateKey,這兩個資料行都會與 Date 資料表中的 Date 資料行相關聯。 在此情況下,因為 Date 資料表可以扮演訂單日期或出貨日期角色,所以會被描述為角色扮演維度。
Microsoft Power BI 模型只允許資料表之間存在一種作用中的關聯性,在模型圖中以實線表示。 作用中的關聯性預設會用來傳播篩選條件;在此案例中,關聯性會連結 Date 資料表和 Sales 資料表中的 OrderDateKey 資料行。 這兩份資料表之間的任何剩餘的關聯性皆為非作用中的狀態。 在模型圖中,此種關聯性會以虛線表示。 只有在使用 USERELATIONSHIP
DAX 函式在計算公式中明確要求非作用中關聯性時,才會加以使用。
一個可能的更好模型設計是使用兩個日期資料表,每一個都與 Sales 資料表建立作用中關聯性。 因此,報表使用者可以依訂單日期或出貨日期篩選,或同時篩選兩種條件。 計算資料表可以複製 Date 資料表資料,以便建立 Ship Date 資料表。
模擬分析
Power BI Desktop 支援名為模擬參數的功能。 建立假設狀況參數時,會將計算資料表自動新增至您的模型。
假設狀況參數可讓報表使用者選取或篩選儲存在計算資料表中的值。 量值公式能夠使用有意義的值。 舉例來說,what-if 參數可讓報表使用者選取虛構的貨幣匯率,而量值可依選取的匯率分割收益 (以當地貨幣表示)。
值得注意的是,因為模擬資料表不是用來傳播篩選條件,所以不會與其他模型資料表相關聯。 基於這個理由,它們有時會被稱為中斷連線的資料表。
計算結果欄
您可以撰寫 DAX 公式,以便將計算結果欄新增至模型中的任何資料表。 每一行資料列會計算公式,而且公式會傳回單一值。 新增至匯入儲存模式數據表時,會在重新整理語意模型時評估公式,並增加模型的儲存大小。 將公式新增至 DirectQuery 儲存體模式資料表時,會在查詢資料表時,利用基礎來源資料庫計算公式。
在 [欄位] 窗格中,會使用特殊圖示來顯化計算結果欄。 下列範例展示 Customer 資料表中名為 Age 的單一計算結果欄。
量值
您可以撰寫 DAX 公式,以便將量值新增至模型中的任何資料表。 此公式會考量如何完成模型資料的摘要。 與計算結果欄一樣,公式必須傳回單一值。 量值與計算結果欄不同 (其會在資料重新整理期間重新計算),其會在查詢期間計算。 其結果一律不會儲存在模型中。
在 [欄位] 窗格中,量值會和計算機圖示一起顯示。 下列範例顯示 Sales 資料表中的三個量值:Cost、Profit 與 Revenue。
有時候,量值可以描述為明確量值。 更明確來說,明確量值是以 DAX 撰寫的模型計算,通常只會稱做量值。 不過,隱含量值的概念也存在其中。 隱含量值是可以利用視覺物件,進行簡單摘要的資料行,像是計數、總和、最小值,以及最大值等。 您可以在 [欄位] 窗格中識別隱含量值,因為會系統會搭配 Sigma 符號 (∑) 加以顯示。
注意
在將資料行新增至視覺物件時,可以進行摘要。 因此,不論其是否搭配 Sigma 符號顯示,在將其新增至視覺效果時,都可以將其設定為隱含量值。
此外,表格模型中不會有像是導出量值的概念。 計算一字是用來描述計算資料表和計算結果欄,與來自 Power Query 的資料表和資料行區分開來。 Power Query 沒有明確量值的概念。