Filtro de un informe con parámetros de cadena de consulta en la URLFilter a report using query string parameters in the URL

Al abrir un informe en el servicio Power BI, cada página del informe tiene su propia URL única.When you open a report in Power BI service, each page of the report has its own unique URL. Para filtrar esa página del informe, podría utilizar el panel Filtros del lienzo de informes.To filter that report page, you could use the Filters pane on the report canvas. También podría agregar parámetros de cadena de consulta a la dirección URL para filtrar previamente el informe.Or you could add query string parameters to the URL to pre-filter the report. Es posible que tenga un informe que quiera prefiltrarlo para mostrarlo a sus compañeros.Perhaps you have a report you'd like to show colleagues and you want to pre-filter it for them. 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.One way to filter it is to start with the default URL for the report, add the filter parameters to the URL, and then email them the entire new URL.

Informe de Power BI en el servicio

Usos de los parámetros de cadena de consultaUses for query string parameters

Supongamos que está trabajando en Power BI Desktop.Say you're working in 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.You want to create a report that has links to other Power BI reports, but you want to show only some of the information in the other reports. En primer lugar, filtre los informes con parámetros de cadena de consulta y guarde las direcciones URL.First, filter the reports using query string parameters and save the URLs. Luego, cree una tabla en Desktop con estas nuevas direcciones URL de informe.Next, create a table in Desktop with these new report URLs. Por último, publique y comparta el informe.Then publish and share the report.

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.Another use for query string parameters is for someone creating an advanced Power BI solution. Con 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.Using DAX, they create a report that generates a filtered report URL dynamically based on the selection their customer makes in the current report. Cuando los clientes seleccionan la dirección URL, solo ven la información que esperan.When customers select the URL, they see only the intended information.

Sintaxis de parámetro de cadena de consulta para filtrarQuery string parameter syntax for filtering

Con los parámetros, puede filtrar el informe por uno o varios valores, aunque esos valores contengan espacios o caracteres especiales.With parameters, you can filter the report for one or more values, even if those values contain spaces or special characters. 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.The basic syntax is fairly straightforward; start with the report URL, add a question mark, and then add your filter syntax.

URL?filter=Table/Field eq 'value'URL?filter=Table/Field eq 'value'

Dirección URL con filtro

  • Los nombres de Tabla y Campo distinguen mayúsculas de minúsculas, pero valor no.Table and Field names are case-sensitive, value isn't.
  • Todavía se pueden seguir filtrando los campos que están ocultos en la vista de informes.Fields that are hidden from report view can still be filtered.

Informes en aplicacionesReports in apps

Si desea agregar un filtro de dirección URL a un informe en una aplicación, el formato es un poco diferente.If you want to add a URL filter to a report in an app, the formatting is a little different. Los vínculos a los informes de una aplicación tienen un parámetro de consulta (ctid) que se agrega a la dirección URL.Links to reports in an app have a query parameter (ctid) that gets added to the URL. Separe los parámetros de consulta con una Y comercial (&).Separate the query parameters with an ampersand (&). Mantenga "?filter=" y mueva el parámetro ctid al final de la dirección URL, precedido por una Y comercial (&).Keep “?filter=” and move the ctid parameter to the end of the URL, preceded by an ampersand (&).

Al igual que en este ejemplo:Like this example:

app.powerbi.com/groups/me/apps/app-id/reports/report-id/ReportSection?filter=Table/Field eq "value"&ctid=ctidapp.powerbi.com/groups/me/apps/app-id/reports/report-id/ReportSection?filter=Table/Field eq 'value'&ctid=ctid

Tipos de camposField types

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 conjunto de datos.Field type can be a number, datetime, or string and the type used must match the type set in the dataset. Por ejemplo, especificar una columna de tabla de tipo "cadena" no funciona si está buscando un valor de fecha y hora o número en una columna de conjunto de datos establecida como una fecha; por ejemplo, Table/StringColumn eq 1.For example, specifying a table column of type "string" won't work if you're looking for a datetime or numeric value in a dataset column set as a date, such as Table/StringColumn eq 1.

  • Las cadenas deben incluirse entre comillas simple, como en 'nombre de administrador'.Strings must be enclosed with single quotes, as in 'manager name'.
  • Los números no requieren ningún formato especial.Numbers require no special formatting. Consulte Tipos de datos numéricos en este artículo para obtener más información.See Numeric data types in this article for details.
  • Fechas y horas: consulte Tipos de datos de fecha en este artículo.Dates and times See Date data types in this article.

