Filtrere en rapport ved hjelp av spørringsstrengparametere i nettadressen

Når du åpner en rapport i Power Bi-tjeneste, har hver side i rapporten sin egen unike NETTADRESSE. Hvis du vil filtrere rapportsiden, kan du bruke Filtre-ruten på rapportlerretet. Du kan også legge til parametere for spørringsstreng i nettadressen for å forhåndsfiltrere rapporten. Kanskje du har en rapport du vil vise kolleger, og du vil forhåndsfiltrere den for dem. Én måte å filtrere den på er å starte med standard URL-adresse for rapporten, legge til filterparameterne i nettadressen og deretter sende dem hele den nye nettadressen.

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

Screenshot of Power BI report in the service.

Brukes for parametere for spørringsstreng

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 vil bare vise noe av informasjonen i de andre rapportene. Først filtrerer du rapportene ved hjelp av spørringsstrengparametere og lagrer nettadressene. Deretter oppretter du en tabell i Desktop med disse nye url-adressene for rapporter. Publiser og del rapporten.

En annen bruk for spørringsstrengparametere er for noen som oppretter en avansert Power BI-løsning. I DAX oppretter de en rapport som genererer en filtrert url-adresse for rapport dynamisk basert på valget kunden gjør i den gjeldende rapporten. Når kunder velger nettadressen, ser de bare den tiltenkte informasjonen.

Syntaks for spørringsstrengparameter for filtrering

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

URL-adresse?filter=Tabellfelt/ eq 'verdi'

Screenshot of U R L with filter.

  • Tabell- og feltnavn skiller mellom store og små bokstaver. verdien er ikke det.
  • Felt som er skjult fra rapportvisning, kan fortsatt filtreres.

Felttyper

Felttypen kan være et tall, datetime eller en streng, og typen som brukes, må samsvare med typesettet i semantisk modell. Hvis du for eksempel angir en tabellkolonne av typen «streng», fungerer det ikke hvis du leter etter en datetime eller numerisk verdi i en semantisk modellkolonne som er angitt som en dato, for eksempel Table/StringColumn eq 1.

  • Strenger må omsluttes med enkle anførselstegn, som i ledernavn.
  • Tall krever ingen spesiell formatering. Se numeriske datatyper i denne artikkelen for mer informasjon.
  • Datoer og klokkeslett Se datatyper for dato i denne artikkelen.

Hvis det fortsatt er forvirrende, kan du fortsette å lese, så bryter vi det ned.

Filtrere på et felt

La oss anta at nettadressen til rapporten vår er følgende.

Screenshot of starting URL.

Og vi ser i vår forrige kartvisualisering at vi har butikker i North Carolina. NC er verdien som representerer North Carolina i Distrikt-feltet i Store-tabellen. Hvis du vil filtrere rapporten slik at den bare viser data for butikker i NC, tilføyer vi denne strengen til nettadressen:

?filter=Store/Territory eq 'NC'

Screenshot of U R L with filter for North Carolina.

Rapporten vår er nå filtrert for North Carolina. alle visualiseringene i rapporten viser bare data for North Carolina.

Screenshot of Report filtered for North Carolina.

Filtrere 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-adresse?filter=Tabellfelt/i ('verdi1', 'verdi2')

Hvis du bruker det samme eksemplet til å filtrere rapporten slik at den bare viser data for butikker i NC (North Carolina) eller TN (Tennessee), føyer du til nettadressen med følgende:

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

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

Filtrere etter flere felt

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 forrige eksempel. 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 og. Tabellen nedenfor viser disse operatorene sammen med innholdstypen de støtter.

Operatør Definisjon Streng Antall Dato Eksempel
and og ja ja ja produkt/pris le 200 og pris gt 3.5
Eq equals ja ja ja Address/City eq 'Redmond'
Ne ikke lik ja ja ja Adresse/By 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 i (27, 29)

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

Numeriske datatyper

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

Talltype Eksempel
integer 5
Lang 5 L eller 5 l
Dobbel 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
desimal 5 M eller 5 m eller 5,5 M eller 5,5 m
Flyte 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 datatypene Date og DateTimeOffset . For OData V3 må du omslutte datoer i enkle anførselstegn og sette dem foran med ordet datetime. Du trenger ikke enkle anførselstegn og ordet datetime i OData V4.

Datoer representeres ved hjelp av EDM-formatet (2019-02-12T00:00:00): Når du angir en dato som YYYY-MM-DD, tolker Power BI den som YYYY-MM-DDT00:00:00. Kontroller at måned og dag er to sifre, MM og DD.

