Filtrere en rapport ved hjelp av spørrestrengparametere i URL-adressen

Når du åpner en rapport i Power BI-tjenesten, har hver side av rapporten sin egen unike URL-adresse. Hvis du vil filtrere rapportsiden, kan du bruke filterruten på rapportlerretet. Du kan også legge til spørrestrengparametere i nettadressen for å forhåndsfiltrere rapporten. Kanskje du har en rapport som du vil vise til kolleger, og du vil forhåndsfiltrere den for dem. En måte å filtrere på er å starte med standard-nettdressen for rapporten, legge til filterparametere i nettadressen og deretter sende dem hele nettadressen.

Denne artikkelen bruker eksempelrapporten Detaljhandelsanalyse. Hvis du vil følge med, kan du laste ned eksempelrapporten.

Screenshot of Power BI report in the service.

Bruksområder for spørrestrengparametere

La oss si at du arbeider i Power BI Desktop. Du vil opprette en rapport som har koblinger til andre Power BI-rapporter, men du ønsker å vise bare noe av informasjonen i de andre rapportene. Først filtrerer du rapportene ved hjelp av spørrestrengparametere og lagrer nettadressene. Så oppretter du en tabell i Desktop med disse nye nettadressene for rapporten. Deretter publiserer og deler du rapporten.

Et annet bruksområde for spørrestrengparametere er ved oppretting av en avansert Power BI-løsning. Ved hjelp av DAX opprettes en rapport som genererer en nettadresse for filtrert rapport dynamisk, basert på valget kunden gjør i den gjeldende rapporten. Når kunder velger nettadressen, ser de bare den tiltenkte informasjonen.

Syntaks i spørrestrengparameter for filtrering

Med parametere kan du filtrere rapporten for én eller flere verdier, selv om disse verdiene inneholder mellomrom eller spesialtegn. Den grunnleggende syntaksen er ganske enkel. Start med nettadressen for rapporten, legg til et spørsmålstegn og legg deretter til filtersyntaksen.

URL?filter=Table/Field eq 'value'

Screenshot of U R L with filter.

  • Tabell- og Felt-navn skiller mellom små og store bokstaver, mens Verdi gjør ikke det.
  • Felter som er skjult for rapportvisning, kan fortsatt filtreres.

Felttyper

Felttype kan være et tall, datetime eller streng, og typen som brukes, må samsvare med typen som er angitt i datasettet. Det vil for eksempel ikke fungere å angi en tabellkolonne av typen «streng» hvis du ser etter datetime, eller en numerisk verdi angitt som en dato i en datasettkolonne, som eksempelvis Table/StringColumn eq 1.

  • Strenger må omsluttes med enkle anførselstegn – slik som her: 'Navn på prosjektstyrer'.
  • Tall krever ingen spesiell formatering. Les om numeriske datatyper i denne artikkelen hvis du vil ha mer informasjon.
  • Datoer og klokkeslett Les om Dato-datatyper i denne artikkelen.

Hvis det fremdeles er forvirrende, kan du fortsette å lese, så forklarer vi det nærmere.

Filtrere på et felt

La oss si at URL-adressen til rapporten er følgende.

Screenshot of starting URL.

Og vi ser i kartvisualiseringen (ovenfor) at vi har butikker i Nord-Carolina. NC er verdien for Nord-Carolina, som er lagret i Distrikt-feltet i Butikk-tabellen. Så hvis du vil filtrere rapporten for å vise data bare for butikker i Nord-Carolina, må du føye dette til nettadressen:

?filter=Store/Territory eq 'NC'

Screenshot of U R L with filter for North Carolina.

Rapporten er filtrert for Nord-Carolina. Alle visualiseringer på rapportsiden viser bare data for Nord-Carolina.

Screenshot of Report filtered for North Carolina.

Filtrer etter mer enn én verdi i et felt

Hvis du vil filtrere etter mer enn én verdi i ett enkelt felt, bruker du i-operatoren i stedet for og-operatoren. Syntaksen er:

URL?filter=Table/Fieldin ('value1', 'value2')

Hvis du vil i samme eksemplet filtrere rapporten for å vise data bare for butikker i «NC» (Nord-Carolina) eller «TN» (Tennessee), må følgende tilføyes nettadressen:

?filter=Store/Territory in ('NC', 'TN')

Se tabellen Operatorer senere i artikkelen for å få en liste over andre nyttige operatorer.

Filtrere på flere felter

Du kan også filtrere etter flere felt ved å legge til flere parametere i nettadressen. La oss gå tilbake til den opprinnelige filterparameteren.

?filter=Store/Territory eq 'NC'

