使用幂查询转置表

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

之前:

之后:

【讨论】:

以上是关于使用幂查询转置表的主要内容,如果未能解决你的问题,请参考以下文章

使用转置表进行 Alpha-beta 修剪,迭代加深

PostgreSQL中的转置表

SQL转置表 - sqlserver [重复]

在 QSqlQueryModel 中交换标题(转置表)

python zip()函数转置表,操作列

具有分析功能的oracle转置[重复]