Power BI Query Parameters

PARAMETERS, ou parâmetros, ou “query parameters”, são parâmetros de query, não confundir com “what-if parameters”.

Os QUERY PARAMETERS, vou chamar de parâmetros aqui, são como variáveis… Os parâmetros devem ser definidos lá no Power Query, mas podem ser usados fora do Power Query também.

Se você já leu o post sobre CUSTOM FUNCTIONS já viu o que os parâmetros podem fazer.

O que é importante vc saber sobre parâmetros é o seguinte; eles são como qualquer outro tipo de query no Power BI Desktop, então eles podem ser usados dentro do seu código M, dentro do seu DAX, podem ser usados em qualquer query que vc quiser. Só que, por padrão os Parâmetros não são carregados no Power BI, eles ficam só lá no Power Query, pra que eles apareçam no seu power bi vc tem que habilitar, mas vai lendo que eu já mostro como faz.

Os parâmetros podem ser aplicados em um monte de lugar no power query, fiquem de olho pra aquela caixinha de dropdown. Mas basicamente eles são usados em: fontes de dados, filtragem, remoção e substituição de linhas.

Uma coisa que pode ser importante para o Exame de Certificação é saber que parametros são criados no Power BI Desktop e levados para o Power BI Service Online quando vc publica o seu report, só que os parametros no Power BI Online não são todos que dá pra mudar. Você pode examinar e editar algumas configurações de parâmetro no serviço do Power BI, não os parâmetros que restringem os dados disponíveis, mas os parâmetros que definem e descrevem os valores aceitáveis. Também é possível atualizar parametros via REST API do Power BI.

Então vamos colocar a mão na massa… Abaixo eu estou puxando um novo data-source (fonte de dados) e criando um parâmetro pra passar como meu servidor:

Tá vendo na imagem, estou tentando pegar uma nova fonte de dados do SQL Server database, daí posso criar um novo parâmetro dali mesmo. Então, vou criar um parâmetro chamado Servidor.

Nota: se esse dropdown aí de escolher parâmetro na imagem acima não estiver aparecendo pra vc, faz o seguinte, vai no power query > view > parameters > Always allow.

Esse valor aí de “sqlserverxpto0102.br” vai ficar no parâmetro.

O resultado é igual esse da imagem acima. Esse mesmo processo podemos repetir pra Database, criar um parâmetro e passar lá.

Claro que vc pode depois ir lá no seu parâmetro e mudar o valor dele. Só ir no power query e mudar, ou do power bi mesmo dá pra fazer (depois eu mostro).

Então, se eu quiser mudar a informação do meu parâmetro de Servidor é só ir ali no Servidor e mudar, assim:

Até aqui, moleza, mas… E se eu não quiser ficar toda hora digitando o valor do meu parâmetro???

Uai, só criar uma lista na mão mesmo lá no seu parâmetro. Muda lá no “Suggested Values” do “any values” pra “List of Values” e cria sua lista, como uma coluna única de excel.

Fácil também!

Mas e se eu quiser que essa lista não seja informada na munheca e seja na verdade alimentada automaticamente através de uma tabela?

Aí nesse caso vc precisa de uma tabela antes… vamos importar uma tabela aqui nesse nosso exemplo.

Vou importar meu arquivo de vendas de Janeiro, aquele csv que usei no exemplo de CUSTOM FUNCTIONS. E vou dar uma tratada nele, mas o tratamento não vou colocar aqui.

Show, então agora eu vou criar um parâmetro pra filtrar a REGIAO, pq eu quero ver os dados apenas por REGIAO de acordo com meu parâmetro.

Eu poderia criar um parâmetro com “any value” e passar a região na mao, tipo Austrália e depois filtrar minha tabela com isso. Ou eu poderia criar um parâmetro com “list of values” e informar lá manualmente cada uma das regiões, mas vai demorar mto… Pra fazer automaticamente o conceito é:

Vc precisa criar uma lista com os valores únicos dessa coluna REGIAO.

Pra fazer isso clica com botão direito na coluna REGIAO e clica em “add as new query”. Isso de cara já vai te criar uma LIST, daí vai na lista e clica em REMOVE DUPLICATES.

Agora vai e cria um novo parâmetro e chama ele de pRegiao (não vou chamar de REGIAO pq essa query jah existe, que eh a lista que acabamos de criar). Seleciona tipo TEXT, pq eh um texto neh… seleciona que ela eh de uma query, pq nossa LIST nada mais é do que uma QUERY e a query que vc quer é a REGIAO e em Current Value tu informa qualquer coisa ali.

Se liga que eu informei Brasil no current value, ou seja, é uma informação que não existe… Essa não eh uma boa prática, mas blz, foi só de zueira mesmo.

Então assim, já tenho o parâmetro e agora faço oq? Agora usa onde vc quiser… Eu vou usar na minha tabela de Vendas de Janeiro pra filtrar a coluna Regiao, se liga:

Eu vou na tabela “01-January”, daí vou na coluna que eu quero, que é REGIAO e vou filtrar ela EQUALS o meu parâmetro.

E o resultado foi esse:

Tudo em branco.. Pq o GENIO deixou como Brasil lá no valor do Parametro… Mas blz, dá nada. Se liga, vou ir pro Power BI e escolher o parâmetro lá.

Meu Power BI tá assim, uma tabela na tela que é uma tabela que usa como fonte de dados meu csv de Janeiro e, claro, tá tudo em branco porque está filtrado pelo parâmetro REGIAO que está com valor de Brasil.

O que eu vou fazer agora… vou lah em Transform Data > Edit Parameters

Vou escolher GERMANY no meu parâmetro dar OK e clicar em “APPLY CHANGES” pra ele recarregar minha fonte de dados.

O resultado:

Agora tudo GERMANY!

Mais informações em:

https://powerbi.microsoft.com/en-us/blog/deep-dive-into-query-parameters-and-power-bi-templates/

https://docs.microsoft.com/en-us/power-query/power-query-query-parameters

https://www.mssqltips.com/sqlservertip/4475/using-parameters-in-power-bi/

https://docs.microsoft.com/en-us/power-bi/connect-data/service-parameters

Published by Pedro Carvalho

Apaixonado por análise de dados e Power BI

2 thoughts on “Power BI Query Parameters

Deixe uma resposta

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: