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])
继续看图:
当切片器筛选“李四”时:
Student表被筛选后只剩“李四”一个值,所以stu.stu.num返回“李四";
Score 表中的StuNmae一列,被”李四" 筛选后,行数为三行,全部为”李四“, 在返回给Selectedvalue函数之前进行了去重动作,所以score.stu.num 返回值也为”李四"
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/




