Использовать параметры в Power Query

Использовать параметры в Power Query

Пожалуйста, помогите мне разобраться, как параметризовать Power Query.

Я создал запрос PowerQuery, который запрашивает веб-сервис для определенных данных и манипулирует ими правильным образом. Допустим, я запрашиваю систему управления задачами для моих сегодняшних задач. Запрос может выглядеть примерно так:

Web.Contents("http://intranet/tasks?assignee=John", [Content=Text.ToBinary("")]),

Все работает нормально, но я хочу поделиться этой рабочей книгой с этим запросом со своими коллегами, чтобы они могли использовать ее для своих задач.

Web.Contents("http://intranet/tasks?assignee={INPUT HERE}", [Content=Text.ToBinary("")]),

В идеале я хочу, чтобы где-то был параметр под названием «Assignee» (например, в ячейке рабочей книги). Я хочу, чтобы пользователь этой рабочей книги мог ввести своего исполнителя, к которому он хочет сделать запрос, например, Питер, так, чтобы при обновлении данных запрос использовал его параметр следующим образом

Web.Contents("http://intranet/tasks?assignee=Peter", [Content=Text.ToBinary("")]),

Я бы не хотел, чтобы они открывали редактор PowerQuery и редактировали код запроса, потому что наши пользователи будут до смерти напуганы, делая это, и, вероятно, сделают ошибки. Ячейка в рабочей книге для выбора назначенного лица, я думаю, является наиболее удобным подходом.

Возможно ли это? Если да, то как?

Спасибо

решение1

Я нашел это решение в Интернете, и это именно то, что я искал.

Создайте новый запрос, откройте расширенный редактор и вставьте следующий код:

let GetValue=(rangeName) => 
    let
      name = Excel.CurrentWorkbook(){[Name=rangeName]}[Content],
      value = name{0}[Column1]
    in
      value
    in GetValue

Сохраните его, и теперь у вас есть функция запроса, которую вы можете использовать в другом запросе, подобном этому:

GetValue("Password")

Он будет искать в рабочей книге диапазон под названием «Пароль» и брать значение первой ячейки в этом диапазоне.

решение2

Вы можете использовать Queryзапись для передачи параметров. Если значение ячейки сохранено в предыдущем шаге Name, вы можете добавить новый шаг с помощью кнопки fx в строке формул и добавить следующую формулу:

= Web.Contents("http://intranet/tasks", [Content=Text.ToBinary(""), Query=[assignee = Name]])

Если у них включены уровни конфиденциальности, они увидят запрос на уровень конфиденциальности. Они могут либо назначить соответствующие уровни конфиденциальности (возможно, оба уровня организационных в данном случае), либо отключить уровни конфиденциальности в диалоговом окне «Параметры».

Связанный контент