Powerbi Power BI/query,动态选择列
出于某种原因,我需要在powerquery中动态提取一个带有选择列的表 比如说, 在查询1中,我有Powerbi Power BI/query,动态选择列,powerbi,powerquery,Powerbi,Powerquery,出于某种原因,我需要在powerquery中动态提取一个带有选择列的表 比如说, 在查询1中,我有列(“ID”、“column1”、“column2”、“column3”、“column4”、“column5”、“column6”) 在查询2中,这是一个来自另一个源的列表,其中包含我需要的列标签列表,例如(“column1”、“column5”、“column6”)这里有一个可能的解决方案 假设您的问题1如下所示: 您的查询2是我在advanced editor中创建的列表,其中包含以下代码:
列(“ID”、“column1”、“column2”、“column3”、“column4”、“column5”、“column6”)
在查询2中,这是一个来自另一个源的列表,其中包含我需要的列标签列表,例如
(“column1”、“column5”、“column6”)这里有一个可能的解决方案
假设您的问题1如下所示:
您的查询2是我在advanced editor中创建的列表,其中包含以下代码:
let
Source = {"column1", "column5", "column6"}
in
Source
然后,在Query1中,您可以使用Home>Remove Columns(下拉列表arrrow)>Remove Other Columns开始,然后使用List.Combine({“ID”},Query2})
用大括号(包括大括号本身)替换零件。例如,如果在选择“删除其他列”时像上面那样选择了Query1 ID列,则会看到=Table.SelectColumns(源代码,{“ID”})
。在这种情况下,您需要将{“ID”}
替换为List.combined({“ID”},Query2})
List.Combine
用于添加ID列,因为它不是Query2列表的一部分
结果如下:
下面是Query1代码的样子(它从excel中提取一个表):
注意:如果要将列标签列表作为字符串从表中的单行列中引入,请将其作为查询2:
您可以通过转换>拆分列>按分隔符>(选择逗号、每次出现分隔符、高级选项、拆分为行并单击确定)将其更改为列列表。然后,您需要执行变换>格式>修剪,以删除多余的前导空格
在这种情况下,您还必须将上面讨论的删除其他列代码从List.Combine({“ID”},Query2})
更改为List.Combine({“ID”},Query2[列名]})
,以说明您正在使用表Query2中名为列名的列中的列表,而不仅仅是像上面所做的那样直接命名为Query2的列表
let
Source = Excel.CurrentWorkbook(){[Name="Query1"]}[Content],
#"Removed Other Columns" = Table.SelectColumns(Source, List.Combine({{"ID"},Query2}))
in
#"Removed Other Columns"