了解迭代器函式

已完成

計算結果欄和量值都有用來評估的內容。 內容定義了要執行計算的精細度。 了解並有效地使用內容,對於建立高效能公式、動態分析及針對公式內的問題進行疑難排解而言至關重要。

在討論迭代器函式之前,您必須先複習兩個重要的內容概念,那就是資料列內容和篩選內容。

了解資料列內容

資料列內容是精細度或目前的資料列;這是用來評估資料的資料列明細。 所有迭代器函式都會依資料列內容進行評估。 計算結果欄會依資料列內容進行評估,因此每一個資料列都有資料行值。

資料列內容會自動遵循資料表之間的關聯性,以判斷相關資料表中哪些資料列與目前的資料列相關聯。

資料列內容範例,您可以在其中判斷哪些資料列與目前的資料列建立關聯。

例如,讓我們看看下列程式碼:

ActualSales = Sales * RELATED( Product[Discount] )

上述公式只會使用 RELATED 函式,以從 Product 資料表取得目前產品的折扣率。 您不需要指定連接這兩個資料表的欄位。

了解篩選內容

篩選內容是每個資料行中根據套用至資料列的篩選條件約束所允許的一組值。 其也可以是透過交叉分析篩選器或互動來套用至您報表的篩選。

讓我們看看一個篩選內容範例:

篩選內容範例的資料預覽。

醒目提示的資料格包含針對 2018 年、阿拉巴馬州和第一季的篩選內容。 此樞紐分析表中的任何其他值會有所不同,因為針對年份、州和季會有不同的篩選內容。

提示

與 TABLEAU 的關聯:Tableau 和 Power BI 決定計算量值的方式很類似:都是依據您在頁面上的內容、您已套用的篩選等。Tableau 計算中的內容最常與詳細資料層級 (LOD) 運算式和資料表計算建立關聯。

了解迭代器函式

談到迭代器函式時,您會將焦點放在資料列內容的概念上。

以下是簡單的迭代器函式範例:

COGS = SUMX( Sales, RELATED( Product[Wholesale Price]) * Sales[Quantity] )

在上述公式中,您使用的是與之前相同的 COGS 公式,但將其包裝在 SUMX 迭代器函式中。

迭代器函式的範例。

  1. SUMX 函式中的第一個部分是迭代器資料表,或應該評估的精細度。 在本實例中,迭代器資料表是 Sales 資料表。 若要執行這項計算,您必須評估 Sales 資料表中的每個資料列。

  2. 接者,其會在暫存資料表中建立清單輸出。

  3. 最後,其會執行在函式開頭指定的彙總。

如需內容的詳細資訊,請參閱:DAX 公式中的內容

如需資料列和篩選內容的詳細資訊,請參閱:Row Context and Filter Context in DAX (DAX 中的資料列內容和篩選內容)