使用值篩選行為 (預覽)
Power BI 中的值篩選行為選項可讓您影響 DAX 中出現的自動篩選機制,該機制會在篩選來自相同數據表的多個數據行時發生。 這種行為非正式地稱為「自動存在」。
什麼是值篩選行為
篩選同一個數據表中的多個數據行時,DAX 會了解並非所有這些數據行中值的組合都是有效的,因此它會自動排除無效的組合。 DAX 引擎產生聯合值篩選,不僅會傳回有效的組合,也會影響測量的計算。 值 篩選行為 設定可讓您在語意模型中變更此行為。 您可以決定是否要關閉聯合值篩選,並改為開啟獨立值篩選。 將值篩選行為設定設為 Independent 來開啟獨立值篩選條件(請參閱本文稍後所示)會導致相同數據表上的多個篩選保持分開,而不是將這些篩選結合成一個的 DAX 引擎。
瞭解值篩選行為
當您在同一個數據表上篩選多個數據行時,目前的預設值篩選行為會採用這些篩選條件,並將其合併成一個,而只考慮存在的組合。 請考慮相同資料表上的下列兩個資料列:
- Year,其中包含 『2023』 之類的值。
- Month,其中包含 'January 2024' 之類的值。
如果您同時篩選 Year 和 Month,因為這些數據行位於相同的數據表上,值篩選行為會將篩選條件合併成一個,但只會考慮存在的組合。 2024 年 1 月與 2023 年的組合不存在,且不會包含在篩選中。 然而,在某些情況下,結果令人吃驚。
讓我們看看一個範例,其中我們有目錄顯示依年份的產品色彩可用性。 這些產品的製造商試驗了多年來以各種顏色製作產品:
多年來,我們有三種以各種顏色提供的產品。 請注意 2024 年沒有提供紅色產品的方式。 這在稍後會很重要。 現在,讓我們藉由新增下列量值來計算產品數目:
Number of Products = COUNTROWS( 'Catalog' )`
下列矩陣顯示每年以各種色彩提供的產品數目:
現在,讓我們新增另一個量值來計算所有年份的產品總數:
Number of Products All Years = CALCULATE ( [Number of Products], ALL ( 'Catalog'[Year] ) )
讓我們並排將這些量值並排篩選為 2023 年,而只是藍色和紅色色彩(因此沒有黑色)。 您可以看到產品數目是 4,這兩種色彩的這兩種色彩的整個年份的產品數目為 6:
如果我們將 Year 切換至 2024 年,我們預期「產品數目」量值會傳回 2,因為 2024 年只有兩種是藍色的產品,而且當年沒有紅色產品。 除此之外,我們預計所有年份的產品數量都不會改變,因為畢竟,它應該計算在所有年份。 不過,「所有年份的產品數目」從 6 變更為 5:
所有年份的產品數量仍應為 6,而不是 5。 我們在這裡看到的值篩選行為作用:它正在合併相同數據表上的篩選,移除不存在的組合。 篩選條件為 Year = 2024,且 Color = Blue 或 Red。 由於這兩個篩選條件位於相同的數據表上,因此這些篩選條件會合併成一個篩選條件,只篩選存在的組合。 由於 2024 年沒有紅色產品,因此套用的篩選條件是 Year = 2024,且 Color = Blue。 因此,所有年份的產品數量現在只計算藍色產品的數量,而不是藍色或紅色產品的數量。 這會傳回 5,因為您可以在資料表中確認。
影響值篩選行為
您可以在模型檢視的屬性窗格中,使用 語意模型的 [值篩選行為 ] 設定,來控制是否要在語意模型中使用此行為:
有三個選項可供使用:
- 自動 - 這是預設設定,目前會開啟聯合行為。 當我們結束此預覽時,新的模型會設定為 [自動 ] 會使用 [獨立],屆時將會宣佈。
- 獨立 - 這會強制在同一個數據表上進行篩選,以保持個別。 將 [值篩選行為] 設定設定為 [獨立] 之後,所有年份的產品總數會如預期般傳回 6 個(如下所示)。
- 聯合 - 這會強制啟用語意模型的值篩選行為,並導致將相同數據表上的篩選條件合併成一個。 在我們的範例中,所有年份的產品數目會繼續回到 5。
下表顯示此設定對範例的效果: |值篩選行為設定 |範例中套用的篩選條件 |範例量值的結果 | |--- |--- |--- | |自動|Year = 2024,
Color = Blue|5| |獨立|Year = 2024,
Color = Blue 或 Red|6| |聯合 |Year = 2024,
Color = Blue|5|
將 [ 值] 篩選行為 設定為 [自動],表示它目前等於 [聯合],但未來會針對新的語意模型切換為 [獨立]。 如果您將 [值] 篩選行為 設定為 [獨立],則所有產品的產品數目會如預期般傳回 6,因為篩選條件是 Year = 2024,且 Color = Blue 或 Red,且不再合併:
下一步
下列文章可能很有用: