在包含表的列中提升标题

时间:2018-08-23 15:15:36

标签: powerbi powerquery m

假设我们有Content列,其中包含表格。我想以所有表都从第一行获得标题的方式来转换该列的每个表。

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WKsovVzBU0lFyVIrVgfCMUHjGKDwTFJ4pCs8MwosFAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t]),
    #"Grouped Rows" = Table.Group(Source, {"Column2"}, {{"Content", each _, type table}}),
    #"Previous Step" = Table.SelectColumns(#"Grouped Rows",{"Content"}),
    #"Added Custom" = Table.AddColumn(#"Previous Step", "New Content", each Table.PromoteHeaders([Content], [PromoteAllScalars=true]))
in
    #"Added Custom"

如果您从此代码中选择Previous Step,然后单击显示红色箭头的地方(在Table文字的右侧,而不是上方),您可能会在其中看到以下内容:

enter image description here

现在,我可以在最后一步的自定义列中获得所需的结果: enter image description here

但是我想在不添加新列的情况下得到我想要的,而是在最后一步通过转换 Content列来获得。有可能吗?

请注意,我不想扩展表格。

1 个答案:

答案 0 :(得分:2)

只需使用Table.TransformColumns代替Table.AddColumn

Table.TransformColumns(#"Previous Step", {{"Content", each Table.PromoteHeaders(_, [PromoteAllScalars=true])}})

制作转换列步骤的一种简单方法是执行类似操作,例如在“转换”选项卡上的列上添加文本操作,这将创建一个TransformColumns步骤,您可以对其进行编辑以执行所需的操作。