Filtro de un informe con parámetros de cadena de consulta en la URL

Al abrir un informe en el servicio Power BI, cada página del informe tiene su propia URL única. Para filtrar esa página del informe, podría utilizar el panel Filtros del lienzo de informes. También podría agregar parámetros de cadena de consulta a la dirección URL para filtrar previamente el informe. Es posible que tenga un informe que quiera filtrar previamente para mostrarlo a sus compañeros. Una manera de filtrar es comenzar con la dirección URL predeterminada del informe, agregarle los parámetros de filtro y luego enviar por correo electrónico la nueva dirección URL completa.

Este artículo usa el ejemplo de análisis de minoristas. Para seguir este tutorial, puede descargar el informe de ejemplo.

Screenshot of Power BI report in the service.

Usos de los parámetros de cadena de consulta

Supongamos que está trabajando en Power BI Desktop. Ahora quiere crear un informe con vínculos a otros informes de Power BI, pero solo quiere mostrar parte de la información de los otros informes. En primer lugar, filtre los informes con parámetros de cadena de consulta y guarde las direcciones URL. Luego, cree una tabla en Desktop con estas nuevas direcciones URL de informe. Por último, publique y comparta el informe.

Otro uso de los parámetros de cadena de consulta es para un usuario que va a crear una solución avanzada de Power BI. En DAX, crea un informe que genera una dirección URL de informe filtrada que se basa, de forma dinámica, en la selección que hace su cliente en el informe actual. Cuando los clientes seleccionan la dirección URL, solo ven la información que esperan.

Sintaxis de parámetro de cadena de consulta para filtrar

Con los parámetros, puede filtrar el informe por uno o varios valores, aunque esos valores contengan espacios o caracteres especiales. La sintaxis básica es bastante sencilla: empiece con la dirección URL del informe, agregue un signo de interrogación y luego incorpore la sintaxis de filtro.

URL?filter=Table/Field eq 'value'

Screenshot of U R L with filter.

  • Los nombres de Tabla y Campo distinguen mayúsculas de minúsculas, pero no distinguen el valor.
  • Todavía se pueden seguir filtrando los campos que están ocultos en la vista de informes.

Tipos de campos

El tipo de campo puede ser un valor de número, fecha y hora o cadena y el tipo usado debe coincidir con el tipo establecido en el modelo semántico. Por ejemplo, especificar una columna de tabla de tipo "cadena" no funciona si está buscando un valor datetime o numérico en una columna de modelo semántico establecida como una fecha; por ejemplo, Table/StringColumn eq 1.

  • Las cadenas deben incluirse entre comillas simple, como en 'nombre de administrador'.
  • Los números no requieren ningún formato especial. Consulte Tipos de datos numéricos en este artículo para obtener más información.
  • Fechas y horas: consulte Tipos de datos de fecha en este artículo.

Si le sigue sin quedar claro, siga leyendo.

Filtrado por un campo

Supongamos que la URL del informe es la siguiente.

Screenshot of starting URL.

Y que tenemos almacenes en Carolina del Norte, tal como vemos en nuestra visualización de mapas anterior. NC es el valor que representa a Carolina del Norte en el campo Territorio de la tabla Almacén. Para filtrar el informe para que solo muestre los datos de tiendas de "NC", anexamos esta cadena a la dirección URL:

?filter=Store/Territory eq 'NC'

Screenshot of U R L with filter for North Carolina.

Ahora, el informe se filtra por Carolina del Norte; todas las visualizaciones del informe muestran datos solo para Carolina del Norte.

Screenshot of Report filtered for North Carolina.

Filtrado por más de un valor en un campo

Para filtrar por más de un valor en un solo campo, use el operador in en lugar del operador and. La sintaxis es:

URL?filter=Table/Fieldin ('value1', 'value2')

Usando el mismo ejemplo, para filtrar el informe de forma que solo se muestren los datos de los almacenes de "NC" (Carolina del norte) o "TN" (Tennessee), anexe a la dirección URL lo siguiente:

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

Consulte la tabla Operadores más adelante en el artículo para ver una lista de otros operadores útiles.

Filtrado por varios campos

También puede filtrar por varios campos agregando más parámetros a su URL. Volvamos a nuestro parámetro de filtro original.

?filter=Store/Territory eq 'NC'

