Power BI如何实现成本主分类与子分类同列层级汇总展示
Power BI 实现主分类+子分类分层带星号汇总的操作方法
你可以通过两种方式实现目标效果,优先推荐Power Query处理法,性能更好、后续数据刷新可自动同步:
方法一:Power Query 可视化操作(推荐)
- 导入原始成本数据表后,点击顶部菜单栏「转换数据」进入Power Query编辑器
- 生成主分类汇总表:
- 选中原始表,点击「分组依据」,选择高级分组,按
Category字段分组 - 新增两个聚合列:第一列命名为Subcategory,值选「所有行」后手动修改公式为
null;第二列命名为Values,聚合方式选「求和」,统计原Values字段的总和 - 调整列名:将Category列重命名为Costs,汇总的Values列重命名为Value,新增自定义列「排序层级」,值固定为
0,保留Costs、Value、排序层级三列
- 选中原始表,点击「分组依据」,选择高级分组,按
- 处理子分类明细表:
- 复制一份原始表作为子分类明细数据源
- 新增自定义列Costs,公式为
"*" & [Subcategory];新增自定义列Value,公式为"*" & Text.From([Values]) - 新增自定义列「排序层级」,值固定为
1,同样保留Costs、Value、排序层级三列
- 合并排序输出:
- 选中主分类汇总表,点击「追加查询」,将子分类明细表追加进来
- 按主分类名称、「排序层级」做升序排序,保证主分类行排在对应子分类上方
- 删除排序层级辅助列,点击「关闭并应用」,将处理后的表加载到报表中,直接拖入表视觉对象即可得到目标结构
方法二:DAX 计算表快速生成
如果不想改动原始查询,可以直接在报表视图新建计算表,输入以下DAX代码:
成本分层展示表 = VAR 主分类汇总 = SELECTCOLUMNS( SUMMARIZE('原始成本表', '原始成本表'[Category], "分类汇总值", SUM('原始成本表'[Values])), "Costs", [Category], "Value", [分类汇总值], "排序组", [Category], "排序层级", 0 ) VAR 子分类明细 = SELECTCOLUMNS( '原始成本表', "Costs", "*" & [Subcategory], "Value", "*" & [Values], "排序组", [Category], "排序层级", 1 ) VAR 合并表 = UNION(主分类汇总, 子分类明细) RETURN SUMMARIZE(合并表, [Costs], [Value], [排序组], [排序层级])
- 代码输入完成后,在数据视图选中生成的
成本分层展示表,按「排序组」、「排序层级」两个字段设置升序排序 - 报表中使用表视觉对象时隐藏两个辅助排序列,只展示Costs和Value列即可
注意:代码中
原始成本表需要替换为你自己导入的成本数据表的实际名称。
内容的提问来源于stack exchange,提问作者Anne
相关产品推荐
相关产品推荐

