Filtrare un report usando i parametri della stringa di query nell'URLFilter a report using query string parameters in the URL

Quando si apre un report nel servizio Power BI, ogni pagina del report ha un proprio URL univoco.When you open a report in Power BI service, each page of the report has its own unique URL. Per filtrare tale pagina del report, è possibile usare il riquadro Filtri nell'area di disegno report.To filter that report page, you could use the Filters pane on the report canvas. In alternativa, è possibile aggiungere i parametri della stringa di query all'URL per prefiltrare il report.Or you could add query string parameters to the URL to pre-filter the report. Se, ad esempio, si vuole mostrare un report ai colleghi applicando un filtro preliminare,Perhaps you have a report you'd like to show colleagues and you want to pre-filter it for them. basta iniziare dall'URL predefinito del report, aggiungere i parametri di filtro all'URL e quindi inviare l'intero nuovo URL tramite posta elettronica.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.

Questo articolo usa il report Retail Analysis Sample.This article uses the Retail Analysis Sample report. Per seguire la procedura è possibile scaricare il report di esempio.If you want to follow along, you can download the sample report.

Screenshot del report di Power BI nel servizio.

Usi dei parametri della stringa di queryUses for query string parameters

Si supponga di usare Power BI Desktop.Say you're working in Power BI Desktop. Si vuole creare un report che include collegamenti ad altri report di Power BI, ma è necessario visualizzare solo alcune delle informazioni negli altri report.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. In primo luogo, filtrare i report usando i parametri della stringa di query e salvare gli URL.First, filter the reports using query string parameters and save the URLs. Successivamente, creare una tabella in Power BI Desktop con questi nuovi URL di report.Next, create a table in Desktop with these new report URLs. Quindi, pubblicare e condividere il report.Then publish and share the report.

I parametri della stringa di query possono essere anche utili per la creazione di una soluzione avanzata di Power BI.Another use for query string parameters is for someone creating an advanced Power BI solution. Con DAX è possibile creare un report che genera un URL del report filtrato in modo dinamico in base alla selezione effettuata dal cliente nel report corrente.Using DAX, they create a report that generates a filtered report URL dynamically based on the selection their customer makes in the current report. Quando i clienti selezionano l'URL, vedono solo le informazioni desiderate.When customers select the URL, they see only the intended information.

Sintassi dei parametri della stringa di query per i filtriQuery string parameter syntax for filtering

Con i parametri, è possibile filtrare il report per uno o più valori, anche se tali valori contengono spazi o caratteri speciali.With parameters, you can filter the report for one or more values, even if those values contain spaces or special characters. La sintassi di base è molto semplice: iniziare con l'URL del report, aggiungere un punto interrogativo e quindi aggiungere la sintassi del filtro.The basic syntax is fairly straightforward; start with the report URL, add a question mark, and then add your filter syntax.

URL?filter=Tabella/Campo eq 'valore'URL?filter=Table/Field eq 'value'

Screenshot dell'URL con il filtro.

  • Per i nomi Tabella e Campo viene fatta distinzione tra maiuscole e minuscole, mentre per valore la distinzione non è rilevante.Table and Field names are case-sensitive, value isn't.
  • I campi che sono nascosti dalla visualizzazione Report possono comunque essere filtrati.Fields that are hidden from report view can still be filtered.

Tipi di campoField types

Il tipo del campo può essere numerico, datetime o stringa e il tipo usato deve corrispondere al tipo impostato nel set di dati.Field type can be a number, datetime, or string and the type used must match the type set in the dataset. Ad esempio, la specifica del tipo "string" per una colonna di tabella non funziona se si sta cercando un valore datetime o numerico in un set di colonne del set di dati impostato come data, ad esempio, 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.

  • Le stringhe devono essere racchiuse tra virgolette singole, ad esempio 'nome manager'.Strings must be enclosed with single quotes, as in 'manager name'.
  • Per i numeri non è richiesta alcuna formattazione speciale.Numbers require no special formatting. Per informazioni dettagliate, vedere Tipi di dati numerici in questo articolo.See Numeric data types in this article for details.
  • Per le date e ore vedere Tipi di dati di data in questo articolo.Dates and times See Date data types in this article.

Se è ancora poco chiaro, continuare la lettura per un'analisi approfondita.If it's still confusing, continue reading and we'll break it down.

Filtrare in base a un campoFilter on a field