Para filtrar por más campos, agregue "and" y otro campo en el mismo formato que el ejemplo anterior. Este es un ejemplo.

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

Operadores

Power BI admite muchos operadores además de "and". En la tabla siguiente, se indican esos operadores junto con el tipo de contenido que admiten.

Operator Definición String Number Date Ejemplo
and y product/price le 200 and price gt 3.5
eq es igual a Address/City eq 'Redmond'
ne no igual Address/City ne 'London'
ge mayor o igual no product/price ge 10
gt mayor que no product/price gt 20
le menor o igual no product/price le 100
lt menor que no product/price lt 20
in* incluido Student/Age in (27, 29)

* Al usar in, los valores a la derecha de in pueden ser una lista separada por comas entre paréntesis o una sola expresión que devuelve una colección. Consulte el artículo sobre el operador IN para obtener ejemplos.

Tipos de datos numéricos

Un filtro de dirección URL de Power BI puede incluir números en los siguientes formatos.

Tipo de número Ejemplo
integer 5
long 5 L o 5 l
double 5,5 o 55e-1 o 0,55e+1 o 5D o 5d o 0,5e1D o 0,5e1d o 5,5D o 5,5d o 55e-1D o 55e-1d
decimal 5 M o 5 m o 5,5 M o 5,5 m
float 5 F o 5 f o 0,5e1 F o 0,5e-1 d

Tipos de datos de fecha

Power BI admite OData V3 y V4 para tipos de datos Date y DateTimeOffset. Para OData V3, debe incluir fechas entre comillas simples y colocar, antes de estas, la palabra datetime. No necesita comillas simples y la palabra datetime en OData V4.

Las fechas se representan con el formato EDM (2019-02-12T00:00:00): cuando especifica una fecha como "AAAA-MM-DD", Power BI la interpreta como “AAAA-MM-DDT00:00:00". Asegúrese de que el mes y el día están compuestos por dos dígitos: MM y DD.

Por qué importa esta distinción Imagine que crea un parámetro de cadena de consulta Table/Date gt "2018-08-03" . La duda es si los resultados incluyen el 3 de agosto de 2018 o empiezan con el 4 de agosto 2018. Power BI convierte la consulta a Table/Date gt "2018-08-03T00:00:00" . Por lo tanto, los resultados incluyen cualquier fecha que tenga una parte de hora que no sea cero, ya que esas fechas serían mayores que "2018-08-03T00:00:00".

Hay otras diferencias entre V3 y V4. OData V3 no admite fechas, solo DateTime. Por lo tanto, si usa el formato V3, debe calificarlo con la fecha y hora completas. Los literales de fecha como "datetime"2019-05-20"" no se admiten en la notación V3. Pero solo se puede escribirla como "2019-05-20" en la notación V4. A continuación se muestran dos consultas de filtro equivalentes en V3 y 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 especiales en filtros de URL

Caracteres especiales en nombres de tabla y de columna

Los caracteres especiales, los espacios y los números iniciales de los nombres de tablas y columnas requieren más formato. Cuando la consulta contenga espacios, guiones, números iniciales u otros caracteres no ASCII, anteponga a estos caracteres especiales un código de escape que comience con un guión bajo y una X (_x), luego el código Unicode de cuatro dígitos, y luego, otro guión bajo. Si el carácter Unicode tiene menos de cuatro caracteres, debe rellenarlo con ceros. Estos son algunos ejemplos.

Identificador Unicode Codificación para Power BI
Nombre de tabla El espacio es 00 x 20 Table_x0020_Name
Columna@Número @ es 00 x 40 Column_x0040_Number
[Columna] [es 0x005B] es 0x005D _x005B_Column_x005D_
Columna+Más + es 0x2B Column_x002B_Plus
2TableName 2 es 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 especiales en valores

Los filtros de dirección URL admiten la mayoría de los caracteres especiales en los valores de campo, pero algunos también requieren códigos de escape. Por ejemplo, para buscar un carácter de comilla simple, use dos comillas simples ('').

  • ?filter=Table/Name eq 'O''Brien' se convierte en:

    Name is O'Brien

  • ?filter=Table/Name eq 'Lee''s Summit' se convierte en:

    Lee's Summit

  • El operador in admite también esta secuencia de escape: ?filter=Table/Name in ('Lee''s Summit', 'O''Brien') se convierte en:

    Lee's Summit or O'Brien

