Filtrar relatórios usando parâmetros da cadeia de caracteres de consulta na URL
Ao abrir 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 do relatório, é possível usar o painel Filtros na tela de relatório. Outra opção é adicionar os parâmetros de cadeia de consulta na URL para filtrar o relatório. Talvez você tenha um relatório que gostaria de mostrar aos colegas, mas antes deseja filtrá-lo previamente para enviar a eles. Uma maneira de filtrar isso é iniciar com a URL padrão do relatório, adicionar os parâmetros de filtro à URL e, em seguida, enviá-los a nova URL inteira por email.
Este artigo usa o relatório Amostra de Análise de Varejo. Se você quiser acompanhar, baixe o relatório de amostra.
Usos dos parâmetros de cadeia de consulta
Digamos que você esteja trabalhando no Power BI Desktop e queira criar um relatório que contenha links para outros relatórios do Power BI, mas deseje mostrar apenas algumas das informações nos outros relatórios. Primeiro, filtre os relatórios usando os parâmetros de cadeia consulta e salve as URLs. Em seguida, crie uma tabela no Desktop com essas novas URLs de relatório. Em seguida, publique e compartilhe o relatório.
Alguém que esteja criando uma solução avançada do Power BI também pode usar os parâmetros de cadeia de consulta. Usando o DAX, ela cria um relatório que gera uma URL do relatório filtrado dinamicamente, com base na seleção que seu cliente faz no relatório atual. Quando os clientes selecionam a URL, eles veem apenas as informações pretendidas.
Sintaxe dos parâmetros da cadeia de caracteres de consulta para filtragem
Com parâmetros, você pode filtrar o relatório usando um ou mais valores, mesmo quando esses valores contêm espaços ou caracteres especiais. A sintaxe básica é razoavelmente simples. Comece com a URL do relatório, adicione um ponto de interrogação e, em seguida, adicione a sintaxe do filtro.
URL?filter=Table/Field eq 'value'
- Os nomes de Tabela e Campo diferenciam maiúsculas de minúsculas, o valor não.
- Os campos ocultos na exibição de relatório ainda podem ser filtrados.
Tipos de campo
O tipo de campo pode ser número, data/hora ou cadeia de caracteres. O tipo usado precisa corresponder ao tipo definido no conjunto de dados. Por exemplo, a especificação de uma coluna de tabela do tipo "cadeia de caracteres" não funcionará se você estiver procurando um valor de data/hora ou numérico em uma coluna de conjunto de dados definida como data, por exemplo, Table/StringColumn eq 1.
- As Cadeias de caracteres precisam ser colocadas entre aspas simples, como ‘nome do gerenciador’.
- Os Números não exigem nenhuma formatação especial. Confira Tipos de dados numéricos neste artigo para obter mais detalhes.
- Datas e horas, confira Tipos de dados de data neste artigo.
Se ainda estiver confuso, continue lendo e nós explicaremos detalhadamente.
Filtrar em um campo
Suponhamos que a URL do nosso relatório seja a seguinte.
Podemos ver em nossa visualização de mapa acima que temos lojas na Carolina do Norte. NC é um valor que representa a Carolina do Norte no campo Território da tabela Repositório. Portanto, para filtrar o relatório para mostrar dados somente de repositórios em "NC", acrescente esta cadeia de caracteres à URL:
?filter=Store/Territory eq 'NC'
Nosso relatório agora está filtrado para Carolina do Norte; todas as visualizações no relatório mostram dados apenas da Carolina do Norte.
Filtrar por mais de um valor em um campo
Para filtrar por mais de um valor em um único campo, use o operador in em vez do operador and. A sintaxe do é:
URL?filter=Table/Fieldin ('value1', 'value2')
Usando o mesmo exemplo, para filtrar o relatório para mostrar dados somente de lojas em "NC" (Carolina do Norte) ou "TN" (Tennessee), inclua a URL com o seguinte:
?filter=Store/Territory in ('NC', 'TN')
Confira a tabela Operadores mais adiante neste 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 à 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 que acima. Veja um exemplo.
?filter=Store/Territory eq 'NC' and Store/Chain eq 'Fashions Direct'
Operadores
O Power BI dá suporte a diversos operadores além do 'and'. A tabela a seguir lista esses operadores, juntamente com o tipo de conteúdo compatível com eles.
Operador | Definição | String | Número | Data | Exemplo |
---|---|---|---|---|---|
and | e | sim | sim | sim | product/price le 200 and price gt 3.5 |
eq | igual a | sim | sim | sim | Address/City eq 'Redmond' |
ne | diferente de | sim | sim | sim | Address/City ne 'London' |
ge | maior ou igual | não | sim | sim | product/price ge 10 |
gt | maior que | não | sim | sim | product/price gt 20 |
le | menor ou igual | não | sim | sim | product/price le 100 |
lt | menor que | não | sim | sim | product/price lt 20 |
in* | incluindo | sim | sim | sim | Student/Age in (27, 29) |
* Quando in é usado, 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 formatos a seguir.
Tipo de número | Exemplo |
---|---|
inteiro | 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 |
flutuante | 5 F ou 5 f ou 0.5e1 F ou 0.5e-1 d |
Tipos de dados de data
O Power BI dá suporte ao OData V3 e V4 para os tipos de dados Data e DateTimeOffset. Para OData v3, as datas precisam ser colocadas entre aspas simples e ser precedidas pela palavra datetime. As aspas simples e a palavra datetime não são necessárias no OData v4.
As datas são representadas usando o formato EDM (2019-02-12T00:00:00): Ao especificar uma data como "AAAA-MM-DD", o Power BI interpreta como "AAAA-MM-DDT00:00:00". Verifique se o mês e o dia são dois dígitos, MM e DD.
Por que essa distinção é importante? Digamos que você crie o parâmetro de cadeia de consulta Table/Date gt 2018-08-03. Os resultados incluirão 3 de agosto de 3, 2018 ou começarão em 4 de agosto de 4, 2018? O Power BI traduz sua consulta para a Table/Date gt '2018-08-03T00:00:00' . Portanto, os resultados incluem todas as datas que têm uma parte de tempo diferente de zero, pois essas datas seriam maiores que "2018-08-03T00:00:00" .
Há outras diferenças entre V3 e V4. O OData V3 não dão suporte a Datas, somente a DateTime. Portanto, se você usar o formato V3, deverá qualificá-lo com a data e hora completa. Datas literais, como "DateTime'2019-05-20'", não têm suporte na notação V3. Mas você pode simplesmente escrevê-la como "2019-05-20" na notação V4. Aqui estão duas consultas de filtro equivalentes em V3 e V4:
- Formato OData V4: filter=Table/Date 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 tabela e coluna
Caracteres especiais e espaços em nomes de tabela e coluna exigem mais formatação. Quando a sua consulta contiver espaços, traços 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), em seguida, o Unicode de quatro dígitos e seguido por outro sublinhado. Se o Unicode tiver menos que quatro caracteres, será necessário preenchê-lo com zeros. Aqui estão alguns exemplos.
Identificador | Unicode | Codificação para o Power BI |
---|---|---|
Nome da tabela | O espaço é 00x20 | Table_x0020_Name |
Column@Number | @ é 00x40 | Column_x0040_Number |
[Column] | [ é 0x005B ] é 0x005D | x005B_Column_x005D |
Column+Plus | + é 0x2B | Column_x002B_Plus |
Table_x0020_Name/Column_x002B_Plus eq 3
Table_x0020_Special/x005B_Column_x0020_Brackets_x005D eq '[C]'
Caracteres especiais em valores
Os filtros de URL dão suporte à maioria dos caracteres especiais em valores de campo, mas alguns também exigem códigos de escape. Por exemplo, para pesquisar um único caractere de aspas, use duas aspas simples ('').
?filter=Table/Name eq 'O''Brien'
torna-se:?filter=Table/Name eq 'Lee''s Summit'
torna-se:O operador
in
também dá suporte a este escape:?filter=Table/Name in ('Lee''s Summit', 'O''Brien')
torna-se:
Aqui está uma lista de alguns caracteres especiais que exigem códigos de escape em valores de campo.
Caractere | Código de escape |
---|---|
(um espaço) | %20 |
' | '' |
% | %25 |
+ | %2B |
/ | %2F |
? | %3F |
# | %23 |
& | %26 |
Caracteres de escape de URL padrão
Quando você usa uma URL com espaços e outros caracteres especiais nele, 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'
Ele abre o Exemplo de Rentabilidade do Cliente, filtrado para Andrew Ma. Mas se você olhar para a URL, agora pode ter esta aparência:
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
por %20
, da mesma forma, os outros espaços. Ele substituiu a barra de avanço entre o nome Executives
da tabela e o nome %2F
Executive
do campo e substituiu a aspa '
única por %27
.
Essa versão de uma URL pode ser útil. Por exemplo, você pode colá-lo no chat em Microsoft Teams e retornará os resultados filtrados desejados.
Usar o DAX para filtrar vários valores
Outra maneira de filtrar em vários campos é criar uma coluna calculada que concatena dois campos em um único valor. A partir daí, é possível filtrar nesse valor.
Suponhamos, por exemplo, que haja dois campos: Território e Cadeia. No Power BI Desktop, crie uma nova coluna Calculada (campo) chamada TerritoryChain. Lembre-se que o nome do Campo não pode conter espaços. Veja a seguir a fórmula DAX da coluna.
TerritoryChain = [Território] & " - " & [Chain]
Publique o relatório no serviço do Power BI e, em seguida, use a cadeia de caracteres de consulta de URL para filtrar e exibir dados somente de lojas Lindseys em 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
Após filtrar o relatório usando parâmetros da cadeia de caracteres de consulta, é possível fixar as visualizações do relatório em questão no seu dashboard. O bloco no dashboard exibe os dados filtrados; a seleção desse bloco do dashboard abre o relatório usado para criá-lo. No entanto, a filtragem executada 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. Isso significa que os dados exibidos no bloco do painel não correspondem aos dados exibidos na visualização de relatório.
Essa discrepância é útil quando você deseja ver resultados diferentes: filtrados no painel e não filtrados no relatório.
Considerações e solução de problemas
Há alguns pontos a serem considerados ao usar os parâmetros da cadeia de caracteres de consulta.
- Quando o operador in é usado, os valores à direita de in devem ser uma lista separada por vírgulas entre parênteses.
- Servidor de Relatórios do Power BI também dá suporte à capacidade de especificar mais de um filtro usando o parâmetro de URL "filtro". Veja um exemplo da aparência de uma URL em um 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'
- Filtros de URL do relatório têm um limite de 10 expressões (10 filtros conectados por AND).
- O tipo de dados Long é (2^53-1) devido a limitações de JavaScript.
- O Power BI não limita o número de caracteres em cadeias de consulta de URL. Diferentes navegadores têm diferentes restrições de comprimento.
- Não é possível filtrar nomes de tabela ou coluna que começam com as letras maiúsculas INF, incluindo, por exemplo, um nome de tabela começando com "INFORMATION". INF de maiúsculas e minúsculas é um valor especial no OData. Se você quiser iniciar um nome de tabela ou coluna com "INF", torne-o "inf" em minúsculas.
Inserindo cenários
Os filtros de URL são compatíveis com alguns cenários de inserção e não com outros.
- Inserir um relatório em um portal ou site protegido é compatível.
- Os filtros de URL são compatíveis com o Power BI Embedded. Confira os Recursos avançados de filtragem de URL do Power BI Embedded para obter mais detalhes.
- A filtragem da cadeia de caracteres de consulta não funciona com Publicar na Web ou Exportar para PDF.
- Inserir com Web Part de Relatório no SharePoint Online não é compatível com filtros de URL.
- As equipes não permitem especificar uma URL.
Próximas etapas
Fixar uma visualização em um dashboard
Inscrever-se em uma avaliação gratuita
Mais perguntas? Experimente perguntar à Comunidade do Power BI