Power BI / запрос, динамическое выделение столбцов - PullRequest
0 голосов
/ 28 мая 2018

По какой-то причине мне нужно динамически извлекать таблицу с выбором столбцов в запросе мощности.

Например,

В запросе 1 у меня есть Columns ("ID", "column1", "column2","column3","column4", "column5", "column6")

В запросе 2 это список из другого источника, который содержит список нужных мне меток столбцов, например.("column1", "column5", "column6") <--- String

Итак, я хочу, чтобы в моей финальной таблице были столбцы ("ID", "column1", "column5", "column6").

Есть ли для этого хорошие предложения?

1 Ответ

0 голосов
/ 28 мая 2018

Вот возможное решение ...

Предположим, ваш Query1 выглядит следующим образом:

enter image description here

И ваш Query2 - это списоккоторый я создал в расширенном редакторе в виде списка с этим кодом:

let
    Source = {"column1", "column5", "column6"}
in
    Source

enter image description here

Затем в Query1 вы можете просто использовать Home> RemoveСтолбцы (выпадающая стрелка)> Удалите другие столбцы, чтобы начать работу, а затем замените деталь фигурными скобками (включая сами фигурные скобки) на List.Combine({{"ID"},Query2}).Например, если у вас был выбран столбец Query1 ID, как указано выше, когда вы выбрали Удалить другие столбцы, вы увидите = Table.SelectColumns(Source,{"ID"}).В этом случае вы бы заменили {"ID"} на List.Combine({{"ID"},Query2}).

List.Combine - добавить столбец ID, поскольку он не является частью вашего списка Query2.

Результат будет таким:

enter image description here

Вот как будет выглядеть код Query1 (он извлекает таблицу из excel):

let
    Source = Excel.CurrentWorkbook(){[Name="Query1"]}[Content],
    #"Removed Other Columns" = Table.SelectColumns(Source, List.Combine({{"ID"},Query2}))
in
    #"Removed Other Columns"

PS Если вы вносите свой список меток столбцов в виде строки в столбце из одной строки таблицы, например, как Query2:

enter image description here

Вы можете изменить его на список столбцов с помощью команды «Преобразование»> «Разделить столбец»> «Разделителем»> (выберите «Запятая», «Каждое вхождение разделителя», «Дополнительные параметры», «Разделить на строки» и нажмите «ОК»).Затем вы захотите выполнить Transform> Format> Trim, чтобы удалить случайные начальные пробелы.

В этом случае вам также придется изменить код «Удалить другие столбцы», рассмотренный выше, с List.Combine({{"ID"},Query2}) наList.Combine({{"ID"},Query2[Column Names]}), чтобы учесть тот факт, что вы используете список из столбца с именем «Имена столбцов» в таблице с именем Query2, а не просто прямой список с именем Query2, как изначально было сделано выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...