如何通过索引或位置引用Power Query中的列? [英] How to refer columns in Power Query by index or position?

查看:623
本文介绍了如何通过索引或位置引用Power Query中的列?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在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],但是它不起作用

解决方案

您可以使用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})
        )
    )

I have a line as below in Power Query. So instead of referring it by name, I want it by position dynamically. Can someone help here, please

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

I tried replacing [part_desc] by Table.ColumnNames(Promoted){6}, but it is not working

解决方案

You can use Table.ColumnNames(MyTable){n} to return a column name by its position - this this is base 0, so the 6th column name would be Table.ColumnNames(MyTable){5}

You can then use Record.Field to reference a column by its name.

You can also filter by a list, rather than stringing criteria together with the or operator.

So, putting this together for your example:

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

这篇关于如何通过索引或位置引用Power Query中的列?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