![Use parâmetros no Power Query](https://rvso.com/image/1520081/Use%20par%C3%A2metros%20no%20Power%20Query.png)
Por favor, ajude-me a descobrir como parametrizar uma consulta de energia.
Eu construí uma consulta PowerQuery que consulta um serviço da web em busca de determinados dados e os manipula da maneira certa. Digamos que eu consulte um sistema de gerenciamento de tarefas para as tarefas de hoje. Uma consulta pode ser algo como:
Web.Contents("http://intranet/tasks?assignee=John", [Content=Text.ToBinary("")]),
Funciona bem, mas quero compartilhar esta pasta de trabalho com esta consulta com meus colegas para que eles possam usá-la em suas próprias tarefas.
Web.Contents("http://intranet/tasks?assignee={INPUT HERE}", [Content=Text.ToBinary("")]),
Idealmente, quero um parâmetro em algum lugar chamado "Destinatário" (em uma célula de uma pasta de trabalho, por exemplo). Quero que um usuário desta pasta de trabalho possa inserir o responsável pelo qual deseja consultar, por exemplo, Peter, para que, quando atualizar os dados, a consulta use seu parâmetro assim
Web.Contents("http://intranet/tasks?assignee=Peter", [Content=Text.ToBinary("")]),
Eu não gostaria que eles abrissem o editor PowerQuery e editassem o código de consulta porque nossos usuários morrerão de medo de fazer isso e provavelmente cometerão erros. Uma célula na pasta de trabalho para selecionar o responsável, considero a abordagem mais utilizável.
Isso é possível? Se sim, como?
Obrigado
Responder1
Encontrei essa solução na internet, que era exatamente o que procurava.
Crie uma nova consulta, abra o editor avançado e cole o seguinte código:
let GetValue=(rangeName) =>
let
name = Excel.CurrentWorkbook(){[Name=rangeName]}[Content],
value = name{0}[Column1]
in
value
in GetValue
Salve-o e agora você terá uma função de consulta que poderá usar em outra consulta como essa:
GetValue("Password")
O que ele fará é procurar um intervalo chamado “Senha” na pasta de trabalho e obter o valor da primeira célula desse intervalo.
Responder2
Você pode usar o Query
registro para passar parâmetros. Se o valor da célula estiver armazenado na etapa anterior Name
, você pode adicionar uma nova etapa com o botão fx na barra de fórmulas e adicionar a seguinte fórmula:
= Web.Contents("http://intranet/tasks", [Content=Text.ToBinary(""), Query=[assignee = Name]])
Se eles tiverem níveis de privacidade ativados, eles verão um prompt de nível de privacidade. Eles podem optar por atribuir níveis de privacidade apropriados (talvez ambos organizacionais, neste caso) ou podem desativar os níveis de privacidade na caixa de diálogo Opções.