Hvorfor betyr dette skillet noe? La oss si at du oppretter en spørringsstrengparameter tabell/dato gt '2018-08-03'. Vil resultatene inkludere 3. august 2018 eller starte med 4. august 2018? Power BI oversetter spørringen til Tabell/Dato gt '2018-08-03T00:00:00'. Resultatene inkluderer alle datoer som har en ikke-null-tidsdel, fordi disse datoene vil være større enn '2018-08-03T00:00:00'.

Det finnes andre forskjeller mellom V3 og V4. OData V3 støtter ikke datoer, bare DateTime. Så hvis du bruker V3-formatet, må du kvalifisere det med full datotid. Datolitteraler som datetime'2019-05-20 støttes ikke i V3-notasjon. Men du kan bare skrive det som "2019-05-20" i V4 notasjon. Her er to tilsvarende filterspørringer i V3 og V4:

  • OData V4-format: filter=Tabell/Dato 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, mellomrom og innledende tall i tabell- og kolonnenavn krever mer formatering. Når spørringen inneholder mellomrom, streker, innledende tall eller andre ikke-ASCII-tegn, kan du prefikse disse spesialtegnene med en escape-kode som starter med et understrekingstegn og en X (_x), deretter den firesifrede Unicode, og deretter et annet understrekingstegn. Hvis Unicode er færre enn fire tegn, må du tastaturtegnet med nuller. Her er noen eksempler:

Identifier Unicode Koding for Power BI
Tabellnavn Plassen er 00x20 Table_x0020_Name
Kolonnenummer@ @ er 00x40 Column_x0040_Number
[Kolonne] [ er 0x005B ] er 0x005D _x005B_Column_x005D_
Kolonne+Pluss + 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.

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

  • Operatoren in støtter også denne flukten: ?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 nettadresse

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 det 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 det inn i chat i Microsoft Teams, og det returnerer de ønskede filtrerte resultatene.

Bruk DAX til å filtrere etter flere verdier

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

Vi har for eksempel to felt: Distrikt og kjede. Opprett en ny beregnet kolonne (felt) kalt TerritoryChain i Power BI Desktop. Husk at feltnavnet ikke kan ha mellomrom. Her er DAX-formelen for denne kolonnen.

TerritoryChain = [Distrikt] & " - " & [Kjede]

Publiser rapporten på Power Bi-tjeneste, og bruk deretter nettadressespørringsstrengen til å filtrere og 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ørringsstrengparametere, kan du feste visualiseringer fra rapporten til instrumentbordet. Flisen på instrumentbordet viser de filtrerte dataene, og når du velger denne instrumentbordflisen, åpnes rapporten som ble brukt til å opprette den. Filtreringen du gjorde ved hjelp av nettadressen, lagres imidlertid ikke med rapporten. Når du velger instrumentbordflisen, åpnes rapporten i ufiltrert tilstand. Dataene som vises i instrumentbordflisen samsvarer derfor ikke med dataene som vises i rapportvisualiseringen.

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

Hensyn og feilsøking

Det finnes et par ting å være oppmerksom på når du bruker spørringsstrengparameterne.

  • Når du bruker i-operatoren, må verdiene til høyre for i 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 parameteren «filter» url. Her er et eksempel på hvordan nettadressen kan se ut i rapportserver for Power BI:https://reportserver/reports/powerbi/Store Sales?rs:Embed=true&filter= Store/Territory eq 'NC' and Store/Chain eq 'Fashions Direct'

  • Filtre for url-adresse for rapport har en grense på 10 uttrykk (10 filtre koblet til av AND).

  • Den lange datatypen er (2^53-1) på grunn av JavaScript-begrensninger.

  • Url-spørringsstrenger er begrenset til 2000 tegn. Denne grensen inkluderer escape-koder for spesialtegn (for eksempel et mellomrom, %, +).

  • Du kan ikke filtrere etter tabell- eller kolonnenavn som begynner med den store bokstaven 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 «inf» med små bokstaver i stedet.

  • Tabell- og feltnavn kan inneholde kinesiske tegn uttrykt i Unicode-skjema. La oss for eksempel si at du vil bruke et filter som 表/人 eq '张力' (dette betyr tabell/person eq '张力'). Filteret konverteres til _x8868_/_x4eba_ eq 张力.

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

Innebyggingsscenarioer

Nettadressefiltre støttes i enkelte innebyggingsscenarioer og ikke i andre.

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