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.
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'
- 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.
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'
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.
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
Table_x0020_Special/_x005B_Column_x0020_Brackets_x005D_ eq «[C]»
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:?filter=Table/Name eq 'Lee''s Summit'
torna-se:O
in
operador também suporta esta fuga:?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.
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 '张力'.
Incorporação de cenários
Os filtros de URL são suportados em alguns cenários de incorporação e não em outros.
- A incorporação de um relatório em um portal ou site seguro é suportada.
- Os filtros de URL são suportados no Power BI Embedded.
- A filtragem de seqüência de caracteres de consulta não funciona com Publicar na Web ou Exportar para PDF.
- Incorporar com Web Part de relatório no SharePoint Online não oferece suporte a filtros de URL.
- O Teams não permite especificar um URL.
Conteúdos relacionados
Tem dúvidas? Tente perguntar à Comunidade do Power BI