如何在Power Query(M语言)中引用动态列名

问题描述 投票:0回答:2

Table columns and static M code

我想知道是否有一种方法可以引用这三列来创建求和列,即使它们更改了名称?

这三列根据基础查询运行的季度 (1-4) 而有所不同

问题是,当它运行除创建表时查询中的季度之外的任何季度时,附加列会中断,因为它找不到名为一月、二月和三月的列(因为它们现在是 3 个不同的列)月)。

excel powerquery m get-transform
2个回答
1
投票

如果您知道所有不会更改的列,您可以参考从中删除所有固定列的记录,这样您只需添加动态列即可。代码如下所示(您将固定列的名称放置在列表中)。

List.Sum(Record.ToList(Record.RemoveFields(_, {"Fixed", "Column", "Name"})))

0
投票

接受的答案很棒,让我走上了正确的道路,但也遇到了几乎相同的问题。我学到了一些我想传递的东西。

  1. 您不需要删除固定字段。您可以使用
    Record.SelectFields
  2. 如果不缓冲动态字段名称列表,可能会严重影响性能,因为它会为每条记录重新加载字段名称列表。

这就是我的着陆点:

List.Sum(Record.ToList(Record.SelectFields(_, List.Buffer(PreviouslyDefinedColumnNameList))))
© www.soinside.com 2019 - 2024. All rights reserved.