Filtrar um relatório usando parâmetros de cadeia de caracteres de consulta na URL

Quando você abre um relatório no serviço do Power BI, cada página do relatório tem sua própria URL exclusiva. Para filtrar essa página de relatório, você pode usar o painel Filtros na tela do relatório. Ou você pode adicionar parâmetros de cadeia de caracteres de consulta à URL para pré-filtrar o relatório. Talvez você tenha um relatório que gostaria de mostrar aos colegas e queira pré-filtrá-lo para eles. Uma maneira de filtrá-lo é começar com a URL padrão para o relatório, adicionar os parâmetros de filtro à URL e, em seguida, enviar por e-mail a nova URL inteira.

Este artigo usa o relatório de exemplo de análise de varejo. Se você quiser acompanhar, você pode baixar o relatório de exemplo.

Screenshot of Power BI report in the service.

Usos para parâmetros de cadeia de caracteres de consulta

Digamos que você esteja trabalhando no Power BI Desktop. Você deseja criar um relatório que tenha links para outros relatórios do Power BI, mas deseja mostrar apenas algumas das informações nos outros relatórios. Primeiro, filtre os relatórios usando parâmetros de cadeia de caracteres de consulta e salve as URLs. Em seguida, crie uma tabela na área de trabalho com essas novas URLs de relatório. Em seguida, publique e compartilhe o relatório.

Outro uso para parâmetros de cadeia de caracteres de consulta é para alguém que cria uma solução avançada do Power BI. No DAX, eles criam um relatório que gera uma URL de relatório filtrada dinamicamente com base na seleção que o cliente faz no relatório atual. Quando os clientes selecionam o URL, veem apenas as informações pretendidas.

Sintaxe do parâmetro da cadeia de caracteres de consulta para filtragem

Com parâmetros, você pode filtrar o relatório para um ou mais valores, mesmo que esses valores contenham espaços ou caracteres especiais. A sintaxe básica é bastante simples; comece com o URL do relatório, adicione um ponto de interrogação e, em seguida, adicione a sintaxe do filtro.

URL?filter=Table/Field eq 'value'

Screenshot of U R L with filter.

  • Os nomes de tabela e campo diferenciam maiúsculas de minúsculas; valor não é.
  • Os campos ocultos da exibição de relatório ainda podem ser filtrados.

Tipos de campo

O tipo de campo pode ser um número, data/hora ou cadeia de caracteres e o tipo usado deve corresponder ao tipo definido no modelo semântico. Por exemplo, especificar uma coluna de tabela do tipo "string" não funciona se você estiver procurando por um valor data/hora ou numérico em uma coluna de modelo semântico definida como uma data, como Table/StringColumn eq 1.

  • As cadeias de caracteres devem ser colocadas entre aspas simples, como em 'nome do gerente'.
  • Os números não requerem formatação especial. Consulte Tipos de dados numéricos neste artigo para obter detalhes.
  • Datas e horas Consulte Tipos de dados de data neste artigo.

Se ainda estiver confuso, continue a leitura e vamos detalhar.

Filtrar num campo

Vamos supor que o URL do nosso relatório seja o seguinte.

Screenshot of starting URL.

E vemos em nossa visualização de mapa anterior que temos lojas na Carolina do Norte. NC é o valor que representa a Carolina do Norte no campo Território da tabela Store. Portanto, para filtrar o relatório para mostrar dados apenas para armazenamentos em "NC", acrescentamos esta cadeia de caracteres à URL:

?filter=Store/Territory eq 'NC'

Screenshot of U R L with filter for North Carolina.

O nosso relatório está agora filtrado para a Carolina do Norte; todas as visualizações no relatório mostram dados apenas para a Carolina do Norte.

Screenshot of Report filtered for North Carolina.

Filtrar em mais de um valor em um campo

Para filtrar mais de um valor em um único campo, use o operador in em vez do operador and . A sintaxe é:

URL?filter=Campo da tabela/em ('value1', 'value2')

Usando o mesmo exemplo, para filtrar o relatório para mostrar dados apenas para lojas em "NC" (Carolina do Norte) ou "TN" (Tennessee), acrescente a URL com o seguinte;

?filter=Store/Territory in ('NC', 'TN')

Consulte a tabela Operadores mais adiante no artigo para obter uma lista de outros operadores úteis.

Filtrar em vários campos

Você também pode filtrar em vários campos adicionando mais parâmetros ao seu URL. Vamos voltar ao nosso parâmetro de filtro original.

?filter=Store/Territory eq 'NC'

Para filtrar mais campos, adicione um 'e' e outro campo no mesmo formato do exemplo anterior. Segue-se um exemplo.

?filter=Store/Territory eq 'NC' and Store/Chain eq 'Fashions Direct'

Operadores

O Power BI suporta muitos operadores, além de 'e'. A tabela a seguir lista esses operadores juntamente com o tipo de conteúdo que eles suportam.

