当 Excel 中的数据源更新时,电源查询运行后硬编码的值错位

Posted

技术标签:

【中文标题】当 Excel 中的数据源更新时,电源查询运行后硬编码的值错位【英文标题】:Values hard-coded after power query runs is dislocated when data source updates in Excel 【发布时间】:2018-06-14 15:05:50 【问题描述】:

我有一个像这样的名为“COMPANIES”的表:

Company    Type
Lafarge    Cement
Google     IT
Disney     Entertainment

然后将该表加载到 Power Query 中并显示为 COMPANIES2 表

Excel 视图中 的 COMPANIES2 表中,我添加了一个带有硬编码文本的新列,如下所示:

Company    Type           Country
Lafarge    Cement         France
Google     IT             US
Disney     Entertainment  US

现在回到 COMPANIES 表,添加了一个新行:

Company    Type
Lafarge    Cement
Toyota     Cars
Google     IT
Disney     Entertainment

当我刷新表 COMPANIES2 时,我得到了这个:

Company    Type          Country
Lafarge    Cement         France
Toyota     Cars           US 
Google     IT             <blank>
Disney     Entertainment  US

正如您所见,出于某种原因,美国对 Google 的价值已经上升。

我玩弄了 COMPANIES 表,例如通过切换某些行或重命名它们。最后 COMPANIES2 表总是一团糟。

有没有办法告诉 Excel / Power Query 保护同一位置的第二个表?也许我们可以告诉 Power Query “公司”是 ID 字段并且在此表中是唯一的?因此,当 Company 字段移动时,任何硬编码的新值都应该移动?

【问题讨论】:

【参考方案1】:

查看@MarcelBeug 对this earlier posted question 的回答。他包含了这个link to a good video that he made 来展示它是如何完成的。

【讨论】:

【参考方案2】:

郑重声明,我不能 100% 确定这实际上是理智的,但它似乎有效。

将您的 COMPANIES2 表仅作为连接加载到 Power Query 中。现在转到您原来的 COMPANIES2 查询(将没有“国家”列),将其与仅连接版本合并,并从中展开“国家”列。

虽然这起初看起来像是一个循环引用,但我认为它在实践中有效,因为 PQ 必须在刷新输出之前在 Excel 中提取表中的现有数据,因此它将保留您在 Country 列中添加的数据.

【讨论】:

以上是关于当 Excel 中的数据源更新时,电源查询运行后硬编码的值错位的主要内容,如果未能解决你的问题,请参考以下文章

刷新功率支点-功率查询

Excel:即使缺少一行,是不是有办法从电源查询更新表格?

VBA Excel - 访问查询不可更新

Excel - 通过 Python 刷新电源查询数据

从 Excel 文件查询更新

如何处理数据透视表和电源查询中的重复条目以填充到 excel 仪表板中