学习Power BI和Excel Power 系列。
之前的文章我们介绍了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类获取的值。
一、未选切片器
未选切片器 = IF ( NOT ISFILTERED ( '大区表'[大区名称] ), "未选", BLANK () )
=CUBEMEMBER("ThisWorkbookDataModel","[Measures].[未选切片器]")
=CUBEVALUE("ThisWorkbookDataModel","[Measures].[未选切片器]",切片器_大区名称)

二、单选切片器
单选切片器 = IF ( ISFILTERED ( '大区表'[大区名称] ), VALUES ( '大区表'[大区名称] ), BLANK () )
=CUBEMEMBER("ThisWorkbookDataModel","[Measures].[单选切片器]")
=CUBEVALUE("ThisWorkbookDataModel","[Measures].[单选切片器]",切片器_大区名称)

三、多选切片器
多选切片器: = 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].[全选切片器]",切片器_大区名称)
