How to refer columns in Power Query by index or position?

孤街醉人 提交于 2019-12-10 18:28:46

问题


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


回答1:


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})
        )
    )


来源:https://stackoverflow.com/questions/50113354/how-to-refer-columns-in-power-query-by-index-or-position

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!