大家好,今天给大家分享一下SELECTEDVALUE函数的用法,先来看一下函数的说明:
SELECTEDVALUE ( Table[column] )
SELECTEDVALUE ( Table[column], "defaultvalue" )
SELECTEDVALUE ( Table[column], 0 )
函数返回第一个参数列的唯一引用值,如果参数列在上下文过滤器中不是唯一可用值,将返回空白或者第二个参数值(默认值)
话不多说,接下来我们一起看看SELECTEDVALUE在具体业务中的运用。
示例一
如上图,订单表中包含销售分区、订单金额、订单数量等信息。
要求:
展示各区域的销售完成情况,数值可以通过切片器切换销售额和销量。效果如下图:
思路:
数据源中,销售额和销售量信息分布在两个字段列上,无法通过选取现成的字段列来切片,需要手动创建参数表作为切片器。再通过书写度量值使得柱状图中显示的值与切片器相关联
步骤:
Step 1:新建参数表
value参数表 =DATATABLE("value",STRING,{{"销售额"},{"销售量"}})
Step 2:根据value的不同计算对应的聚合值书写度量值
sum_value = SWITCH(SELECTEDVALUE('value参数表'[value]),
"销售额",SUM('订单表'[订单金额(¥)]),
"销售量",SUM('订单表'[订单数量]))
Step 3:可视化界面中,将value参数表中的value列作为切片器,完成。
是不是很简单呢,那我们再看另一个场景:
示例二
看到上面数据源里销售员的身份了吗,分为电话销售员和区域销售员,即一个订单的是由两类角色人员共同完成的,业绩双记。在另外一张表里,所有员工被标记了“是否新员工”,
现在老板要看各区域新老员工的业绩对比情况,效果如下图所示:
思路:
如果订单表中的员工类型只有电话销售或者只有区域销售,那么这个问题很简单,将订单表和人员表用员工ID建立关系就可以了。
现在的问题是,某个订单不能直接判断是否由新员工或者老员工完成,必须要和员工类型结合起来。
步骤:
Step 1:新建新老员工维度表
Dim新老员工 = SUMMARIZE('人员表','人员表'[是否新员工])
Step 2:写度量值,根据员工类型和是否新员工两个判断条件,计算对应的聚合值
values = SWITCH(SELECTEDVALUE('Dim员工类型'[员工类型]),
"电话销售",SWITCH(SELECTEDVALUE('Dim新老员工'[是否新员工]),
"新员工",CALCULATE([sum_value],FILTER('订单表',LOOKUPVALUE('人员表'[是否新员工],'人员表'[员工ID],'订单表'[电话销售员ID])="新员工")),
"老员工",CALCULATE([sum_value],FILTER('订单表',LOOKUPVALUE('人员表'[是否新员工],'人员表'[员工ID],'订单表'[电话销售员ID])="老员工"))),
"区域销售",SWITCH(SELECTEDVALUE('Dim新老员工'[是否新员工]),
"新员工",CALCULATE([sum_value],FILTER('订单表',LOOKUPVALUE('人员表'[是否新员工],'人员表'[员工ID],'订单表'[区域销售员ID])="新员工")),
"老员工",CALCULATE([sum_value],FILTER('订单表',LOOKUPVALUE('人员表'[是否新员工],'人员表'[员工ID],'订单表'[区域销售员ID])="老员工"))))
这个公式中包含了两层SELECTEDVALUE,
第一层的SELECTEDVALUE('Dim员工类型'[员工类型])作用与案例一相同,与切片器相关联;
第二层的SELECTEDVALUE('Dim新老员工'[是否新员工])没有与任何切片器关联,而是与分组依据相关联,即柱状图中的图例,这是小编认为SELECTEDVALUE函数最神奇的地方。
看过工作技巧 | 动态切换报表标题的读者朋友们可能会发现,SELECTEDVALUE和HASONEVALUE、VALUES的运用有一些相似之处,
实际上,在内部,SELECTEDVALUE只是语法糖,以下两个函数是等价的
SELECTEDVALUE( Table[column] )
IF (HASONEVALUE ( Table[column] ), VALUES ( Table[column] ) )
为了方便大家动手实践,在后台回复关键词“SELECTEDVALUE文件”即可获得本文中的数据源及PBI文件下载链接。
今天的内容就是这些,小伙伴们,下期再见!
* PowerPivot工坊原创文章,转载请注明出处!
延伸阅读:
带你了解DAX筛选转换原理
重点函数 | 表函数与DAX查询
工作技巧 | 动态切换报表标题
如何在DAX中创建“虚拟关系”
通过度量值实现突出显示
如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。
长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯,欢迎小伙伴儿们转发分享~
,