Hvis du vil filtrere etter flere felt, legger du til et og et annet felt i samme format som ovenfor. Her er et eksempel:

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

Operatorer

Power BI støtter mange operatorer i tillegg til and. Tabellen nedenfor viser disse operatorene sammen med innholdstypen de støtter.

Operator Definisjon Streng Tall Dato Eksempel
and og ja ja ja produkt/pris le 200 og pris gt 3,5
eq er lik ja ja ja Adresse/poststed eq'Redmond'
ne ikke lik ja ja ja Adresse/poststed ne 'London'
ge større enn eller lik nei ja ja produkt/pris ge 10
gt større enn nei ja ja produkt/pris gt 20
le mindre enn eller lik nei ja ja produkt/pris le 100
lt mindre enn nei ja ja produkt/pris lt 20
i* inkludert ja ja ja Student/alder in (27, 29)

* Når du bruker in, kan verdiene til høyre for in være en kommadelt liste, omsluttet av parenteser, eller et enkelt uttrykk som returnerer en samling. Se artikkelen om IN-operatoren for eksempler.

Numeriske datatyper

Et nettadressefilter i Power BI kan inneholde tall i følgende formater.

Talltype Eksempel
heltall 5
lang 5 L eller 5 l
dobbel 5.5 eller 55e-1 eller 0.55e+1 eller 5D eller 5d eller 0.5e1D elle 0.5e1d eller 5.5D eller 5.5d eller 55e-1D eller 55e-1d
desimal 5 M eller 5 m eller 5,5 M eller 5,5 m
flyttall 5 F eller 5 f eller 0,5e1 F eller 0,5e-1 d

Dato-datatyper

Power BI støtter både OData V3 og V4 for Dato og DateTimeOffset-datatyper. Datoer for OData V3 må omsluttes med enkle anførselstegn og stå foran ordet datetime. Enkle anførselstegn og ordet datetime kreves ikke i OData V4.

Datoer er representert i EDM-format (2019-02-12T00:00:00): Når du angir en dato som ’ÅÅÅÅ-MM-DD’, tolker Power BI denne som 'ÅÅÅÅ-MM-DDT00:00:00'. Sørg for at måned og dag har to sifre, MM og DD.

Hvorfor er dette skillet viktig? La oss si at du oppretter spørrestrengparameteren Table/Date gt 2018-08-03. Vil resultatene inkludere 3. august 2018 eller starte med 4.august 2018? Power Bi oversetter spørringen til Table/Date gt '2018-08-03T00:00:00'. Resultatene inkluderer alle datoer som har et reelt klokkeslett, siden disse datoene vil være større enn 2018-08-03T00:00:00.

Det er også andre forskjeller mellom V3 og V4. OData V3 støtter ikke datoer, kun DateTime. Så hvis du bruker V3-formatet, må du legge til fullstendig dato og klokkeslett. Datolitteraler som "datetime'2019-05-20'" støttes ikke i V3-notasjon. Men du kan skrive den som "2019-05-20" i V4-notasjon. Her er to tilsvarende filterspørringer 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'

Spesialtegn i nettadressefiltre

Spesialtegn i tabell- og kolonnenavn

Spesialtegn og mellomrom i tabell- og kolonnenavn krever mer formatering. Når spørringen inneholder mellomrom, bindestreker eller andre ikke-ASCII-tegn, kan du foranstille disse spesialtegnene med en escape-kode som begynner med et understrekingstegn og en X ( _x), og deretter firesifret Unicode etterfulgt av nok et understrekingstegn. Hvis Unicode består av færre enn fire tegn, må du fylle den ut med nuller. Her er noen eksempler.

Identifikator Unicode Koding for Power BI
Tabellnavn Området er 00x20 Table_x0020_Name
Column@Number @ er 00x40 Column_x0040_Number
[Column] [ er 0x005B ] er 0x005D x005B_Column_x005D
Column+Plus + er 0x2B Column_x002B_Plus

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.

Spesialtegn i verdier

Nettadressefiltre støtter de fleste spesialtegn i feltverdier, men noen krever også escape-koder. Hvis du for eksempel vil søke etter ett enkelt anførselstegn, bruker du to enkle anførselstegn ('').

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

    Name is O'Brien

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

    Lee's Summit

  • in operatoren støtter også dette escapede tegn: ?filter=Table/Name in ('Lee''s Summit', 'O''Brien') blir:

    Lee's Summit or O'Brien

Her er en liste over noen spesialtegn som krever escape-koder i feltverdier.

Tegn Escape-kode
(et mellomrom) %20
' ''
% %25
+ %2B
/ %2F
? %3F
# %23
& %26

