Power BI如何添加slicer实现矩阵数值千/百万单位动态切换
Power BI 动态单位切换解决方案
你不需要额外新增单位切换切片器,直接通过DAX判断业务单元切片器的选中状态即可实现需求,具体操作步骤如下:
1. 准备基础求和度量
先编写你原本需要展示的数值的基础求和度量,示例如下,替换为你自己的表和字段即可:
原始求和值 = SUM('业务数据表'[你要求和的数值列])
2. 编写带自动单位判断的度量
复制以下DAX代码,替换其中的占位内容后创建新度量:
动态单位展示值 = // 替换为你上一步写的基础求和度量 VAR 基础数值 = [原始求和值] // 替换为你的业务单元维度表、业务单元字段名 VAR 选中的业务单元数 = COUNTROWS(ALLSELECTED('业务单元维度表'[业务单元名称])) // 替换为你的业务单元维度表、业务单元字段名 VAR 全部业务单元数 = COUNTROWS(ALL('业务单元维度表'[业务单元名称])) RETURN SWITCH( TRUE(), // 全选状态:返回百万单位,保留2位小数,可按需调整小数位数 选中的业务单元数 = 全部业务单元数, DIVIDE(基础数值, 1000000, 0) & " 百万", // 单选状态:返回千单位,保留0位小数,可按需调整 选中的业务单元数 = 1, DIVIDE(基础数值, 1000, 0) & " 千", // 可选:选中2个及以上且未全选的情况,可自定义规则,这里默认用千单位 DIVIDE(基础数值, 1000, 0) & " 千" )
如果你不需要在数值后显示单位后缀,直接删除代码里的
& " 百万"和& " 千"即可。
3. 替换矩阵的数值字段
把矩阵中原来放的数值字段替换为上面新建的动态单位展示值,操作业务单元切片器即可验证效果:
- 全选所有业务单元时,数值自动按百万单位展示
- 单选单个业务单元时,数值自动按千单位展示
可选优化:纯数值动态格式方案
如果你需要保留数值类型方便后续排序、条件格式操作,可使用Power BI的动态格式功能(2023年及以上版本支持):
- 先编写纯数值的动态度量:
动态单位纯数值 = VAR 基础数值 = [原始求和值] VAR 选中的业务单元数 = COUNTROWS(ALLSELECTED('业务单元维度表'[业务单元名称])) VAR 全部业务单元数 = COUNTROWS(ALL('业务单元维度表'[业务单元名称])) RETURN IF(选中的业务单元数 = 全部业务单元数, DIVIDE(基础数值, 1000000, 0), DIVIDE(基础数值, 1000, 0))
- 选中该度量,在顶部「度量工具」栏点击「格式」-「动态」,输入以下格式DAX:
VAR 选中的业务单元数 = COUNTROWS(ALLSELECTED('业务单元维度表'[业务单元名称])) VAR 全部业务单元数 = COUNTROWS(ALL('业务单元维度表'[业务单元名称])) RETURN IF(选中的业务单元数 = 全部业务单元数, "#,0.00"" 百万""", "#,0"" 千""")
该方案返回值为纯数值,仅展示时带单位后缀,不影响任何数值运算操作。
内容的提问来源于stack exchange,提问作者SB21
相关产品推荐
相关产品推荐

