使用幂查询转置表
Posted
技术标签:
【中文标题】使用幂查询转置表【英文标题】:Transpose a table using power query 【发布时间】:2020-12-20 18:55:50 【问题描述】:我有下表(许多步骤的结果):
我想得到如下结果:因为我需要转置表格:
【问题讨论】:
变换功能区 > 转置命令。解释为什么这对你不起作用。 @teylyn 我尝试使用 pivot 它但徒劳无功。我收到此错误:“枚举中的元素太多,无法完成操作” 我从未提到过枢轴。在 Power Query 中,有转置命令。那不适合你吗?来吧,你应该知道如何提问。请提供足够的详细信息,以便我们重现并帮助解决问题。 @SandraGuilepZouaouiZandeh 我在您的问题中的屏幕截图中看不到任何内容,但您是否检查过是否有任何行具有最终会转入列的相同值?要转置到列的重复行有时会导致此错误。 你有每个国家的记录吗?如果是,请显示至少 2 个国家/地区的数据,并在 excel 文件中提供示例数据,以便人们轻松复制您的数据进行测试。 【参考方案1】:这样就可以了。在您的情况下,NumberOfColumns 至少为 19。
关于基本线的解释
ToTable = Table.FromRows( List.Split( Source[Column.1.2], NumberOfColumns) )
访问The BI Accountant
let
NumberOfColumns = 3
, Source = Table.FromRecords(
[Column.1 = "country", Column.1.2 = "afghanistan"],
[Column.1 = "capital", Column.1.2 = "kabul"],
[Column.1 = "currency", Column.1.2 = "afghani"],
[Column.1 = "country", Column.1.2 = "slovakia"],
[Column.1 = "capital", Column.1.2 = "bratislava"],
[Column.1 = "currency", Column.1.2 = "eur"]
)
, ToTable = Table.FromRows( List.Split( Source[Column.1.2], NumberOfColumns) )
, OldHeader = Table.ColumnNames(ToTable)
, NewHeader = List.FirstN(Source[Column.1],NumberOfColumns)
, RenameHeaders = Table.RenameColumns(ToTable, List.Zip(OldHeader, NewHeader))
in
RenameHeaders
之前:
之后:
【讨论】:
以上是关于使用幂查询转置表的主要内容,如果未能解决你的问题,请参考以下文章