转换表以将列名称反映为行值

问题描述 投票:0回答:1

下表中有按客户划分的品牌排名(行值):

CustID     Brand1        Brand2      Brand3     Brand4     Brand5      Brand6    ...   Brand10
1            3             1            2                    5                            4
2                          2            1                    4            3               5
3            2             3                      4                       1               5
 ...

我想转换此表以将排名表示为列,将品牌表示为行:

CustID       1             2            3             4               5
1          Brand2        Brand3       Brand1        Brand10         Brand5
2          Brand3        Brand2       Brand1        Brand5          Brand10
3          Brand6        Brand1       Brand2        Brand4          Brand10
 ...

我总共有116个客户,10个品牌,排名1到5

有没有办法在Excel或任何其他工具中做到这一点?

我尝试了逆透视和透视表,但透视表中的值显示计数,而不是品牌名称

excel pivot unpivot
1个回答
0
投票

使用 Power Pivot 相当简单:

enter image description here

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],

    UnpivotedData = Table.UnpivotOtherColumns(Source, {"CustID"}, "Brand", "Rank"),

    FilteredData = Table.SelectRows(UnpivotedData, each [Rank] <> null),
    ChangeType = Table.TransformColumnTypes(FilteredData,{{"Rank", type text}}),

    PivotedData = Table.Pivot(ChangeType, List.Distinct(ChangeType[Rank]), "Rank", "Brand")

in
    PivotedData
© www.soinside.com 2019 - 2024. All rights reserved.