1

Пожалуйста, помогите мне разобраться, как настроить 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 и редактировали код запроса, потому что наши пользователи будут напуганы до смерти и, вероятно, допустят ошибки. Я думаю, наиболее подходящим является ячейка в рабочей тетради для выбора сотрудника.

Это возможно? Если так - как?

Спасибо

2 ответа2

0

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

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

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

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

GetValue("Password")

То, что он будет делать, - это найти в книге диапазон под названием "Пароль" и взять значение первой ячейки в этом диапазоне.

0

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .