• 篩選條件修改函式
  • 有多個篩選準則時,可以使用 AND () && 邏輯運算子 來評估這些篩選準則,這表示所有條件都必須為 TRUE,或是 OR (||) 邏輯運算子,這表示任一條件可以是 true。

    布林值篩選條件運算式

    布林運算式篩選條件是評估為 TRUE 或 FALSE 的運算式。 必須遵守幾個規則:

  • 他們可以從單一資料表參考資料行。
  • 不可參考量值。
  • 無法使用巢狀 CALCULATE 函式。
  • 從 2021 年 9 月版本的 Power BI Desktop 開始,下列專案也適用于:

  • 除非以引數的形式傳遞至彙總函式,否則它們無法使用掃描或傳回資料表的函式。
  • 它們可以 包含傳回純量值的彙總函式。 例如,
    Total sales on the last selected date =
    CALCULATE (
        SUM ( Sales[Sales Amount] ),
        'Sales'[OrderDateKey] = MAX ( 'Sales'[OrderDateKey] )
    

    資料表篩選條件運算式

    資料表運算式篩選條件會套用資料表物件做為篩選條件。 可以是模型資料表的參考,但更可能是傳回資料表物件的函式。 您可以使用 FILTER 函式來套用複雜的篩選條件,包括無法由布林值篩選條件運算式定義的條件。

    篩選條件修飾詞函式

    篩選修飾詞函式可讓您執行更多動作,而不只是新增篩選。 當您修改篩選條件內容時,其會為您提供額外的控制。

  • 當提供篩選條件運算式時,CALCULATE 函式會修改篩選條件內容來評估運算式。 針對每個篩選條件運算式,當篩選條件運算式未包裝在 KEEPFILTERS 函式中時,會有兩個可能的標準結果:

  • 如果資料行 (或資料表) 不在篩選條件內容中,則會將新的篩選條件新增至篩選條件內容,以評估運算式。
  • 如果資料行 (或資料表) 已經在篩選條件內容中,新的篩選條件將會覆寫現有的篩選條件,以評估 CALCULATE 運算式。
  • 不含篩選條件的情況下使用 CALCULATE 函式,會達成特定需求。 會將資料列內容轉換成篩選條件內容。 當摘要說明模型資料的運算式 (而非模型量值) 需要在資料列內容中進行評估時,這是必要的。 這種情況可能發生在計算結果欄公式中,或在迭代器函式中的運算式評估時。 請注意,當模型量值用於資料列內容時,內容轉換是自動的。

  • 在計算結果欄或資料列層級安全性 (RLS) 規則中使用時,不支援在 DirectQuery 模式中使用此函式。

    下列 Sales 資料表量值定義會產生收益結果,但是僅適用於色彩為藍色的產品。

    本文中的範例可以搭配 Adventure Works DW 2020 Power BI Desktop 模型範例使用。 若要取得模型,請參閱 DAX 範例模型

    Blue Revenue =
    CALCULATE(
        SUM(Sales[Sales Amount]),
        'Product'[Color] = "Blue"
    

    CALCULATE 函式會計算已修改篩選條件內容中 Sales 資料表 Sales Amount 資料行的總和。 新的篩選條件已新增至 Product 資料表 Color 資料行,或是篩選條件會覆寫已套用至資料行的任何篩選條件。

    下列 Sales 資料表量值定義會產生所有銷售通路銷售額的比率。

    收益百分比總計通道

    DIVIDE 函式會將運算式的 Sales 資料表 Sales Amount 資料行值 (在篩選條件內容中) 總和除以已修改篩選條件內容中的相同運算式。 這是 CALCULATE 函式,藉由使用 REMOVEFILTERS 函式 (篩選條件修飾詞函式) 來修改篩選條件內容。 其會從 Sales Order 資料表 Channel 資料行移除篩選條件。

    下列 Customer 資料表計算結果資料行定義會將客戶分類至忠誠度類別。 這是非常簡單的案例:當客戶產生的收益小於 $2500 時,這些客戶會分類為;否則會分類為

    Customer Segment =
        CALCULATE(SUM(Sales[Sales Amount]), ALLEXCEPT(Customer, Customer[CustomerKey])) < 2500,
        "Low",
        "High"
    

    在此範例中,資料列內容會轉換成篩選條件內容。 這就是所謂的內容轉換ALLEXCEPT 函式會從所有 Customer 資料表資料行 (CustomerKey 資料行除外) 移除篩選條件。

    資料列內容
    CALCULATETABLE 函式
  •