Del via


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.

Screenshot of Power BI report in the service.

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'

Screenshot of U R L with filter.

  • 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.

Screenshot of starting URL.

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'

Screenshot of U R L with filter for North Carolina.

Vores rapport er nu filtreret efter North Carolina. alle visualiseringerne i rapporten viser kun data for North Carolina.

Screenshot of Report filtered 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 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.

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:

    Name is O'Brien

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

    Lee's Summit

  • Operatoren in understøtter også denne escaping: bliver: ?filter=Table/Name in ('Lee''s Summit', 'O''Brien')

    Lee's Summit or 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 %20på samme måde som de andre mellemrum. Den erstattede skråstregen mellem tabelnavnet Executives og feltnavnet Executive med %2Fog 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 '张力'.

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

Integreringsscenarier

URL-filtre understøttes i nogle integreringsscenarier og ikke i andre.

Har du flere spørgsmål? Prøv at spørge Power BI-community'et