如何按索引或位置引用 Power Query 中的列?

Posted

技术标签:

【中文标题】如何按索引或位置引用 Power Query 中的列?【英文标题】:How to refer columns in Power Query by index or position? 【发布时间】:2018-05-01 08:19:35 【问题描述】:

我在 Power Query 中有如下一行。因此,我不是按名称引用它,而是动态地按位置引用它。有人可以帮忙吗,拜托

#"Filtered Part Desc" = Table.SelectRows(#"Removed Columns3", each
                            Text.Contains([part_desc], "ENG") or
                            Text.Contains([part_desc], "TRANS"))

我尝试用Table.ColumnNames(Promoted)6 替换[part_desc],但它不起作用

【问题讨论】:

你能解释一下你想要做什么的逻辑吗?我不明白你的预期目标是什么。 【参考方案1】:

您可以使用 Table.ColumnNames(MyTable)n 按位置返回列名 - 这是基数 0,因此第 6 个列名将是 Table.ColumnNames(MyTable)5

然后,您可以使用 Record.Field 按名称引用列。

您还可以按列表进行过滤,而不是将条件与or 运算符一起使用。

因此,将这些放在一起作为您的示例:

    #"Filtered Part Desc" = Table.SelectRows ( 
        #"Removed Columns3", 
        each List.Contains(
            "ENG","TRANS", 
            Record.Field(_, Table.ColumnNames(#"Removed Columns3")5)
        )
    )

【讨论】:

以上是关于如何按索引或位置引用 Power Query 中的列?的主要内容,如果未能解决你的问题,请参考以下文章

在 DAX 或 Power Query 中自引用列

M语言中的引用(Power Query 之 M 语言)

如何在 Power Query 中引用包含斜杠的字段名称

Power Query,刷新时保持输出表相同大小

如何减去 Power Query 数据透视表中的两列?

如何在Power Query中提取数据?——数值篇