Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi Power BI/query,动态选择列_Powerbi_Powerquery - Fatal编程技术网

Powerbi Power BI/query,动态选择列

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中创建的列表,其中包含以下代码:

出于某种原因,我需要在powerquery中动态提取一个带有选择列的表

比如说,

在查询1中,我有
列(“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"