我在 excel 中有一个表格,它是使用与 SQL 数据库的 ODBC 连接填充的。此表包含订单和每个订单的状态(状态由第三方程序更改),我通过 power query 向表中添加了其他列,但这些都是有条件的,并且有公式来填充单元格。
我想在表格中添加几列,这样我就可以在单元格中输入文本数据并将它们保存在 excel 中。目前,当我在表格中添加一列并输入任何文本时,它会在下次刷新时被删除,我希望的是,尽管查询被刷新,但仍能保留这些数据……我还希望只保留附加列,而不是表格中的其他列,因为这些列包含需要刷新的数据。
如果不拥有多个表并合并它们,可以做到这一点吗?
答案1
是的!
(...但是...从技术上来说不是。:-))
假设您的原始查询有一个名为“PrimaryKey”的主键列,请通过引用您的原始查询创建一个新查询。将其命名为“QueryPlusManual”。将 QueryPlusManual 加载到您的工作簿中。
在 Excel 中,编辑结果以添加一个名为“ManualColumn”的列并输入一些值。
使用以下代码创建一个名为“PrimaryKeyAndManual”的新查询:
let
Source = Excel.CurrentWorkbook(){[Name="QueryPlusManual"]}[Content],
#"Removed Other Columns" = Table.SelectColumns(Source,{"PrimaryKey", "ManualColumn"})
in
#"Removed Other Columns"
它的作用是从工作表中读取不是来自 QueryPlusManual询问!
现在到了我们本末倒置的部分。编辑您的 QueryPlusManual 查询并
- 合并 PrimaryKeyAndManual (左外连接),然后
- 扩展合并以添加手动列。
QueryPlusManual 查询的最后几行应如下所示:
#"Merged PrimaryKeyAndManual" = Table.NestedJoin(#"PREVIOUSLINENAME",PrimaryKeyAndManual,{"PrimaryKey"},"PrimaryKeyAndManual",JoinKind.LeftOuter),
#"Expanded PrimaryKeyAndManual" = Table.ExpandTableColumn(#"Merged PrimaryKeyAndManual", "PrimaryKeyAndManual", {"ManualColumn"}, {"ManualColumn"})
in
#"Expanded PrimaryKeyAndManual"
因此实际上,你是合并两个表,只是其中一个恰好已经是您的输出(的先前版本)!