之前的文章我們介紹了Power Pivot模型與多維數據集函數(CUBE類函數)。通過CUBE函數我們可以提取Excel Power Pivot模型以及連接的Power BI的數據模型中的數據。如果還沒有掌握這部分内容的同學可以點擊以下的圖片鍊接學習:
本期内容我們主要以Excel中的Power Pivot數據模型為基礎,結合DAX來獲取當前的數據模型生成的數據透視表結果對應的切片器的選擇的内容,以文字的形式顯示出來。
要解決這個問題,我們需要借助DAX,當然如果在Power BI中,有SELECTEDVALUE函數,但是在Excel的Power Pivot中,我們可以借助多維數據集函數(CUBE函數)來實現。
首先使用Power Pivot的數據模型生成一個數據透視表結果。如圖所示:
下面我們來針對“大區名稱”這個切片器來編寫DAX度量值和CUBE類獲取的值。
一、未選切片器DAX度量值為:
未選切片器 =
IF ( NOT ISFILTERED ( '大區表'[大區名稱] ), "未選", BLANK () )
在工作表單元格中獲取度量值的名稱,公式可以寫成:
=CUBEMEMBER("ThisWorkbookDataModel","[Measures].[未選切片器]")
獲取切片器未選的值,公式可以寫成:
=CUBEVALUE("ThisWorkbookDataModel","[Measures].[未選切片器]",切片器_大區名稱)
結果如圖所示:
二、單選切片器
DAX度量值為:
單選切片器 =
IF (
ISFILTERED ( '大區表'[大區名稱] ),
VALUES ( '大區表'[大區名稱] ), BLANK ()
)
在工作表單元格中獲取度量值的名稱,公式可以寫成:
=CUBEMEMBER("ThisWorkbookDataModel","[Measures].[單選切片器]")
獲取切片器單選的值,公式可以寫成:
=CUBEVALUE("ThisWorkbookDataModel","[Measures].[單選切片器]",切片器_大區名稱)
結果如圖所示:
三、多選切片器
DAX度量值為:
多選切片器: =
IF (
ISFILTERED ( '大區表'[大區名稱] ),
CONCATENATEX ( VALUES ( '大區表'[大區名稱] ), '大區表'[大區名稱], "," ),
BLANK ()
)
獲取切片器多選的值,公式可以寫成:
=CUBEVALUE("ThisWorkbookDataModel","[Measures].[多選切片器]",切片器_大區名稱)
結果如圖所示。
四、全選切片器
在Excel中,切片器全選的情況和不選的情況是一樣的。所以未遠切片器的度量值也可以用在這裡。當然也可以使用另外一種方法。DAX度量值為:
全選切片器 =
VAR cuntr =
COUNTROWS ( ALL ( '大區表'[大區名稱] ) )
VAR scuntr =
COUNTROWS ( VALUES ( '大區表'[大區名稱] ) )
RETURN
IF ( cuntr = scuntr, "全選", BLANK () )
獲取切片器多選的值,公式可以寫成:
=CUBEVALUE("ThisWorkbookDataModel","[Measures].[全選切片器]",切片器_大區名稱)
結果如圖所示。
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!