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.
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; comience con la dirección URL del informe y agregue la sintaxis de filtro en una cadena de consulta. Una cadena de consulta de una dirección URL comienza con un signo de interrogación (?), por ejemplo:
URL?filter=Table/Field eq 'value'
- 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.
Si el parámetro filter no es el primer parámetro de la cadena de consulta, se une al parámetro anterior con una y comercial (&), por ejemplo:
URL?reportId=xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx&pageName=ReportSection&filter=Table/Field eq 'value'
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.
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'
Ahora, el informe se filtra por Carolina del Norte; todas las visualizaciones del informe muestran datos solo para Carolina del Norte.
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/Field in ('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 | sí | sí | sí | product/price le 200 and price gt 3.5 |
eq | es igual a | sí | sí | sí | Address/City eq 'Redmond' |
ne | no igual | sí | sí | sí | Address/City ne 'London' |
ge | mayor o igual | no | sí | sí | product/price ge 10 |
gt | mayor que | no | sí | sí | product/price gt 20 |
le | menor o igual | no | sí | sí | product/price le 100 |
lt | menor que | no | sí | sí | product/price lt 20 |
in* | incluido | sí | sí | sí | 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
Table_x0020_Special/_x005B_Column_x0020_Brackets_x005D_ eq '[C]'
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:?filter=Table/Name eq 'Lee''s Summit'
se convierte en:El operador
in
admite también esta secuencia de escape:?filter=Table/Name in ('Lee''s Summit', 'O''Brien')
se convierte en:
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 "张力".
Escenarios de inserción
Los filtros de dirección URL se admiten en algunos escenarios de inserción y no en otros.
- Se admite la inserción de un informe en un sitio web o portal seguro.
- En Power BI Embedded se admiten los filtros de URL.
- El filtrado de cadenas de consulta no funciona con Publicar en la web ni Exportar a PDF.
- La inserción de un elemento web de informes en SharePoint Online no admite los filtros de direcciones URL.
- En Teams no se permite especificar una dirección URL.
Contenido relacionado
¿Tiene más preguntas? Pruebe a preguntar a la comunidad de Power BI