Power Query:如何使 power query 更新合并文件?
Power Query: how can I make power query update a merge file?
我合并了两个文件。
我希望定期更新这些文件,有时可以添加一列或更改列名。
但是当列名发生变化时,它不会在生成的合并文件中发生变化。
我想让我的 "merged query" 进化,以便它 "updates" 具有潜在的新输入。
例如,如果正在合并的文件之一有一个多列或一个新名称,我希望我的查询能够反映这一点。
如何在我的查询中更改它?
这可能吗?
下面是我要解决的问题的一个最小示例:
文件一:
|---------------------|---------------------|
| Name | Pro1 |
|---------------------|---------------------|
| A | 56 |
|---------------------|---------------------|
| B | 56 |
|---------------------|---------------------|
文件 2:
|---------------------|---------------------|
| Name | WEURK |
|---------------------|---------------------|
| A | LALALA |
|---------------------|---------------------|
| B | RTEWRFVE |
|---------------------|---------------------|
合并结果:
|---------------------|---------------------|---------------------|
| Name | Pro1 | WEURK |
|---------------------|---------------------|---------------------|
| A | 56 | LALALA |
|---------------------|---------------------|---------------------|
| B | 56 | RTEWRFVE |
|---------------------|---------------------|---------------------|
但是在这里,我做了以下操作,例如:更改列名,但这对我的合并没有影响...我怎样才能合并"update"?
|---------------------|---------------------|
| Name | WALALLALALALA |
|---------------------|---------------------|
| A | 56 |
|---------------------|---------------------|
| B | 56 |
|---------------------|---------------------|
您可以使用 Table.ColumnNames
获取可能更改的 table 列名称的列表。
这是最少的可能查询。
let
// Column names in File2 except for "Name" column.
#"File2 Columns" =
List.RemoveItems(Table.ColumnNames(File2), {"Name"}),
// Merge File2 into a nested table column named "__File2".
// You may need to replace JoinKind to another one depending on your data.
#"Merged Queries" =
Table.NestedJoin(File1, {"Name"}, File2, {"Name"}, "__File2", JoinKind.FullOuter),
// Expand all the columns except for "Name" in the nested "__File2" table.
#"Expanded File2" =
Table.ExpandTableColumn(#"Merged Queries", "__File2", #"File2 Columns")
in
#"Expanded File2"
这个查询过于简单以至于不实用,因为它假设合并键列 "Name" 不会更改,并且 File1 中没有重复的列名,并且文件 2.
但这对你来说将是一个起点。
我合并了两个文件。
我希望定期更新这些文件,有时可以添加一列或更改列名。
但是当列名发生变化时,它不会在生成的合并文件中发生变化。
我想让我的 "merged query" 进化,以便它 "updates" 具有潜在的新输入。 例如,如果正在合并的文件之一有一个多列或一个新名称,我希望我的查询能够反映这一点。
如何在我的查询中更改它? 这可能吗?
下面是我要解决的问题的一个最小示例:
文件一:
|---------------------|---------------------|
| Name | Pro1 |
|---------------------|---------------------|
| A | 56 |
|---------------------|---------------------|
| B | 56 |
|---------------------|---------------------|
文件 2:
|---------------------|---------------------|
| Name | WEURK |
|---------------------|---------------------|
| A | LALALA |
|---------------------|---------------------|
| B | RTEWRFVE |
|---------------------|---------------------|
合并结果:
|---------------------|---------------------|---------------------|
| Name | Pro1 | WEURK |
|---------------------|---------------------|---------------------|
| A | 56 | LALALA |
|---------------------|---------------------|---------------------|
| B | 56 | RTEWRFVE |
|---------------------|---------------------|---------------------|
但是在这里,我做了以下操作,例如:更改列名,但这对我的合并没有影响...我怎样才能合并"update"?
|---------------------|---------------------|
| Name | WALALLALALALA |
|---------------------|---------------------|
| A | 56 |
|---------------------|---------------------|
| B | 56 |
|---------------------|---------------------|
您可以使用 Table.ColumnNames
获取可能更改的 table 列名称的列表。
这是最少的可能查询。
let
// Column names in File2 except for "Name" column.
#"File2 Columns" =
List.RemoveItems(Table.ColumnNames(File2), {"Name"}),
// Merge File2 into a nested table column named "__File2".
// You may need to replace JoinKind to another one depending on your data.
#"Merged Queries" =
Table.NestedJoin(File1, {"Name"}, File2, {"Name"}, "__File2", JoinKind.FullOuter),
// Expand all the columns except for "Name" in the nested "__File2" table.
#"Expanded File2" =
Table.ExpandTableColumn(#"Merged Queries", "__File2", #"File2 Columns")
in
#"Expanded File2"
这个查询过于简单以至于不实用,因为它假设合并键列 "Name" 不会更改,并且 File1 中没有重复的列名,并且文件 2.
但这对你来说将是一个起点。