Si le sigue sin quedar claro, siga leyendo.If it's still confusing, continue reading and we'll break it down.

Filtrado por un campoFilter on a field

Supongamos que la URL del informe es la siguiente.Let’s assume that the URL to our report is the following.

Dirección URL de inicio

Y que tenemos almacenes en Carolina del Norte, tal como vemos en nuestra visualización de mapas (arriba).And we see in our map visualization (above) that we have stores in North Carolina.

Nota

Este artículo se basa en el ejemplo de análisis de minoristas.This example is based on the Retail Analysis sample.

Para filtrar el informe para que solo muestre los datos de tiendas de "NC" (Carolina del Norte), anexe la URL con lo siguiente:To filter the report to show data only for stores in "NC" (North Carolina), append the URL with the following;

?filter=Tienda/Territorio eq 'NC'?filter=Store/Territory eq 'NC'

Dirección URL con filtro

Nota

NC es un valor almacenado en el campo Territorio de la tabla Almacén.NC is a value stored in the Territory field of the Store table.

El informe se filtra por North Carolina; todas las visualizaciones de la página del informe solo muestran datos de Carolina del Norte.Our report is filtered for North Carolina; all the visualizations on the report page show data for only North Carolina.

Informe filtrado para Carolina del Norte

Filtrado por más de un valor en un campoFilter on more than one value in a field

Para filtrar por más de un valor en un solo campo, use el operador in en lugar del operador and.To filter on more than one value in a single field, you use the in operator instead of the and operator. La sintaxis es:The syntax is:

URL?filter=Table/Field in ('value1', 'value2')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:Using the same example, to filter the report to show data only for stores in "NC" (North Carolina) or "TN" (Tennessee), append the URL with the following;

?filter=Store/Territory in ('NC', 'TN')?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.See the Operators table later in the article for a list of other useful operators.

Filtrado por varios camposFilter on multiple fields

También puede filtrar por varios campos agregando parámetros adicionales a la dirección URL.You can also filter on multiple fields by adding additional parameters to your URL. Volvamos a nuestro parámetro de filtro original.Let's go back to our original filter parameter.

?filter=Store/Territory eq 'NC'

Para filtrar por otros campos, agregue "and" y otro campo en el mismo formato que el mostrado arriba.To filter on additional fields, add an 'and' and another field in the same format as above. Este es un ejemplo.Here is an example.

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

OperadoresOperators

Power BI admite muchos operadores además de "and".Power BI supports many operators in addition to 'and'. En la tabla siguiente se indican esos operadores junto con el tipo de contenido que admiten.The table below lists those operators along with the content type they support.

operadoroperator definicióndefinition cadenastring númeronumber FechaDate EjemploExample
andand yand yes yes yes product/price le 200 and price gt 3.5product/price le 200 and price gt 3.5
eqeq es igual aequals yes yes yes Address/City eq 'Redmond'Address/City eq 'Redmond'
nene no igualnot equal yes yes yes Address/City ne 'London'Address/City ne 'London'
gege mayor o igualgreater than or equal nono yes yes product/price ge 10product/price ge 10
gtgt mayor quegreater than nono yes yes product/price gt 20product/price gt 20
lele menor o igualless than or equal nono yes yes product/price le 100product/price le 100
ltlt menor queless than nono yes yes product/price lt 20product/price lt 20
in**in** incluidoincluding yes yes yes Student/Age in (27, 29)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.** When using in, the values to the right of in can be a comma-separated list enclosed in parentheses, or a single expression that returns a collection.

Tipos de datos numéricosNumeric data types

Un filtro de dirección URL de Power BI puede incluir números en los siguientes formatos.A Power BI URL filter can include numbers in the following formats.

