【问题标题】:Transforming 2D XML using Power Query M in Excel在 Excel 中使用 Power Query M 转换 2D XML
【发布时间】:2019-12-16 14:19:04
【问题描述】:

我有一个 XML 文档,其中包含带有元数据列表的元素列表:

<?xml version="1.0"?>
<report>
    <project>
        <meta-data>360333</meta-data>
        <meta-data>SomeName</meta-data>
        <meta-data>SomeDescription</meta-data>
        <meta-data>22.11.2019 11:25</meta-data>
        <meta-data>11.12.2019 10:49</meta-data>
    </project>
        <project>
        <meta-data>360333</meta-data>
        <meta-data>SomeName</meta-data>
        <meta-data>SomeDescription</meta-data>
        <meta-data>22.11.2019 11:25</meta-data>
        <meta-data>11.12.2019 10:49</meta-data>
    </project>
        <project>
        <meta-data>360333</meta-data>
        <meta-data>SomeName</meta-data>
        <meta-data>SomeDescription</meta-data>
        <meta-data>22.11.2019 11:25</meta-data>
        <meta-data>11.12.2019 10:49</meta-data>
    </project>
        <project>
        <meta-data>360333</meta-data>
        <meta-data>SomeName</meta-data>
        <meta-data>SomeDescription</meta-data>
        <meta-data>22.11.2019 11:25</meta-data>
        <meta-data>11.12.2019 10:49</meta-data>
    </project>
</report>

我想把它转换成:

¦   ID   ¦    Name  ¦   Description   ¦       Start      ¦       Stop       ¦
-----------------------------------------------------------------------------
¦ 360333 ¦ SomeName ¦ SomeDescription ¦ 22.11.2019 11:25 ¦ 11.12.2019 10:49 ¦
¦ 360333 ¦ SomeName ¦ SomeDescription ¦ 22.11.2019 11:25 ¦ 11.12.2019 10:49 ¦
¦ 360333 ¦ SomeName ¦ SomeDescription ¦ 22.11.2019 11:25 ¦ 11.12.2019 10:49 ¦
¦ 360333 ¦ SomeName ¦ SomeDescription ¦ 22.11.2019 11:25 ¦ 11.12.2019 10:49 ¦

我正在尝试使用 Microsoft Power Query M,但我对此的了解非常有限,我需要使用 excel 表中的数据。 我用来生成 XML 的工具没有提供不同的结构。 提前谢谢!

【问题讨论】:

    标签: excel xml powerquery


    【解决方案1】:

    假设这些数据是一致的,我认为这应该可以正常工作。将 xml 文件加载到 Power Query 后,只需添加一个自定义列,您可以在其中转置 (Table.Transpose) 每个“表”(这是您的 XML 记录)。然后展开自定义列并根据需要进行清理。

    let
        Source = Xml.Tables(File.Contents("YourFile.xml")),
        Table = Source{0}[Table],
        #"Added Custom" = Table.AddColumn(Table, "Custom", each Table.Transpose([#"meta-data"])),
        #"Expanded Custom" = Table.ExpandTableColumn(#"Added Custom", "Custom", {"Column1", "Column2", "Column3", "Column4", "Column5"}, {"Column1", "Column2", "Column3", "Column4", "Column5"}),
        #"Removed Columns" = Table.RemoveColumns(#"Expanded Custom",{"meta-data"}),
        #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Column1", "ID"}, {"Column2", "Name"}, {"Column3", "Description"}, {"Column4", "Start"}, {"Column5", "Stop"}})
    in
        #"Renamed Columns"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-19
      相关资源
      最近更新 更多