You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI中无需Unpivoting表格,如何制作按月的Clustered column chart?

在Power BI中不逆透视制作月度簇状柱形图的方法

问题背景

现有如下员工数据表格:

姓名(Name)部门(Department)Jan-23Feb-23Mar-23总计(Total)
员工1(Emp 1)Dpt1100110100310
员工2(Emp 2)Dpt1090090090270
员工3(Emp 3)Dpt1110110110330
员工4(Emp 4)Dpt2080100080260
员工5(Emp 5)Dpt2200150125475
员工6(Emp 6)Dpt3100110120330

需求:不执行逆透视(Unpivoting)操作,制作X轴为月份、Y轴为各部门月度总计的簇状柱形图。

实现方法

可以通过创建维度表和DAX度量值实现,步骤如下:

1. 创建月份维度表

在Power Query编辑器中新建空白查询,输入以下代码生成包含目标月份的维度表:

let
    Source = {"Jan-23", "Feb-23", "Mar-23"},
    #"转换为表" = Table.FromList(Source, Splitter.SplitByNothing(), {"月份"}),
    #"添加索引" = Table.AddIndexColumn(#"转换为表", "索引", 1, 1, Int64.Type)
in
    #"添加索引"

加载该表到数据模型,无需与员工数据表建立关系。

2. 创建部门月度总计度量值

在数据视图中创建DAX度量值,用于动态计算各部门对应月份的总计:

部门月度总计 = 
VAR 当前月份 = SELECTEDVALUE('月份维度'[月份])
VAR 当前部门 = SELECTEDVALUE('员工数据'[部门(Department)])
RETURN
SWITCH(
    当前月份,
    "Jan-23", CALCULATE(SUM('员工数据'[Jan-23]), '员工数据'[部门(Department)] = 当前部门),
    "Feb-23", CALCULATE(SUM('员工数据'[Feb-23]), '员工数据'[部门(Department)] = 当前部门),
    "Mar-23", CALCULATE(SUM('员工数据'[Mar-23]), '员工数据'[部门(Department)] = 当前部门)
)

3. 构建簇状柱形图

  • 将月份维度表中的「月份」字段拖入图表的X轴区域
  • 将「部门月度总计」度量值拖入Y轴区域
  • 在可视化面板的「图例」区域拖入员工数据表的「部门(Department)」字段
  • 确认图表类型为「簇状柱形图」,即可得到符合需求的可视化效果。

补充说明

如果部门或月份较多,这种方法会需要手动维护SWITCH中的分支,长期来看逆透视仍是更高效的方案,但如果受限于无法修改原始表结构,上述方法可以满足临时需求。


内容的提问来源于stack exchange,提问作者aj7amigo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 10:45:06