Как я могу использовать ввод из TextBox в формуле PowerQuery?

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

Json.Document(Web.Contents("https://thesite.com/api/widgets",
              [Query=[name=TextBoxName.Text]]))

Но я получаю эту ошибку

Expression.Error: The import TextBoxName.Text matches no exports. Did
 you miss a module reference?

Как использовать TextBoxName.Text в качестве параметра в моем запросе?


person mcnnowak    schedule 01.12.2015    source источник


Ответы (1)


Это должно быть текстовое поле? Вместо этого поместите значение в таблицу Excel и назовите эту таблицу «Параметры».

введите здесь описание изображения

Затем напишите функцию, которая считывает параметры из таблицы.

(ParameterName as text) =>
let
   ParamSource = Excel.CurrentWorkbook(){[Name="Parameters"]}[Content],
   ParamRow = Table.SelectRows(ParamSource, each ([Parameter] ParameterName)),
   Value=
      if Table.IsEmpty(ParamRow)=true
      then null
      else Record.Field(ParamRow{0},"Value")
in
   Value

Дайте этой функции имя fnGetParameter и загрузите ее.

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

let
   MyQuery = fnGetParameter("JSONQuery"),
   Source = Json.Document(Web.Contents("https://thesite.com/api/widgets",
              [Query=[name=MyQuery]]))

Кредит принадлежит Кену Пулсу, который описывает этот метод на его блог, а также в его книге "M is for (Data) Monkey".

person teylyn    schedule 01.12.2015
comment
Это то, что я в итоге использовал. Если бы мой TextBox обновил ячейку на другом листе с измененным текстом. Проголосуйте за обходной путь. - person mcnnowak; 02.12.2015