excel学习库

excel表格_excel函数公式大全_execl从入门到精通

Excel Power Pivot系列:提取数据透视表的切片器选择的内容

学习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类获取的值。

一、未选切片器

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].[全选切片器]",切片器_大区名称)
结果如图所示。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接