Excel Power Pivot中如何用DAX获取切片器选中的最大值并存为变量
DAX获取切片器选中值最大值的解决方案
报错原因排查
你使用MAX(VALUES(Table1[period]))出现报错,最常见的诱因有两个:
- 公式写在了计算列而非度量值中:计算列在数据刷新时就完成计算,无法读取运行时用户操作切片器产生的动态筛选状态,会直接报错或返回全列最大值而非选中值最大值
VALUES函数受局部筛选上下文干扰:VALUES会返回当前上下文的可见值,如果视觉对象中存在其他行/列筛选,会导致返回范围不符合预期,甚至触发上下文转换错误
正确实现方式
你需要新建度量值来实现该需求,支持将结果存入DAX变量,示例代码如下:
切片器选中周期最大值 = // 提取切片器选中的所有period值 VAR SelectedPeriodList = ALLSELECTED(Table1[period]) // 计算选中值的最大值 VAR MaxSelectedPeriod = MAX(SelectedPeriodList) RETURN MaxSelectedPeriod
额外注意事项
- 需确保
Table1[period]列为数值类型,若为文本类型可在计算时做类型转换:VAR MaxSelectedPeriod = MAX(SelectedPeriodList * 1) - 该度量值会实时响应切片器的多选操作,当你选中1、2、3、4时,返回结果为4,完全匹配你的预期
内容的提问来源于stack exchange,提问作者Laurent Ress
相关产品推荐
相关产品推荐