Standard escape-tegn for URL-adresse

Når du bruker en nettadresse med mellomrom og andre spesialtegn i den, kan nettlesere automatisk erstatte dem med standard escape-tegn. La oss si at du oppretter denne url-spørringsstrengen:

https://app.powerbi.com/groups/me/reports/b7dea1d4-d9f0-47aa-a88d-xxxxxxxxxxxx/ReportSection2?filter=Executives/Executive eq 'Andrew Ma'

Det åpner eksempelet på kundelønnsomhet, filtrert til Andrew Ma. Men hvis du ser på nettadressen, kan den nå se slik ut:

https://app.powerbi.com/groups/me/reports/b7dea1d4-d9f0-47aa-a88d-xxxxxxxxxxxx/ReportSection2?filter=Executives%2FExecutive%20eq%20%27Andrew%20Ma%27

Nettleseren har erstattet mellomrommet mellom Andrew og Ma med %20, på samme måte som de andre mellomrommene. Den erstattet skråstreken mellom tabellnavnet Executives og feltnavnet Executive med %2F, og erstattet det enkle anførselstegnet ' med %27.

Denne versjonen av en URL-adresse kan være nyttig. Du kan for eksempel lime den inn i chat i Microsoft Teams, og den vil returnere de ønskede filtrerte resultatene.

Å bruke DAX til å filtrere etter flere verdier

En annen måte å filtrere på flere felter på er ved å opprette en beregnet kolonne som setter sammen to felter til én enkelt verdi. Deretter kan du filtrere etter denne verdien.

Vi har for eksempel to felt: Territorium og Kjede. Du kan opprette en ny beregnet kolonne (Felt) kalt TerritoriumKjede i Power BI Desktop. Husk at Felt-navnet ikke kan ha noen mellomrom. Her er DAX-formelen for den kolonnen.

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

Publiser rapporten på Power BI-tjenesten, og bruk deretter spørringsstrengen for URL-adressen til å filtrere for å vise data for bare Lindseys-butikker i NC.

https://app.powerbi.com/groups/me/reports/8d6e300b-696f-498e-b611-41ae03366851/ReportSection3?filter=Store/TerritoryChain eq 'NC – Lindseys'

Feste en flis fra en filtrert rapport

Når du har filtrert rapporten ved hjelp av spørrestrengparametere, kan du feste visualiseringer fra denne rapporten til instrumentbordet. Flisen på instrumentbordet viser de filtrerte dataene. Hvis du velger instrumentbordflisen, åpnes rapporten som ble brukt til å opprette den. Filtreringen du gjorde ved bruk av nettadressen, lagres imidlertid ikke sammen med rapporten. Når du velger instrumentbordflisen, åpnes rapporten i ufiltrert tilstand. Dette betyr at dataene som vises i instrumentbordflisen, ikke samsvarer med dataene som vises i visualiseringen i rapporten.

Dette avviket er nyttig når du vil se forskjellige resultater filtrert på instrumentbordet og ufiltrert i rapporten.

Viktige faktorer og feilsøking

Det finnes noen ting du bør være klar over når du bruker spørrestrengparameterne.

  • Når du bruker in-operatoren, må verdiene til høyre for in være en kommadelt liste omsluttet av parenteser.
  • Rapportserver for Power BI støtter også muligheten til å angi mer enn ett filter ved hjelp av nettadresseparameteren «filter». Her er et eksempel på hvordan nettadressen kan se ut i en rapportserver for Power BI: https://reportserver/reports/powerbi/Store Sales?rs:Embed=true&filter= Store/Territory eq 'NC' and Store/Chain eq 'Fashions Direct'
  • Nettadressefiltre for rapporter har en uttrykksgrense på 10 (10 filtre som er knyttet sammen med AND).
  • Den lange datatypen er (2^53-1) på grunn av begrensninger for JavaScript.
  • Power BI begrenser ikke antall tegn i URL-spørringsstrengene. Forskjellige nettlesere har forskjellige lengde-begrensninger.
  • Du kan ikke filtrere etter tabell- eller kolonnenavn som begynner med store bokstaver i INF, inkludert for eksempel et tabellnavn som begynner med «INFORMASJON». Inf med store bokstaver er en spesiell verdi i OData. Hvis du vil starte et tabell- eller kolonnenavn med INF, gjør du det til små bokstaver i stedet.

Innebyggingsscenarioer

Filtre for nettadresser støttes i noen innebygginsscenarioer, men ikke alle.

Neste trinn

Feste et visualobjekt til et instrumentbord
Registrer deg for en gratis prøveversjon

Har du flere spørsmål? Prøv å spørre Power BI-fellesskapet