Tipo de númeroNumber type EjemploExample
integerinteger 55
longlong 5 L o 5 l5 L or 5 l
doubledouble 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-1d5.5 or 55e-1 or 0.55e+1 or 5D or 5d or 0.5e1D or 0.5e1d or 5.5D or 5.5d or 55e-1D or 55e-1d
decimaldecimal 5 M o 5 m o 5,5 M o 5,5 m5 M or 5 m or 5.5 M or 5.5 m
floatfloat 5 F o 5 f o 0,5e1 F o 0,5e-1 d5 F or 5 f or 0.5e1 F or 0.5e-1 d

Tipos de datos de fechaDate data types

Power BI admite OData V3 y V4 para tipos de datos Date y DateTimeOffset.Power BI supports both OData V3 and V4 for Date and DateTimeOffset data types. Para OData V3, las fechas deben escribirse entre comillas simples e ir precedidas de la palabra datetime.For OData V3, dates must be enclosed in single quotes and be preceded by the word datetime. Las comillas simples y la palabra datetime no son necesarias en OData V4.Single quotes and the word datetime aren't needed in 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".Dates are represented using the EDM format (2019-02-12T00:00:00): When you specify a date as 'YYYY-MM-DD', Power BI interprets it as 'YYYY-MM-DDT00:00:00'. Asegúrese de que el mes y el día están compuestos por dos dígitos: MM y DD.Make sure month and day are two digits, MM and DD.

Por qué importa esta distinciónWhy does this distinction matter? Imagine que crea un parámetro de cadena de consulta Table/Date gt "2018-08-03" .Let's say you create a query string parameter 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.Will the results include August 3, 2018 or start with August 4, 2018? Power BI convierte la consulta a Table/Date gt "2018-08-03T00:00:00" .Power BI translates your query to 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".So, your results include any dates that have a non-zero time part, because those dates would be greater than '2018-08-03T00:00:00'.

Hay otras diferencias entre V3 y V4.There are other differences between V3 and V4. OData V3 no admite fechas, solo DateTime.OData V3 does not support Dates, only DateTime. Por lo tanto, si usa el formato V3, debe calificarlo con la fecha y hora completas.So if you use the V3 format, you must qualify it with the full date time. Los literales de fecha como "datetime"2019-05-20"" no se admiten en la notación V3.Date literals like "datetime'2019-05-20'" aren't supported in V3 notation. Pero solo se puede escribirla como "2019-05-20" en la notación V4.But you can just write it as "2019-05-20" in V4 notation. A continuación se muestran dos consultas de filtro equivalentes en V3 y V4:Here are two equivalent filter queries in V3 and V4:

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

Caracteres especiales en filtros de URLSpecial characters in URL filters

Caracteres especiales en nombres de tabla y de columnaSpecial characters in table and column names

Los caracteres especiales y los espacios en los nombres de tabla y de columna necesitan un formato adicional.Special characters and spaces in table and column names require some additional formatting. Si la consulta contiene espacios, guiones u otros caracteres no ASCII, anteponga a esos caracteres especiales un código de escape que empiece por un carácter de subrayado y una X ( _x) y luego el carácter Unicode de cuatro dígitos seguido de otro carácter de subrayado.When your query contains spaces, dashes, or other non-ASCII characters, prefix those special characters with an escape code starting with an underscore and an X (_x), then the four-digit Unicode, then another underscore. Si el carácter Unicode tiene menos de cuatro caracteres, debe rellenarlo con ceros.If the Unicode is fewer than four characters, you need to pad it with zeroes. Estos son algunos ejemplos.Here are some examples.

IdentificadorIdentifier UnicodeUnicode Codificación para Power BICoding for Power BI
Nombre de tablaTable Name El espacio es 0x20Space is 0x20 Table_x0020_NameTable_x0020_Name
Columna@NúmeroColumn@Number @ es 0x40@ is 0x40 Column_x0040_NumberColumn_x0040_Number
[Columna][Column] [es 0x005B] es 0x005D[ is 0x005B ] is 0x005D x005B_Column_x005Dx005B_Column_x005D
Columna+MásColumn+Plus + es 0x2B+ is 0x2B Column_x002B_PlusColumn_x002B_Plus

Table_x0020_Name/Column_x002B_Plus eq 3 objeto visual de tabla que representa caracteres especialesTable_x0020_Name/Column_x002B_Plus eq 3 table visual rendering special characters

