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.
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, og legg deretter til filtersyntaksen i en spørringsstreng. En spørringsstreng i en NETTADRESSE starter med et spørsmålstegn (?), for eksempel:
URL-adresse?filter=Tabellfelt/ eq 'verdi'
- Tabell- og feltnavn skiller mellom store og små bokstaver. verdien er ikke det.
- Felt som er skjult fra rapportvisning, kan fortsatt filtreres.
Hvis filterparameteren ikke er den første parameteren i spørringsstrengen, kobles den til den forrige parameteren med et ampersand (&), for eksempel:
URL?reportId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&pageName=ReportSection&filter=Table/Field eq 'value'
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.
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'
Rapporten vår er nå filtrert for North Carolina. alle visualiseringene i rapporten viser bare data 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* | inklusive | 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
Table_x0020_Special/_x005B_Column_x0020_Brackets_x005D_ eq '[C]'
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:?filter=Table/Name eq 'Lee''s Summit'
Blir:Operatoren
in
støtter også denne flukten:?filter=Table/Name in ('Lee''s Summit', 'O''Brien')
blir:
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 张力.
Innebyggingsscenarioer
Nettadressefiltre støttes i enkelte innebyggingsscenarioer og ikke i andre.
- Innebygging av en rapport i en sikker portal eller et sikkert nettsted støttes.
- NETTADRESSEfiltre støttes i Power BI Embedded.
- Filtrering av spørringsstreng fungerer ikke med Publiser på nett eller Eksporter til PDF.
- Innebygging med rapportwebdelen i SharePoint Online støtter ikke nettadressefiltre.
- Teams tillater ikke å angi en URL-adresse.
Relatert innhold
Har du flere spørsmål? Prøv å spørre Power BI-fellesskap