暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PowerBI-Dax-selectedvalue

BISeven 2021-05-24
2573

Selectedvalue 其作用是当所指定的列被筛选至只有一个值时并返回该值,其语法:

Selectedvalue(columnName [, alternateResult])

columnName:想要指定的列,必须是已经存在的列

alternateResult: 当指定的列不满足条件时(被筛选后其值不是1个),该函数返回的值,默认情况下,返回blank()


示例:


假设使用student表中StuName 作为切片器,分别从Student表中选择一列:StuName,从Score表中选择两列:StuName和Course,建立以下三个度量值看看Selectedvalue是如何使用的


stu.stu.num = SELECTEDVALUE(Student[StuName])

score.stu.num = SELECTEDVALUE(Score[Stu])
score.course.num = SELECTEDVALUE(Score[Course])

继续看图:

当切片器筛选“李四”时:

  1. Student表被筛选后只剩“李四”一个值,所以stu.stu.num返回“李四";

  2. Score 表中的StuNmae一列,被”李四" 筛选后,行数为三行,全部为”李四“, 在返回给Selectedvalue函数之前进行了去重动作,所以score.stu.num 返回值也为”李四"

  3. Score表中的Course一列,被”李四"筛选后,行数为三行:"语文","数学","英语"


当切片器选择为“王五"时:

因为只有在Student表中才有”王五“,所以只有stu.stu.num 返回值为”王五“,其他两个度量值返回blank()



当切片器为多选时:张三和李四,无论在Student表还是Score表中,无论是StuName列还是Course列,在当前筛选条件下,经过去重后,都不是只剩一个值,所以三个度量值都返回为blank()



最后再看一个例子,看看如何使用第二参数alternateResult,

score.course.num = SELECTEDVALUE(Score[Course], "Unknown")
score.stu.num = SELECTEDVALUE(Score[Stu], "Unknown")
stu.stu.num = SELECTEDVALUE(Student[StuName], "Unknown")

第二个参数为 "Unkown", 当指定的列在筛选后剩余的值不为1个的时候,返回Unknown



总结一下:

Selectedvalue 其作用是当所指定的列被筛选至只有一个值时并返回该值,这中间会有一个去重的动作

参考文章

https://docs.microsoft.com/en-us/dax/selectedvalue-function

https://dax.guide/selectedvalue/

文章转载自BISeven,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论