Si supponga che l'URL per il report sia il seguente.Let’s assume that the URL to our report is the following.

Screenshot dell'URL iniziale.

Nella visualizzazione della mappa in alto sono visibili i negozi presenti nella Carolina del Nord.And we see in our map visualization above that we have stores in North Carolina. NC è il valore per la Carolina del Nord nel campo Territory (Territorio) della tabella Store (Negozio).NC is the value that represents North Carolina in the Territory field of the Store table. Per filtrare il report in modo da visualizzare solo i dati per i negozi in "NC" viene aggiunta all'URL la stringa seguente:So to filter the report to show data only for stores in "NC", we append this string to the URL:

?filter=Store/Territory eq 'NC'

Screenshot dell'URL con il filtro per la Carolina del Nord.

Il report ora è filtrato per la Carolina del Nord; tutte le visualizzazioni nel report visualizzano solo i dati relativi alla Carolina del Nord.Our report is now filtered for North Carolina; all the visualizations in the report show data for only North Carolina.

Screenshot del report filtrato per la Carolina del Nord.

Filtrare in base a più di un valore in un campoFilter on more than one value in a field

Per applicare un filtro in base a più di un valore in un singolo campo, usare l'operatore in anziché l'operatore and.To filter on more than one value in a single field, you use the in operator instead of the and operator. La sintassi è:The syntax is:

URL?filter=Tabella/Campo in ('valore1', 'valore2')URL?filter=Table/Field in ('value1', 'value2')

Usando lo stesso esempio, per filtrare il report in modo da visualizzare solo i dati relativi ai negozi in "NC" (Carolina del Nord) o "TN" (Tennessee), aggiungere all'URL quanto segue: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')

Vedere la tabella Operatori più avanti nell'articolo per un elenco di altri operatori utili.See the Operators table later in the article for a list of other useful operators.

Filtrare in base a più campiFilter on multiple fields

È possibile anche filtrare in base a più campi aggiungendo parametri aggiuntivi all'URL.You can also filter on multiple fields by adding additional parameters to your URL. Tornare al parametro filtro originale.Let's go back to our original filter parameter.

?filter=Store/Territory eq 'NC'

Per filtrare in base a campi aggiuntivi, aggiungere un operatore "and" e un altro campo nello stesso formato indicato in precedenza.To filter on additional fields, add an 'and' and another field in the same format as above. Ecco un esempio.Here is an example.

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

OperatoriOperators

Power BI supporta molti operatori oltre a "and".Power BI supports many operators in addition to 'and'. La tabella seguente elenca tali operatori insieme al tipo di contenuto supportato.The table below lists those operators along with the content type they support.

Operatoreoperator Definizionedefinition Stringastring Numeronumber DataDate EsempioExample
andand eand yes yes yes prodotto/prezzo le 200 and prezzo gt 3.5product/price le 200 and price gt 3.5
eqeq è uguale aequals yes yes yes Indirizzo/Città eq 'Milano'Address/City eq 'Redmond'
nene diverso danot equal yes yes yes Indirizzo/Città ne 'Londra'Address/City ne 'London'
gege maggiore o uguale agreater than or equal nono yes yes prodotto/prezzo ge 10product/price ge 10
gtgt maggiore digreater than nono yes yes prodotto/prezzo gt 20product/price gt 20
lele minore o uguale aless than or equal nono yes yes prodotto/prezzo le 100product/price le 100
ltlt minore diless than nono yes yes prodotto/prezzo lt 20product/price lt 20
in**in** inclusoincluding yes yes yes Studente/Età in (27, 29)Student/Age in (27, 29)

** Quando si usa in i valori a destra di in possono essere un elenco delimitato da virgole racchiuso tra parentesi o una singola espressione che restituisce una raccolta.** 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.

Tipi di dati numericiNumeric data types

Un filtro URL di Power BI può includere numeri nei formati seguenti.A Power BI URL filter can include numbers in the following formats.

Tipo di numeroNumber type EsempioExample
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

Tipi di dati di dataDate data types

Power BI supporta OData V3 e V4 per i tipi di dati Date e DateTimeOffset.Power BI supports both OData V3 and V4 for Date and DateTimeOffset data types. Per OData V3, le date devono essere racchiuse tra virgolette singole e precedute dalla parola datetime.For OData V3, dates must be enclosed in single quotes and be preceded by the word datetime. In OData V4 non è necessario usare le virgolette singole e la parola datetime.Single quotes and the word datetime aren't needed in OData V4.

