Power Query中的条件列

时间:2019-05-01 23:07:52

标签: excel powerquery

我有一个包含3列的表格:名称,属性和值

所有名称都是唯一的。但是在某些情况下,例如对于不同的名称,它们的属性和值会同时相等。

我想添加条件列,该列将添加所有带有属性和值相等的换行定界符的名称。例如,对于第一个名称,我将转到条件列,并看到具有相同属性和值的其他5个名称的列表

PQ Table

到目前为止,我已经尝试添加条件列:

如果属性等于属性则

否则,如果“值”等于“值,则命名”

但是它只是从名称列返回值,我不知道将这些名称加起来

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以按PropertyValue对行进行分组,然后合并每行的Name

= Table.Group(Source, {"Property", "Value"}, {{"Names", each Text.Combine(_[Name], ", "), type text}})
  • Table.Group-类似于SQL的GROUP BY
  • Text.Combine-与其他语言中的数组连接一样,您提供了一个列表和一个分隔符并接收了一个字符串

原始表:

| Name | Property | Value |
| ---- | -------- | ----- |
| A    | a        |     1 |
| B    | b        |     2 |
| C    | a        |     2 |
| D    | a        |     1 |
| E    | b        |     2 |

完整查询:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    Grouped = Table.Group(Source, {"Property", "Value"}, {{"Names", each Text.Combine(_[Name], ", "), type text}})
in
    Grouped

结果:

| Property | Value | Names |
| -------- | ----- | ----- |
| a        |     1 | A, D  |
| b        |     2 | B, E  |
| a        |     2 | C     |