Operador Definição String Número Date Exemplo
and e sim sim sim Produto/Preço Le 200 e Preço GT 3.5
QE equals sim sim sim Endereço/Cidade eq 'Redmond'
NE não igual sim sim sim Endereço/Cidade ne 'London'
GE maior ou igual não sim sim Produto/Preço GE 10
GT maior que não sim sim Produto/Preço GT 20
le menor ou igual não sim sim Produto/Preço Le 100
lt menos de não sim sim Produto/Preço LT 20
em* incluindo sim sim sim Estudante/Idade em (27, 29)

* Quando você usa in, os valores à direita de in podem ser uma lista separada por vírgulas entre parênteses ou uma única expressão que retorna uma coleção. Consulte o artigo Operador IN para obter exemplos.

Tipos de dados numéricos

Um filtro de URL do Power BI pode incluir números nos seguintes formatos.

Tipo de número Exemplo
integer 5
Longo 5 L ou 5 L
duplo 5.5 ou 55e-1 ou 0.55e+1 ou 5D ou 5d ou 0.5e1D ou 0.5e1d ou 5.5D ou 5.5d ou 55e-1D ou 55e-1d
decimal 5 M ou 5 m ou 5.5 M ou 5.5 m
flutuar 5 F ou 5 f ou 0.5e1 F ou 0.5e-1 d

Tipos de dados de data

O Power BI suporta OData V3 e V4 para os tipos de dados Date e DateTimeOffset . Para OData V3, você precisa colocar datas entre aspas simples e precedê-las com a palavra datetime. Você não precisa de aspas simples e a palavra datetime no OData V4.

As datas são representadas usando o formato EDM (2019-02-12T00:00:00): Quando você especifica uma data como 'AAAA-MM-DD', o Power BI a interpreta como 'AAAA-MM-DDT00:00:00'. Certifique-se de que mês e dia são dois dígitos, MM e DD.

Por que essa distinção é importante? Digamos que você crie um parâmetro de cadeia de caracteres de consulta Table/Date gt '2018-08-03'. Os resultados incluirão 3 de agosto de 2018 ou começarão em 4 de agosto de 2018? O Power BI traduz a sua consulta para Tabela/Data gt '2018-08-03T00:00:00'. Assim, seus resultados incluem quaisquer datas que tenham uma parte de tempo diferente de zero, porque essas datas seriam maiores do que '2018-08-03T00:00:00'.

Existem outras diferenças entre V3 e V4. OData V3 não suporta datas, apenas DateTime. Então, se você usar o formato V3, você deve qualificá-lo com a hora da data completa. Literais de data como "datetime'2019-05-20'" não são suportados na notação V3. Mas você pode simplesmente escrevê-lo como "2019-05-20" na notação V4. Aqui estão duas consultas de filtro equivalentes em V3 e V4:

  • Formato OData V4: filter=Tabela/Data gt 2019-05-20
  • Formato OData V3: filter=Table/Date gt datetime'2019-05-20T00:00:00'

Caracteres especiais em filtros de URL

Caracteres especiais em nomes de tabelas e colunas

Caracteres especiais, espaços e números à esquerda em nomes de tabelas e colunas exigem mais formatação. Quando a consulta contiver espaços, traços, números à esquerda ou outros caracteres não ASCII, prefixe esses caracteres especiais com um código de escape começando com um sublinhado e um X (_x), depois o Unicode de quatro dígitos e, em seguida, outro sublinhado. Se o Unicode tiver menos de quatro caracteres, você precisará preenchê-lo com zeros. Seguem-se alguns exemplos.

Identificador Unicode Codificação para o Power BI
Nome da tabela O espaço é 00x20 Table_x0020_Name
Número da coluna@ @ é 00x40 Column_x0040_Number
[Coluna] [ é 0x005B ] é 0x005D _x005B_Column_x005D_
Coluna+Mais + é 0x2B Column_x002B_Plus
2Nome da tabela 2 é x0032 _x0032_TableName_

Table_x0020_Name/Column_x002B_Plus EQ 3 Screenshot of table visual rendering special characters for Unicode.

Table_x0020_Special/_x005B_Column_x0020_Brackets_x005D_ eq «[C]» Screenshot of table visual rendering special characters for coding for Power B I.

Caracteres especiais em valores

Os filtros de URL suportam a maioria dos caracteres especiais em valores de campo, mas alguns também exigem códigos de escape. Por exemplo, para procurar um caractere de aspas simples, use duas aspas simples ('').

  • ?filter=Table/Name eq 'O''Brien' torna-se:

    Name is O'Brien

  • ?filter=Table/Name eq 'Lee''s Summit' torna-se:

    Lee's Summit

  • O in operador também suporta esta fuga: ?filter=Table/Name in ('Lee''s Summit', 'O''Brien') torna-se:

    Lee's Summit or O'Brien

