透视和连接 Power Query
Posted
技术标签:
【中文标题】透视和连接 Power Query【英文标题】:Pivot and concatenate Power Query 【发布时间】:2021-02-19 09:39:39 【问题描述】:我正在尝试标记我的行,但如何获得最终格式对我来说有点复杂。
我的 Power Query 格式如下:
DOC NUM| TRAN | TYPE | ACCS | Amount| Label
TypeA | Code | SA | Acc1 | 123 | A
TypeB | Code | SA | Acc2 | 34 | Q
TypeA | Code | SA | Acc3 | 543 | Y
TypeA | Code | SA | Acc4 | 12 | AW
TypeB | Code | SA | Acc5 | 1 | AX
TypeA | Code | SA | Acc5 | 823 | AX
TypeA | Code | SA | Acc6 | 143 | AZ
TypeB | Code | SA | Acc6 | 113 | AZ
我的目标是获得这种最终格式,其中最后一列是“标签”列的连接,具体取决于前 3 列并按“Accs”排序:
DOC NUM| TRAN | TYPE | Label
TypeA | Code | SA | AYAWAXAZ
TypeB | Code | SA | QAXAZ
这对我来说并不容易,因为你可以看到行数和标签数是可变的。 我能得到的唯一解决方案是将“Accs”与“Label”作为值,在此处完成电源查询并在最后一列的 excel 中创建列的连接:
DOC NUM| TRAN | TYPE | Acc1 | Acc2 | Acc3 | Acc4 | Acc5 | Acc6 | Label
TypeA | Code | SA | A | | Y | AW | AX | AZ |AYAWAXAZ
TypeB | Code | SA | | Q | | | AX | AZ |QAXAZ
然后我可以将此表复制并粘贴到新工作表中并删除“AccX”列。这对我来说不是最好的解决方案,因为我会有很多变量列(这使得连接公式有点乏味),如果可能的话,我希望它是自动的。
非常感谢任何帮助! 提前谢谢!
【问题讨论】:
您能否edit您的问题并将原始数据粘贴到文本中,这样我们就不必重新输入? 当然!很抱歉@RicardoDiaz 【参考方案1】:步骤:
1- 按列分组并使用所有行操作
2- 添加一个自定义列,引用上一步的 AllRows 列和您要连接的列
3- 在自定义列上使用提取值
4- 删除其他列
M码:
let
Source = Excel.CurrentWorkbook()[Name="Table1"][Content],
ChangeType = Table.TransformColumnTypes(Source,"DOC NUM", type text, "TRAN", type text, "TYPE", type text, "ACCS", type text, "Label", type text),
GroupAll = Table.Group(ChangeType, "DOC NUM", "TRAN", "TYPE", "AllRows", each _, type table [DOC NUM=nullable text, #"TRAN"=nullable text, #"TYPE"=nullable text, #"ACCS"=nullable text, #"Amount"=number, #"Label"=nullable text]),
AddCustom = Table.AddColumn(GroupAll, "Custom", each [AllRows][Label]),
ExpandCol = Table.TransformColumns(AddCustom, "Custom", each Text.Combine(List.Transform(_, Text.From)), type text),
RemoveOtherCols = Table.SelectColumns(ExpandCol,"DOC NUM", "TRAN", "TYPE", "Custom")
in
RemoveOtherCols
让我知道它是否有效
【讨论】:
哇!这很棒!效果很好。我必须了解您创建的表格和列表!谢谢以上是关于透视和连接 Power Query的主要内容,如果未能解决你的问题,请参考以下文章
PowerBI:Power Query:处理因数据透视而更改的列名