
大家好,今天给大家分享一下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列作为切片器,完成。
是不是很简单呢,那我们再看另一个场景:
示例二
现在老板要看各区域新老员工的业绩对比情况,效果如下图所示:

思路:
步骤:
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( Table[column] )
IF (HASONEVALUE ( Table[column] ), VALUES ( Table[column] ) )
为了方便大家动手实践,在后台回复关键词“SELECTEDVALUE文件”即可获得本文中的数据源及PBI文件下载链接。
今天的内容就是这些,小伙伴们,下期再见!
- PowerPivot工坊原创文章,转载请注明出处!
如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。

长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯,欢迎小伙伴儿们转发分享~

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/211140.html原文链接:https://javaforall.net
