是的!

是的!

我在 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"

因此实际上,你合并两个表,只是其中一个恰好已经是您的输出(的先前版本)!

相关内容