举个例子,我想转换一个表:
Tenant vrf
Ten1 vrf1
Ten1 vrf2
Ten2 vrf4
Ten2 vrf10
变成类似这样:
Ten1 ten2
Vrf1 vrf4
Vrf2 vrf10
我在 powerBi 中使用了这个表,我想转换它并将其作为 excel 中的源查询。提前谢谢您
答案1
为了创建所需的输出,您可以进行无聚合的 Pivot。
为了做到这一点而不导致错误,您可以添加一个索引列,该索引列根据租户从零增加到 n。
- 按租户分组,保留“全部”行
- 为每个子组添加索引列
- 重新展开表格
- 使用 Value=vrf 来转换租户
- 删除索引列
M 代码
let
//Source can be your PBI query
Source = Excel.CurrentWorkbook(){[Name="Table4"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Tenant", type text}, {"vrf", type text}}),
//Group Tenant and add Index column to each subtable
#"Grouped Rows" = Table.Group(#"Changed Type", {"Tenant"}, {
{"x", each Table.AddIndexColumn(_,"Index"), type table[vrf=text, Index=Int64.Type]}
}),
//expand the table; then Pivot on Tenant and remove the Index column
#"Expanded x" = Table.ExpandTableColumn(#"Grouped Rows", "x", {"vrf", "Index"}, {"vrf", "Index"}),
#"Pivoted Column" = Table.Pivot(#"Expanded x", List.Distinct(#"Expanded x"[Tenant]), "Tenant", "vrf"),
#"Removed Columns" = Table.RemoveColumns(#"Pivoted Column",{"Index"})
in
#"Removed Columns"