PowerBI矩阵图表:如何将度量值拖入列并创建列子标题?
Power BI 矩阵图表配置方案
数据集
| Name | Type | Result | Start time | End time |
|---|---|---|---|---|
| Abc | A | Ans | 5/5/2023 13:12:33 | 5/5/2023 13:12:43 |
| Abc | A | Ans | 5/5/2023 14:12:33 | 5/5/2023 14:14:33 |
| Abc | A | Ans | 5/5/2023 16:45:33 | 5/5/2023 16:46:33 |
| Abc | B | No ans | 5/5/2023 16:55:10 | 5/5/2023 16:57:46 |
| Efg | A | No ans | 5/5/2023 13:15:44 | 5/5/2023 13:17:38 |
| Hij | B | No ans | 5/5/2023 13:15:44 | 5/5/2023 13:15:44 |
| Hij | B | No ans | 5/5/2023 15:07:56 | 5/5/2023 15:08:00 |
| hij | A | No ans | 5/5/2023 18:21:01 | 5/5/2023 18:23:55 |
需求
需要创建包含"A""B""Total"列子标题的矩阵图表,展示各分组的总次数、总耗时,此前尝试度量值无法实现列层级结构和拖入总时间度量值到列区域。
解决步骤
1. 添加计算列:计算单条记录耗时
先给原数据表添加计算列,算出每条记录的持续时间(单位可按需调整):
持续时间 = DATEDIFF('你的表名'[Start time], '你的表名'[End time], SECOND)
2. 创建矩阵列维度表(核心步骤)
手动构建一个维度表,用来生成A、B、Total的列层级:
进入建模选项卡 → 新建表,输入以下DAX:
矩阵列维度 = UNION( SELECTCOLUMNS({"A_次数", "A_耗时"}, "分组", "A", "统计项", [Value]), SELECTCOLUMNS({"B_次数", "B_耗时"}, "分组", "B", "统计项", [Value]), SELECTCOLUMNS({"Total_次数", "Total_耗时"}, "分组", "Total", "统计项", [Value]) )
该表会生成包含分组(A/B/Total)和统计项(次数/耗时)的层级结构。
3. 创建动态度量值
编写度量值,根据维度表的筛选返回对应统计数据:
动态统计值 = VAR 当前统计项 = SELECTEDVALUE('矩阵列维度'[统计项]) VAR 当前分组 = SELECTEDVALUE('矩阵列维度'[分组]) VAR 筛选条件 = SWITCH( 当前分组, "A", '你的表名'[Type] = "A", "B", '你的表名'[Type] = "B", "Total", TRUE() ) RETURN SWITCH( 当前统计项, "A_次数", CALCULATE(COUNT('你的表名'[Name]), 筛选条件), "A_耗时", CALCULATE(SUM('你的表名'[持续时间]), 筛选条件), "B_次数", CALCULATE(COUNT('你的表名'[Name]), 筛选条件), "B_耗时", CALCULATE(SUM('你的表名'[持续时间]), 筛选条件), "Total_次数", CALCULATE(COUNT('你的表名'[Name]), 筛选条件), "Total_耗时", CALCULATE(SUM('你的表名'[持续时间]), 筛选条件) )
4. 配置矩阵图表
- 将
你的表名[Name](建议先统一大小写,比如添加统一名称 = UPPER('你的表名'[Name])计算列,用该列避免重复行)拖到矩阵的行区域; - 将
矩阵列维度[分组]拖到矩阵的列区域; - 将
矩阵列维度[统计项]拖到矩阵的列区域,放在分组字段下方,形成层级; - 将
动态统计值拖到矩阵的值区域; - 最后修改列标签:把"A_次数"改为"次数","A_耗时"改为"耗时",同理修改B和Total对应的统计项名称,即可得到目标样式的矩阵。
内容的提问来源于stack exchange,提问作者LaurenLai
相关产品推荐
相关产品推荐