Esta es una lista de algunos caracteres especiales que requieren códigos de escape en los valores de campo.

Carácter Código de escape
(un espacio) %20
' ''
% %25
+ %2B
/ %2F
? %3F
# %23
& %26

Caracteres de escape de dirección URL estándar

Cuando se usa una URL con espacios y otros caracteres especiales, puede que los exploradores los reemplacen automáticamente por caracteres de escape estándar. Por ejemplo, pongamos que crea esta cadena de consulta de URL:

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

Se abre el ejemplo de rentabilidad del cliente, filtrado por Andrew Ma. Pero si se fija em la URL, puede que ahora tenga el siguiente aspecto:

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

El explorador ha reemplazado el espacio entre Andrew y Ma por %20, como los otros espacios. Ha sustituido la barra diagonal entre el nombre de la tabla Executives y el nombre del campo Executive por %2F, y ha cambiado la comilla simple ' por %27.

Esta versión de URL puede ser útil. Por ejemplo, puede pegarla en un chat en Microsoft Teams y devolverá los resultados filtrados deseados.

Usar DAX para filtrar por varios valores

Otra manera de filtrar por varios campos es crear una columna calculada que concatene dos campos a un único valor. Después, puede filtrar por ese valor.

Por ejemplo, tenemos dos campos: Territorio y Cadena. En Power BI Desktop, cree una nueva columna calculada (Campo) denominada "TerritoryChain". Recuerde que el nombre del campo no puede contener espacios. Esta es la fórmula DAX para esa columna.

TerritoryChain = [Territorio] & " - " & [Cadena]

Publique el informe en el servicio Power BI y, luego, use la cadena de consulta de URL para filtrar y mostrar los datos de solo las tiendas Lindseys de Carolina del Norte.

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

Anclaje de un icono desde un informe filtrado

Una vez que se ha filtrado el informe con parámetros de cadena de consulta, puede anclar visualizaciones de ese informe al panel. El icono del panel muestra los datos filtrados y, si se selecciona ese icono del panel, se abre el informe que se usó para crearlo. Sin embargo, el filtrado que se hizo con la dirección URL no se guarda con el informe. Cuando se selecciona el icono del panel, el informe se abre con el estado sin filtrar. Por tanto, los datos mostrados en el icono del panel no coinciden con los datos mostrados en la visualización del informe.

Esta discrepancia resulta útil cuando se quieren ver resultados diferentes: filtrados en el panel y sin filtrar en el informe.

Consideraciones y solución de problemas

Hay un par de cosas que tener en cuenta al utilizar los parámetros de cadena de consulta.

  • Cuando usa el operador in, los valores a la derecha de in deben ser una lista separada por comas entre paréntesis.

  • Power BI Report Server también es compatible con la capacidad de especificar más de un filtro usando el parámetro de URL "filter". Este es un posible ejemplo de la dirección URL en Power BI Report Server: https://reportserver/reports/powerbi/Store Sales?rs:Embed=true&filter= Store/Territory eq 'NC' and Store/Chain eq 'Fashions Direct'

  • Los filtros de dirección URL de informe tienen un límite de diez expresiones (diez filtros conectados mediante AND).

  • El tipo de datos long es (2^53-1) debido a las limitaciones de JavaScript.

  • Las cadenas de consulta de dirección URL están limitadas a 2000 caracteres. Este límite incluye códigos de escape para caracteres especiales (por ejemplo, un espacio, %, +).

  • No se pueden aplicar filtros en tablas o columnas que empiecen por las letras en mayúsculas INF, incluido, por ejemplo, un nombre de tabla que empiece por "INFORMACIÓN". INF en mayúsculas es un valor especial en OData. Si quiere que el nombre de una tabla o columna empiece por "INF", póngalo en minúsculas.

  • Los nombres de tabla y campo pueden contener caracteres chinos expresados en formato Unicode. Por ejemplo, supongamos que quiere aplicar un filtro que 表/人 eq "张力" (esto significa tabla/persona "张力"). El filtro se convierte en _x8868_/_x4eba_ eq "张力".

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

Escenarios de inserción

Los filtros de dirección URL se admiten en algunos escenarios de inserción y no en otros.

¿Tiene más preguntas? Pruebe a preguntar a la comunidad de Power BI