Aqui está uma lista de alguns caracteres especiais que exigem códigos de escape em valores de campo.

Caráter Código de fuga
(um espaço) 20%
' ''
% 25%
+ %2B
/ %2F
? %3F
# %23
& 26%

Caracteres de escape de URL padrão

Quando você usa um URL com espaços e outros caracteres especiais, os navegadores podem substituí-los automaticamente por caracteres de escape padrão. Digamos que você crie esta cadeia de caracteres de consulta de URL:

https://app.powerbi.com/groups/me/reports/b7dea1d4-d9f0-47aa-a88d-xxxxxxxxxxxx/ReportSection2?filter=Executives/Executive eq 'Andrew Ma'

Abre a Amostra de Rentabilidade do Cliente, filtrada para Andrew Ma. Mas se você olhar para o URL, agora pode ser assim:

https://app.powerbi.com/groups/me/reports/b7dea1d4-d9f0-47aa-a88d-xxxxxxxxxxxx/ReportSection2?filter=Executives%2FExecutive%20eq%20%27Andrew%20Ma%27

O navegador substituiu o espaço entre Andrew e Ma com %20, assim como os outros espaços. Ele substituiu a barra entre o nome Executives da tabela e o nome Executive do campo por %2F, e substituiu a aspa ' simples por %27.

Esta versão de um URL pode ser útil. Por exemplo, você pode colá-lo no bate-papo no Microsoft Teams e ele retorna os resultados filtrados desejados.

Use o DAX para filtrar vários valores

Outra maneira de filtrar vários campos é criando uma coluna calculada que concatena dois campos em um único valor. Então você pode filtrar esse valor.

Por exemplo, temos dois campos: Território e Cadeia. No Power BI Desktop, crie uma nova coluna Calculada (Campo) chamada TerritoryChain. Lembre-se de que o nome do campo não pode ter espaços. Aqui está a fórmula DAX para essa coluna.

TerritoryChain = [Território] & " - " & [Cadeia]

Publique o relatório no serviço do Power BI e, em seguida, utilize a cadeia de caracteres de consulta URL para filtrar e apresentar dados apenas para armazenamentos Lindseys no NC.

https://app.powerbi.com/groups/me/reports/8d6e300b-696f-498e-b611-41ae03366851/ReportSection3?filter=Store/TerritoryChain eq 'NC – Lindseys'

Fixar um bloco de um relatório filtrado

Depois de filtrar o relatório usando parâmetros de cadeia de caracteres de consulta, você pode fixar visualizações desse relatório no seu painel. O bloco no painel exibe os dados filtrados e selecionar esse bloco do painel abre o relatório que foi usado para criá-lo. No entanto, a filtragem que você fez usando a URL não é salva com o relatório. Quando você seleciona o bloco do painel, o relatório é aberto em seu estado não filtrado. Assim, os dados exibidos no bloco do painel não correspondem aos dados exibidos na visualização do relatório.

Essa discrepância é útil quando você deseja ver resultados diferentes; filtrado no painel e não filtrado no relatório.

Considerações e solução de problemas

Há algumas coisas a ter em conta ao utilizar os parâmetros da cadeia de caracteres de consulta.

  • Quando você usa o operador in, os valores à direita de in devem ser uma lista separada por vírgulas entre parênteses.

  • O Servidor de Relatório do Power BI também oferece suporte à capacidade de especificar mais de um filtro usando o parâmetro de URL "filtro". Eis um exemplo do aspeto que o URL pode ter no Servidor de Relatórios do Power BI: https://reportserver/reports/powerbi/Store Sales?rs:Embed=true&filter= Store/Territory eq 'NC' and Store/Chain eq 'Fashions Direct'

  • Os filtros de URL de relatório têm um limite de 10 expressões (10 filtros conectados por AND).

  • O tipo de dados longos é (2^53-1) devido a limitações de JavaScript.

  • As cadeias de caracteres de consulta de URL são limitadas a 2000 caracteres. Este limite inclui códigos de escape para caracteres especiais (por exemplo, um espaço, %, +).

  • Não é possível filtrar nomes de tabelas ou colunas que comecem com as letras maiúsculas INF, incluindo, por exemplo, um nome de tabela que comece com "INFORMAÇÃO". INF maiúsculo é um valor especial em OData. Se você quiser iniciar um nome de tabela ou coluna com "INF", torne-o "inf" minúsculo.

  • Os nomes de tabelas e campos podem conter caracteres chineses expressos em formato Unicode. Por exemplo, digamos que você queira aplicar um filtro que 表/人 eq '张力' (isso significa Table/Person eq '张力'). O filtro é convertido em _x8868_/_x4eba_ eq '张力'.

    Screenshot of Chinese characters converted to Unicode format in a search string.

Incorporação de cenários

Os filtros de URL são suportados em alguns cenários de incorporação e não em outros.

Tem dúvidas? Tente perguntar à Comunidade do Power BI