Power Query:如何使电源查询更新合并文件?
Posted
技术标签:
【中文标题】Power Query:如何使电源查询更新合并文件?【英文标题】:Power Query: how can I make power query update a merge file? 【发布时间】:2020-06-04 14:17:17 【问题描述】:我有两个合并的文件。
我希望定期更新这些文件,有时可以添加一列或更改列名。
但是,当列名更改时,它不会在生成的合并文件中更改。
我想让我的“合并查询”进化,以便用潜在的新输入“更新”。 例如,如果要合并的文件有一个多列或一个新名称,我希望我的查询能够反映这一点。
如何在我的查询中更改它? 这可能吗?
以下是我要解决的问题的一个最小示例:
文件一:
|---------------------|---------------------|
| Name | Pro1 |
|---------------------|---------------------|
| A | 56 |
|---------------------|---------------------|
| B | 56 |
|---------------------|---------------------|
文件 2:
|---------------------|---------------------|
| Name | WEURK |
|---------------------|---------------------|
| A | LALALA |
|---------------------|---------------------|
| B | RTEWRFVE |
|---------------------|---------------------|
合并结果:
|---------------------|---------------------|---------------------|
| Name | Pro1 | WEURK |
|---------------------|---------------------|---------------------|
| A | 56 | LALALA |
|---------------------|---------------------|---------------------|
| B | 56 | RTEWRFVE |
|---------------------|---------------------|---------------------|
但是在这里,我做了以下示例:更改列名,但这对我的合并没有影响...如何使我的合并“更新”?
|---------------------|---------------------|
| Name | WALALLALALALA |
|---------------------|---------------------|
| A | 56 |
|---------------------|---------------------|
| B | 56 |
|---------------------|---------------------|
【问题讨论】:
【参考方案1】:您可以使用Table.ColumnNames
获取可能更改的表列名称列表。
这是一个最小可能的查询。
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"
这个查询太简单了,不实用,因为它假设合并键列“名称”不会改变,并且在 File1 和 File2 中没有重复的列名。
但这将是你的起点。
【讨论】:
您好,谢谢!从您的回答中,我推断出我想做的事情在 Power BI 中是不可能的。我了解某些潜在的更改可能以某种方式“解释”或“考虑”在查询中,这将被“警告”。但我的愿望是动态地做到这一点。在我的情况下,我无法知道会发生什么。该查询将简单地使用给定的参考列来合并这两个字段,并会采用“所有其余部分”,无论这意味着采用新列还是名称已更改的列。我知道这是否不可能,但我只是想确保我的解释有意义..以上是关于Power Query:如何使电源查询更新合并文件?的主要内容,如果未能解决你的问题,请参考以下文章
为啥power query合并查询中的右反查询出来的结果为空
Power Query 参数在一个表中起作用,但在另一个表中不起作用
如何使用Power Query动态汇总文件夹下多个Excel文件