Filtrer en rapport ved hjælp af parametre for forespørgselsstrengen i URL-adressen
Når du åbner en rapport i Power BI-tjeneste, har hver side i rapporten sin egen entydige URL-adresse. Hvis du vil filtrere denne rapportside, kan du bruge ruden Filtre på rapportlærredet. Du kan også føje parametre for forespørgselsstrengen til URL-adressen for at forfiltrere rapporten. Måske har du en rapport, du vil vise kolleger, og du vil filtrere den for dem. En måde at filtrere den på er ved at starte med standard-URL-adressen for rapporten, føje filterparametrene til URL-adressen og derefter sende dem hele den nye URL-adresse via mail.
I denne artikel bruges rapporten Retail Analysis Sample. Hvis du vil følge med, kan du downloade eksempelrapporten.
Bruges til parametre for forespørgselsstrenge
Lad os sige, at du arbejder i Power BI Desktop. Du vil oprette en rapport, der indeholder links til andre Power BI-rapporter, men du vil kun vise nogle af oplysningerne i de andre rapporter. Først skal du filtrere rapporterne ved hjælp af parametre for forespørgselsstrengen og gemme URL-adresserne. Opret derefter en tabel i Desktop med disse nye URL-adresser til rapporter. Publicer og del derefter rapporten.
En anden brug til parametre for forespørgselsstrenge er til en person, der opretter en avanceret Power BI-løsning. I DAX opretter de en rapport, der dynamisk genererer en filtreret URL-adresse til en rapport baseret på de valg, kunden foretager i den aktuelle rapport. Når kunderne vælger URL-adressen, får de kun vist de ønskede oplysninger.
Syntaks for forespørgselsstrengparameter til filtrering
Med parametre kan du filtrere rapporten efter en eller flere værdier, også selvom disse værdier indeholder mellemrum eller specialtegn. Den grundlæggende syntaks er ret ligetil. start med URL-adressen til rapporten, tilføj et spørgsmålstegn, og tilføj derefter din filtersyntaks.
URL?filter=Tabelfelt/ eq 'værdi'
- Der skelnes mellem store og små bogstaver i tabel - og feltnavne . værdien ikke er.
- Felter, der er skjult i rapportvisning, kan stadig filtreres.
Felttyper
Felttypen kan være et tal, en datetime eller en streng, og den type, der bruges, skal svare til den type, der er angivet i den semantiske model. Hvis du f.eks. angiver en tabelkolonne af typen "streng", fungerer det ikke, hvis du leder efter en datetime eller numerisk værdi i en semantisk modelkolonne, der er angivet som en dato, f.eks. Table/StringColumn eq 1.
- Strenge skal være omsluttet af enkelte anførselstegn, som i 'ledernavn'.
- Tal kræver ingen speciel formatering. Se Numeriske datatyper i denne artikel for at få flere oplysninger.
- Datoer og klokkeslæt Se Datatyper for dato i denne artikel.
Hvis det stadig er forvirrende, kan du fortsætte med at læse, så opdeler vi det.
Filtrer på et felt
Lad os antage, at URL-adressen til vores rapport er følgende.
Og i vores tidligere kortvisualisering kan vi se, at vi har butikker i North Carolina. NC er den værdi, der repræsenterer North Carolina i feltet Territory i tabellen Store . Så hvis du vil filtrere rapporten, så der kun vises data for butikker i "NC", føjer vi denne streng til URL-adressen:
?filter=Store/Territory eq 'NC'
Vores rapport er nu filtreret efter North Carolina. alle visualiseringerne i rapporten viser kun data for North Carolina.
Filtrer efter mere end én værdi i et felt
Hvis du vil filtrere efter mere end én værdi i et enkelt felt, skal du bruge operatoren in i stedet for operatoren and . Syntaksen er:
URL?filter=Tabelfelt/i ('værdi1', 'værdi2')
Hvis du bruger det samme eksempel til at filtrere rapporten, så den kun viser data for butikker i "NC" (North Carolina) eller "TN" (Tennessee), skal du tilføje URL-adressen med følgende.
?filter=Store/Territory in ('NC', 'TN')
Se tabellen Operatorer senere i artiklen for at få en liste over andre nyttige operatorer.
Filtrer på flere felter
Du kan også filtrere på flere felter ved at føje flere parametre til din URL-adresse. Lad os gå tilbage til vores oprindelige filterparameter.
?filter=Store/Territory eq 'NC'
Hvis du vil filtrere efter flere felter, skal du tilføje et 'og' og et andet felt i samme format som i det forrige eksempel. Her er et eksempel.
?filter=Store/Territory eq 'NC' and Store/Chain eq 'Fashions Direct'
Operatorer
Power BI understøtter mange operatorer ud over 'og'. I følgende tabel vises disse operatorer sammen med den indholdstype, de understøtter.
Operatør | Definition | String | Nummer | Dato | Eksempel |
---|---|---|---|---|---|
and | og | Ja | Ja | Ja | produkt/pris le 200 og pris gt 3,5 |
Eq | equals | Ja | Ja | Ja | Adresse/by eq 'Redmond' |
Ne | ikke lig med | Ja | Ja | Ja | Adresse/By ne 'London' |
Ge | større end eller lig med | Nej | Ja | Ja | produkt/pris ge 10 |
Gt | større end | Nej | Ja | Ja | produkt/pris gt 20 |
Le | mindre end eller lig med | Nej | Ja | Ja | produkt/pris le 100 |
Lt | mindre end | Nej | Ja | Ja | produkt/pris lt 20 |
I* | Herunder | Ja | Ja | Ja | Studerende/alder i (27, 29) |
* Når du bruger i , kan værdierne til højre for i være en kommasepareret liste omsluttet af parenteser eller et enkelt udtryk, der returnerer en samling. Se artiklen IN Operator for at få eksempler.
Numeriske datatyper
Et URL-filter til Power BI kan indeholde tal i følgende formater.
Taltype | Eksempel |
---|---|
Heltal | 5 |
Lang | 5 L eller 5 l |
Dobbelt | 5,5 eller 55e-1 eller 0,55e+1 eller 5D eller 5d eller 0,5e1D eller 0,5e1d eller 5,5D eller 5,5d eller 55e-1D eller 55e-1d |
decimal | 5 M eller 5 m eller 5,5 M eller 5,5 m |
Flyde | 5 F eller 5 f eller 0,5e1 F eller 0,5e-1 d |
Datodatatyper
Power BI understøtter både OData V3 og V4 for datatyperne Date og DateTimeOffset . For OData V3 skal du omslutte datoer i enkelte anførselstegn og foranstille dem med ordet datetime. Du behøver ikke enkelte anførselstegn og ordet datetime i OData V4.
Datoer repræsenteres ved hjælp af EDM-formatet (2019-02-12T00:00:00): Når du angiver en dato som 'ÅÅÅÅ-MM-DD', fortolker Power BI den som 'ÅÅÅÅ-MM-DDT00:00:00'. Sørg for, at måned og dag er to cifre, MM og DD.
Hvorfor er denne skelnen vigtig? Lad os sige, at du opretter en forespørgselsstrengparameter Table/Date gt '2018-08-03'. Vil resultaterne omfatte den 3. august 2018 eller starte med den 4. august 2018? Power BI oversætter din forespørgsel til Table/Date gt '2018-08-03T00:00:00'. Så dine resultater omfatter alle datoer, der har en tid, der ikke er nul, fordi disse datoer ville være større end '2018-08-03T00:00:00'.
Der er andre forskelle mellem V3 og V4. OData V3 understøtter ikke Datoer, kun DateTime. Så hvis du bruger V3-formatet, skal du kvalificere det med det fulde datotidspunkt. Datokonstanter som "datetime'2019-05-20'" understøttes ikke i V3-notation. Men du kan bare skrive det som "2019-05-20" i V4-notation. Her er to tilsvarende filterforespørgsler i V3 og V4:
- OData V4-format: filter=Table/Date gt 2019-05-20
- OData V3-format: filter=Table/Date gt datetime'2019-05-20T00:00:00'
Specialtegn i URL-filtre
Specialtegn i tabel- og kolonnenavne
Specialtegn, mellemrum og foranstillede tal i tabel- og kolonnenavne kræver mere formatering. Når din forespørgsel indeholder mellemrum, tankestreger, foranstillede tal eller andre tegn, der ikke er ASCII-tegn, skal du præfikse disse specialtegn med en escape-kode , der starter med et understregningstegn og et X (_x), derefter det firecifrede Unicode-tegn og derefter et andet understregningstegn. Hvis Unicode-filen er mindre end fire tegn, skal du udfylde den med nuller. Her er nogle eksempler.
Identifier | Unicode-værdi | Kodning til Power BI |
---|---|---|
Tabelnavn | Mellemrum er 00 x 20 | Table_x0020_Name |
Kolonnenummer@ | @ er 00x40 | Column_x0040_Number |
[Kolonne] | [ er 0x005B ] er 0x005D | _x005B_Column_x005D_ |
Column+Plus | + er 0x2B | Column_x002B_Plus |
2TableName | 2 er x0032 | _x0032_TableName_ |
Table_x0020_Name/Column_x002B_Plus eq 3
Table_x0020_Special/_x005B_Column_x0020_Brackets_x005D_ eq '[C]'
Specialtegn i værdier
URL-filtre understøtter de fleste specialtegn i feltværdier, men nogle kræver også escape-koder. Hvis du f.eks. vil søge efter et enkelt anførselstegn, skal du bruge to enkelte anførselstegn ('').
?filter=Table/Name eq 'O''Brien'
Bliver:?filter=Table/Name eq 'Lee''s Summit'
Bliver:Operatoren
in
understøtter også denne escaping: bliver:?filter=Table/Name in ('Lee''s Summit', 'O''Brien')
Her er en liste over specialtegn, der kræver escape-koder i feltværdier.
Tegn | Escape-kode |
---|---|
(et mellemrum) | 20 % |
' | '' |
% | 25 % |
+ | %2B |
/ | %2F |
? | %3F |
# | %23 |
& | 26 % |
Standard-URL-escape-tegn
Når du bruger en URL-adresse med mellemrum og andre specialtegn i den, kan browsere automatisk erstatte dem med standard escape-tegn. Lad os sige, at du opretter denne URL-forespørgselsstreng:
https://app.powerbi.com/groups/me/reports/b7dea1d4-d9f0-47aa-a88d-xxxxxxxxxxxx/ReportSection2?filter=Executives/Executive eq 'Andrew Ma'
Det åbner eksempel på kunderentabilitet filtreret til Andrew Ma. Men hvis du ser på URL-adressen, kan den nu se sådan ud:
https://app.powerbi.com/groups/me/reports/b7dea1d4-d9f0-47aa-a88d-xxxxxxxxxxxx/ReportSection2?filter=Executives%2FExecutive%20eq%20%27Andrew%20Ma%27
Browseren har erstattet mellemrummet mellem Andrew
og Ma
med %20
på samme måde som de andre mellemrum. Den erstattede skråstregen mellem tabelnavnet Executives
og feltnavnet Executive
med %2F
og erstattede det enkelte anførselstegn '
med %27
.
Denne version af en URL-adresse kan være nyttig. Du kan f.eks. indsætte det i chat i Microsoft Teams, og det returnerer de ønskede filtrerede resultater.
Brug DAX til at filtrere efter flere værdier
En anden måde at filtrere på flere felter på er ved at oprette en beregnet kolonne, der sammenkæder to felter til en enkelt værdi. Derefter kan du filtrere efter denne værdi.
Vi har f.eks. to felter: Område og Kæde. Opret en ny beregnet kolonne (Felt) med navnet TerritoryChain i Power BI Desktop. Husk, at feltnavnet ikke må indeholde mellemrum. Her er DAX-formlen for den pågældende kolonne.
TerritoryChain = [Territory] & " - " & [Chain]
Publicer rapporten på Power BI-tjeneste, og brug derefter URL-forespørgselsstrengen til at filtrere og vise data kun for Lindseys-butikker i NC.
https://app.powerbi.com/groups/me/reports/8d6e300b-696f-498e-b611-41ae03366851/ReportSection3?filter=Store/TerritoryChain eq 'NC – Lindseys'
Fastgør et felt fra en filtreret rapport
Når du har filtreret rapporten ved hjælp af parametre for forespørgselsstrengen, kan du fastgøre visualiseringer fra den pågældende rapport til dit dashboard. Feltet på dashboardet viser de filtrerede data, og hvis du vælger dette dashboardfelt, åbnes den rapport, der blev brugt til at oprette det. Den filtrering, du brugte URL-adressen, gemmes dog ikke sammen med rapporten. Når du vælger dashboardfeltet, åbnes rapporten i ufiltreret tilstand. De data, der vises i dashboardfeltet, stemmer derfor ikke overens med de data, der vises i rapportvisualiseringen.
Denne uoverensstemmelse er nyttig, når du vil se forskellige resultater. filtreret på dashboardet og ufiltreret i rapporten.
Overvejelser og fejlfinding
Der er et par ting, du skal være opmærksom på, når du bruger parametrene for forespørgselsstrengen.
Når du bruger operatoren in, skal værdierne til højre for in være en kommasepareret liste omsluttet af parenteser.
Power BI-rapportserver understøtter også muligheden for at angive mere end ét filter ved hjælp af URL-parameteren "filter". Her er et eksempel på, hvordan URL-adressen kan se ud i Power BI-rapportserver:
https://reportserver/reports/powerbi/Store Sales?rs:Embed=true&filter= Store/Territory eq 'NC' and Store/Chain eq 'Fashions Direct'
Url-filtre til rapporter har en grænse på 10 udtryk (10 filtre, der er forbundet med AND).
Den lange datatype er (2^53-1) på grund af JavaScript-begrænsninger.
URL-forespørgselsstrenge er begrænset til 2000 tegn. Denne grænse omfatter escape-koder for specialtegn (f.eks. et mellemrum, %, +).
Du kan ikke filtrere efter tabel- eller kolonnenavne, der starter med INF med store bogstaver, herunder f.eks. et tabelnavn, der starter med "INFORMATION". INF med store bogstaver er en særlig værdi i OData. Hvis du vil starte et tabel- eller kolonnenavn med "INF", skal du i stedet gøre det med små bogstaver "inf".
Tabel- og feltnavne kan indeholde kinesiske tegn udtrykt i Unicode-format. Lad os f.eks. sige, at du vil anvende et filter, der 表/人 eq '张力' (det betyder Table/Person eq '张力'). Filteret konverteres til _x8868_/_x4eba_ eq '张力'.
Integreringsscenarier
URL-filtre understøttes i nogle integreringsscenarier og ikke i andre.
- Integration af en rapport på en sikker portal eller et sikkert websted understøttes.
- URL-filtre understøttes i Power BI Embedded.
- Filtrering af forespørgselsstrengen fungerer ikke sammen med Publicer på internettet eller Eksportér til PDF.
- Integrer med rapportwebdelen i SharePoint Online understøtter ikke URL-filtre.
- Teams tillader ikke angivelse af en URL-adresse.
Relateret indhold
Har du flere spørgsmål? Prøv at spørge Power BI-community'et