如何在Microsoft PowerBI中将高行维度数据转换为列维度格式?
在PowerBI中实现会议数据的宽表转换步骤
1. 进入Power Query编辑器
导入数据集后,切换到数据视图选中目标表,点击顶部菜单栏的转换数据,打开Power Query编辑器。
2. 标准化Meeting Number列
选中Meeting Number列,点击顶部的数据类型按钮,设置为整数,空值会自动转为null。
3. 逆透视非核心列
选中ID和Name两列,右键选择逆透视其他列,此时表结构会变为:
| ID | Name | Attribute | Value |
|---|---|---|---|
| 1 | John | Meeting Number | null |
| 1 | John | Meeting Date | null |
| 1 | John | Meeting Decision | null |
| 2 | Mike | Meeting Number | 1 |
| 2 | Mike | Meeting Date | 01-01-2020 |
| 2 | Mike | Meeting Decision | Waiting |
4. 生成新的字段名
添加自定义列New_Attribute,使用以下公式:
if [Attribute] = "Meeting Number" then null else Text.Replace([Attribute], "Meeting ", "") & "_meeting_" & Text.From([Meeting Number])
完成后删除Meeting Number和原Attribute列,仅保留ID、Name、New_Attribute、Value四列。
5. 清理无效行
选中New_Attribute列,点击筛选器取消勾选null,删除这些冗余行。
6. 透视得到目标结构
选中New_Attribute列,点击转换选项卡的透视列,在弹窗中:
- 值列选择
Value - 高级选项选不要聚合
点击确定后,即可得到包含Date_meeting_1、Decision_meeting_1等字段的宽表。
7. 保留无会议的记录
如果透视后无会议的行(如John)消失,可按以下操作找回:
- 复制原始表,删除除
ID、Name外的所有列,移除重复项 - 回到透视后的表,点击主页→合并查询→合并查询作为新查询,选择复制的表为左表,透视表为右表,按
ID和Name做左外部连接 - 展开合并后的列,所有无会议的字段会自动显示为
null
内容的提问来源于stack exchange,提问作者pmmc92
相关产品推荐
相关产品推荐