Le date vengono rappresentate usando il formato EDM (2019-02-12T00:00:00). Quando si specifica una data nel formato 'AAAA-MM-GG', Power BI la interpreta come 'AAAA-MM-GGT00: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'. Il mese e il giorno devono essere composti da due cifre, MM e GG.Make sure month and day are two digits, MM and DD.

Perché è importante questa distinzione?Why does this distinction matter? Si supponga di creare un parametro di stringa di query Table/Date gt '2018-08-03' .Let's say you create a query string parameter Table/Date gt '2018-08-03'. I risultati includeranno il 3 agosto 2018 oppure partiranno dal 4 agosto 2018?Will the results include August 3, 2018 or start with August 4, 2018? Power BI converte la query in Table/Date gt '2018-08-03T00:00:00' .Power BI translates your query to Table/Date gt '2018-08-03T00:00:00'. I risultati includono pertanto tutte le date con una parte dell'ora diversa da zero, perché tali date saranno posteriori a "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'.

Esistono altre differenze tra V3 e V4.There are other differences between V3 and V4. OData v3 non supporta data, solo data e ora.OData V3 does not support Dates, only DateTime. Se quindi si usa il formato V3, è necessario qualificarlo con la data e l'ora complete.So if you use the V3 format, you must qualify it with the full date time. I valori letterali di data come "datetime'2019-05-20'"non sono supportati nella notazione V3.Date literals like "datetime'2019-05-20'" aren't supported in V3 notation. È tuttavia possibile scrivere semplicemente "2019-05-20" nella notazione V4.But you can just write it as "2019-05-20" in V4 notation. Ecco due query di filtro equivalenti in V3 e 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'

Caratteri speciali nei filtri di URLSpecial characters in URL filters

Caratteri speciali nei nomi di tabelle e colonneSpecial characters in table and column names

I caratteri speciali e gli spazi nei nomi di tabella e colonna richiedono alcuni elementi di formattazione aggiuntivi.Special characters and spaces in table and column names require some additional formatting. Quando la query contiene spazi, trattini o altri caratteri non ASCII, anteporre a questi caratteri speciali un codice di escape costituito da un carattere di sottolineatura e da una X ( _x), seguiti dal codice Unicode di quattro cifre e da un altro carattere di sottolineatura.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. Se il codice Unicode è composto da meno di quattro caratteri, è necessario aggiungere zeri.If the Unicode is fewer than four characters, you need to pad it with zeroes. Di seguito sono riportati alcuni esempi.Here are some examples.

IdentificatoreIdentifier UnicodeUnicode Codice per Power BICoding for Power BI
Nome tabellaTable Name Lo spazio è 0x20Space is 0x20 Nome_x0020_tabellaTable_x0020_Name
Colonna@NumeroColumn@Number @ è 0x40@ is 0x40 Colonna_x0040_NumeroColumn_x0040_Number
[Colonna][Column] [ è 0x005B ] è 0x005D[ is 0x005B ] is 0x005D x005B_Column_x005Dx005B_Column_x005D
Colonna+PiùColumn+Plus + è 0x2B+ is 0x2B Colonna_x002B_PiùColumn_x002B_Plus

Table_x0020_Name/Column_x002B_Plus eq 3 Screenshot dell'oggetto visivo tabella che visualizza caratteri speciali per Unicode.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 dell'oggetto visivo tabella che visualizza caratteri speciali per la codifica per Power BI.Table_x0020_Special/x005B_Column_x0020_Brackets_x005D eq '[C]' Screenshot of table visual rendering special characters for coding for Power B I.

Caratteri speciali nei valoriSpecial characters in values

I filtri URL supportano già tutti i caratteri speciali nei valori dei campi, ad eccezione della virgoletta singola (').URL filters already support all special characters in field values, except the single quote ('). Questo è l'unico carattere di cui è necessario eseguire l'escape.That's the only character you need to escape. Per cercare un carattere virgoletta singola, usare due virgolette singole ('').To search for a single quote character, use two single quotes ('').