Table_x0020_Special/x005B_Column_x0020_Brackets_x005D eq '[C]' objeto visual de tabla que representa caracteres especialesTable_x0020_Special/x005B_Column_x0020_Brackets_x005D eq '[C]' table visual rendering special characters

Caracteres especiales en valoresSpecial characters in values

Los filtros de URL ya admiten todos los caracteres especiales de los valores de campo, excepto la comilla simple (').URL filters already support all special characters in field values, except the single quote ('). Este es el único carácter que debe incluir entre secuencias de escape.That's the only character you need to escape. Para buscar un carácter de comilla simple, use dos comillas simples ('').To search for a single quote character, use two single quotes ('').

Por ejemplo:For example:

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

    Nombre es O'Brien

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

    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:The in operator supports this escaping as well: ?filter=Table/Name in ('Lee''s Summit', 'O''Brien') becomes:

    Lee's Summit u O'Brien

Usar DAX para filtrar por varios valoresUse DAX to filter on multiple values

Otra manera de filtrar por varios campos es crear una columna calculada que concatene dos campos a un único valor.Another way to filter on multiple fields is by creating a calculated column that concatenates two fields to a single value. Después, puede filtrar por ese valor.Then you can filter on that value.

Por ejemplo, tenemos dos campos: Territorio y Cadena.For example, we have two fields: Territory and Chain. En Power BI Desktop, cree una nueva columna calculada (Campo) denominada "TerritoryChain".In Power BI Desktop, create a new Calculated column (Field) called TerritoryChain. Recuerde que el nombre del campo no puede contener espacios.Remember that the Field name can't have any spaces. Esta es la fórmula DAX para esa columna.Here is the DAX formula for that column.

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

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.Publish the report to Power BI service and then use the URL query string to filter to display data for only Lindseys stores in NC.

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 filtradoPin a tile from a filtered report

Una vez que se ha filtrado el informe con parámetros de cadena de consulta, puede anclar visualizaciones de ese informe al panel.Once you've filtered the report using query string parameters, you can pin visualizations from that report to your dashboard. 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.The tile on the dashboard displays the filtered data and selecting that dashboard tile opens the report that was used to create it. Sin embargo, el filtrado que se hizo con la dirección URL no se guarda con el informe.However, the filtering you did using the URL isn't saved with the report. Cuando se selecciona el icono del panel, el informe se abre con el estado sin filtrar.When you select the dashboard tile, the report opens in its unfiltered state. Por tanto, los datos mostrados en el icono del panel no coinciden con los datos mostrados en la visualización del informe.Thus, the data displayed in the dashboard tile doesn't match the data displayed in the report visualization.

Esta discrepancia resulta útil cuando se quieren ver resultados diferentes: filtrados en el panel y sin filtrar en el informe.This discrepancy is helpful when you want to see different results; filtered on the dashboard and unfiltered in the report.

Consideraciones y solución de problemasConsiderations and troubleshooting

Hay un par de cosas que tener en cuenta al utilizar los parámetros de cadena de consulta.There are a couple of things to be aware of when using the query string parameters.

  • Cuando se usa el operador in, los valores a la derecha de in deben ser una lista separada por comas entre paréntesis.When using the in operator, the values to the right of in must be a comma-separated list enclosed in parentheses.
  • Power BI Report Server también permite especificar filtros adicionales mediante el parámetro de URL "filter".Power BI Report Server also supports the ability to specify additional filters using the “filter” URL parameter. 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'Here's an example of what the URL might look like in 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).Report URL filters have a 10-expression limit (10 filters connected by AND).
  • El tipo de datos long es (2^53-1) debido a las limitaciones de JavaScript.The long data type is (2^53-1) due to JavaScript limitations.

Los filtros de dirección URL se admiten en algunos escenarios de inserción y no en otros.URL filters are supported in some embedding scenarios and not in others.

Pasos siguientesNext steps

Anclar una visualización a un informePin a visualization to a dashboard
Registrarse para obtener una evaluación gratuitaSign up for a free trial

¿Tiene más preguntas?More questions? Pruebe a preguntar a la comunidad de Power BITry asking the Power BI Community