ad esempio:For example:

  • ?filter=Table/Name eq 'O''Brien' diventa:?filter=Table/Name eq 'O''Brien' becomes:

    Name is O'Brien

  • ?filter=Table/Name eq 'Lee''s Summit' diventa:?filter=Table/Name eq 'Lee''s Summit' becomes:

    Lee's Summit

  • Anche l'operatore in supporta questa modalità di escape: ?filter=Table/Name in ('Lee''s Summit', 'O''Brien') diventa:The in operator supports this escaping as well: ?filter=Table/Name in ('Lee''s Summit', 'O''Brien') becomes:

    Lee's Summit or O'Brien

Usare DAX per filtrare in base a più valoriUse DAX to filter on multiple values

Un altro modo per filtrare in base a più campi consiste nel creare una colonna calcolata che concateni due campi in un unico valore.Another way to filter on multiple fields is by creating a calculated column that concatenates two fields to a single value. quindi filtrare in base a tale valore.Then you can filter on that value.

Ad esempio, ci sono due campi: Territory e Chain.For example, we have two fields: Territory and Chain. In Power BI Desktop creare una nuova colonna calcolata (Campo) denominata TerritoryChain.In Power BI Desktop, create a new Calculated column (Field) called TerritoryChain. Tenere presente che il nome Campo non può contenere spazi.Remember that the Field name can't have any spaces. Ecco la formula DAX per tale colonna.Here is the DAX formula for that column.

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

Pubblicare il report nel servizio Power BI, quindi usare la stringa di query dell'URL per filtrare e visualizzare solo i dati relativi ai negozi Lindseys nella Carolina del Nord.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'

Aggiungere un riquadro da un report filtratoPin a tile from a filtered report

Dopo aver filtrato il report usando i parametri della stringa di query, è possibile aggiungere al dashboard le visualizzazioni da tale report.Once you've filtered the report using query string parameters, you can pin visualizations from that report to your dashboard. Il riquadro nel dashboard contiene i dati filtrati; selezionandolo, viene aperto il report usato per crearlo.The tile on the dashboard displays the filtered data and selecting that dashboard tile opens the report that was used to create it. Tuttavia, i filtri applicati usando l'URL non vengono salvati con il report.However, the filtering you did using the URL isn't saved with the report. Quando si seleziona il riquadro del dashboard, il report viene aperto nello stato non filtrato.When you select the dashboard tile, the report opens in its unfiltered state. I dati visualizzati nel riquadro del dashboard non corrispondono quindi ai dati presenti nella visualizzazione del report.Thus, the data displayed in the dashboard tile doesn't match the data displayed in the report visualization.

Questa discrepanza è utile quando si vogliono visualizzare risultati diversi, filtrati nel dashboard e non filtrati nel report.This discrepancy is helpful when you want to see different results; filtered on the dashboard and unfiltered in the report.

Considerazioni e risoluzione dei problemiConsiderations and troubleshooting

Ci sono un paio di aspetti da tenere presenti quando si usano i parametri della stringa di query.There are a couple of things to be aware of when using the query string parameters.

  • Quando si usa l'operatore in, i valori a destra di in devono essere un elenco delimitato da virgole racchiuso tra parentesi.When using the in operator, the values to the right of in must be a comma-separated list enclosed in parentheses.
  • Server di report di Power BI supporta anche la possibilità di specificare filtri aggiuntivi tramite il parametro URL "filter".Power BI Report Server also supports the ability to specify additional filters using the “filter” URL parameter. Di seguito è riportato un esempio di come potrebbe apparire l'URL in Server di report di Power BI: 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'
  • I filtri URL dei report hanno un limite di 10 espressioni (10 filtri connessi tramite AND).Report URL filters have a 10-expression limit (10 filters connected by AND).
  • Il tipo di dati long è (2^53-1) a causa di limitazioni di JavaScript.The long data type is (2^53-1) due to JavaScript limitations.
  • Power BI non prevede alcun limite per il numero di caratteri nelle stringhe di query dell'URL.Power BI doesn't limit the number of characters in URL query strings. Le restrizioni di lunghezza possono variare a seconda del browser.Different browsers have different length restrictions.

I filtri URL sono supportati in alcuni scenari di incorporamento e non in altri.URL filters are supported in some embedding scenarios and not in others.

Passaggi successiviNext steps

Aggiungere una visualizzazione a un dashboardPin a visualization to a dashboard
Iscriversi per una versione di valutazione gratuitaSign up for a free trial

Altre domande?More questions? Provare a rivolgersi alla community di Power BITry asking the Power BI Community