Filtrovanie zostavy pomocou parametrov reťazca dotazu v URL adrese

Keď otvoríte zostavu v služba Power BI, každá strana zostavy má vlastnú jedinečnú URL adresu. Na filtrovanie danej strany zostavy môžete použiť tablu Filtre na plátne na vytváranie zostáv. Zostavu môžete vopred filtrovať aj pridaním parametrov reťazca dotazu k URL adrese. Možno máte zostavu, ktorú chcete ukázať kolegom, ale chcete ju predfiltrovať. Filtrovať ju môžete napríklad tak, že zadáte predvolenú URL adresu zostavy, pridáte k nej parametre filtra a potom kolegom e-mailom odošlete celú novú URL adresu.

Tento článok používa zostavu Ukážka analýzy maloobchodu. Ak si chcete vyskúšať tieto kroky, môžete si stiahnuť vzorové zostavy.

Screenshot of Power BI report in the service.

Použitia pre parametre reťazca dotazu

Povedzme, že pracujete v aplikácii Power BI Desktop. Chcete vytvoriť zostavu s prepojeniami na iné zostavy služby Power BI, ale v iných zostavách chcete, aby sa zobrazovali iba niektoré informácie. Najskôr filtrujte zostavy pomocou parametrov reťazca dotazu a uložte URL adresy. V ďalšom kroku vytvorte tabuľku v aplikácii Desktop pomocou týchto nových URL adries zostavy. Potom zostavu publikujte a zdieľajte.

Ďalšie využitie pre parametre reťazca dotazu je pri vytváraní pokročilého riešenia služby Power BI. V jazyku DAX vytvárajú zostavu dynamicky vytvárajúc URL adresu filtrovanej zostavy na základe výberu, ktorý vykoná zákazník v aktuálnej zostave. Keď zákazníci vyberú URL adresu, zobrazia sa len tie informácie, ktoré chcete.

Syntax parametra reťazca dotazu na filtrovanie

Pomocou parametrov môžete filtrovať zostavu pre jednu alebo viacero hodnôt, dokonca aj vtedy, ak tieto hodnoty obsahujú medzery alebo špeciálne znaky. Základná syntax je veľmi jednoduchá. začnite s URL adresou zostavy, pridajte otáznik a potom pridajte syntax filtra.

URL?filter=Pole tabuľky/eq 'hodnota'

Screenshot of U R L with filter.

  • V názvoch premenných Tabuľka a Pole sa rozlišujú malé a veľké písmená. Hodnota nie je.
  • Filtrovať možno aj polia, ktoré sú v zobrazení zostavy skryté.

Typy polí

Typ poľa môže byť číslo, dátum a čas alebo reťazec a použitý typ sa musí zhodovať s typom nastaveným v sémantickom modeli. Napríklad zadanie stĺpca tabuľky typu "reťazec" nefunguje, ak hľadáte dátum a čas alebo číselnú hodnotu v stĺpci sémantického modelu, ktorá je nastavená ako dátum, napríklad Tabuľka/StringColumn eq 1.

  • Reťazce musia byť uzavreté v jednoduchých úvodzovkách, napríklad 'meno manažéra'.
  • Čísla nevyžadujú žiadne špeciálne formátovanie. Podrobnosti nájdete v časti Číselné typy údajov v tomto článku.
  • Dátumy a časy Pozrite si časť Dátumové typy údajov v tomto článku.

Ak to ešte nie je dostatočne jasné, čítajte ďalej a rozdelíme si to.

Filtrovanie podľa poľa

Predpokladajme, že URL adresa našej zostavy je nasledovná.

Screenshot of starting URL.

V predchádzajúcej vizualizácii mapy vidíme, že máme obchody v Severnej Karolíne. NC je hodnota pre Severnú Karolínu (North Carolina) v poliÚtor tabuľky Obchod . Takže ak chcete filtrovať zostavu tak, aby zobrazovala len údaje pre obchody v NC, pripojte do URL adresy tento reťazec:

?filter=Store/Territory eq 'NC'

Screenshot of U R L with filter for North Carolina.

Zostava je teraz filtrovaná pre Severnú Karolínu. Vo všetkých vizualizáciách v zostave sa zobrazujú len údaje pre Severnú Karolínu.

Screenshot of Report filtered for North Carolina.

Filtrovanie viacerých hodnôt v poli

Ak chcete filtrovať viac ako jednu hodnotu v jednom poli, použite operátor in namiesto operátora and . Syntax je:

URL?filter=Poletabuľky/v ('hodnota1', 'hodnota2')

V rámci toho istého príkladu, ak chcete vyfiltrovať zostavu tak, aby sa v nej zobrazovali len údaje pre NC (Severná Karolína) alebo TN (Tennessee), pripojte do URL adresy nasledujúci reťazec:

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

Zoznam ďalších užitočných operátorov nájdete ďalej v článku v tabuľke Operátory.

Filtrovanie podľa viacerých polí

Môžete filtrovať aj podľa viacerých polí, a to tak, že do URL adresy pridáte ďalšie parametre. Vráťme sa k pôvodnému parametru filtra.

?filter=Store/Territory eq 'NC'

Ak chcete filtrovať podľa ďalších polí, pridajte 'and' a ďalšie pole v rovnakom formáte ako predchádzajúci príklad. Tu je príklad.

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

Operátory

Power BI okrem operátora 'and' podporuje aj množstvo ďalších. Nasledujúca tabuľka obsahuje zoznam týchto operátorov spolu s typom obsahu, ktorý podporujú.

Operátor Definícia String Číslo Date (Dátum) Príklad
A a áno áno áno produkt/cena le 200 and cena gt 3,5
Eq rovná sa áno áno áno Adresa/mesto eq 'Redmond'
Nie nerovná sa áno áno áno Adresa/mesto ne 'Londýn'
Ge väčšie alebo rovné nie áno áno produkt/cena ge 10
Gt väčšie ako nie áno áno produkt/cena gt 20
Le menšie alebo rovné nie áno áno produkt/cena le 100
Lt menšie ako nie áno áno produkt/cena lt 20
Palcov* Vrátane áno áno áno Študent/vek in (27, 29)

* Pri používaní operátora in môžu byť hodnoty napravo od operátora in v podobe čiarkami oddeleného zoznamu ohraničeného zátvorkami, alebo jeden výraz, ktorý vracia kolekciu. Príklady nájdete v článku Operátor IN.

Číselné typy údajov

Filter URL adresy služby Power BI môže obsahovať čísla v nasledujúcich formátoch.

Typ čísla Príklad
celé číslo 5
Dlho 5 L alebo 5 l
Dvojlôžková 5,5 alebo 55e-1 alebo 0,55e+1 alebo 5D alebo 5d alebo 0,5e1D alebo 0,5e1d alebo 5,5D alebo 5,5d alebo 55e-1D alebo 55e-1d
desiatkový 5 M alebo 5 m alebo 5,5 M alebo 5,5 m
Plavák 5 F alebo 5 f alebo 0,5e1 F alebo 0.5e-1 d

Dátumové typy údajov

Power BI podporuje protokol OData V3 a V4 pre typy údajov Date a DateTimeOffset . V prípade protokolu OData V3 musíte dátumy uviesť v jednoduchých úvodzovkách a uviesť pred ne slovo datetime. V protokole OData V4 nepotrebujete jednoduché úvodzovky ani slovo datetime.

Dátumy sú zobrazené vo formáte EDM (2019-02-12T00:00:00): Keď zadáte dátum ako RRRR-MM-DD, Power BI ho interpretuje ako RRRR-MM-DDT00:00:00. Uistite sa, že mesiac a deň predstavujú dve číslice, MM a DD.

Prečo je dôležité toto rozlíšenie? Povedzme, že vytvoríte parameter reťazca dotazu Table/Date gt 2018-08-03. Budú výsledky zahŕňať 3. august 2018 alebo sa budú začínať 4. augusta 2018? Power BI preloží dotaz na Table/Date gt 2018-08-03T00:00:00. Takže vaše výsledky zahŕňajú všetky dátumy, ktoré majú nenulovú časť času, pretože tieto dátumy by boli väčšie ako hodnota 2018-08-03T00:00:00.

Medzi službami V3 a V4 existujú aj iné rozdiely. Protokol OData V3 nepodporuje funkciu Dátumy, len hodnotu DateTime. Ak teda používate formát V3, musíte ho kvalifikovať s úplným dátumom a časom. Znakové kódy dátumu ako "datetime'2019-05-20'" nie sú v zápise nástroja V3 podporované. V zápise funkcie V4 však môžete text napísať ako "2019-05-20". Tu sú dva ekvivalentné dotazy filtra v nástrojoch V3 a V4:

  • Formát OData V4: filter=Table/Date gt 2019-05-20
  • Formát OData V3: filter=Table/Date gt datetime'2019-05-20T00:00:00'

Špeciálne znaky v URL filtroch

Špeciálne znaky v názvoch tabuliek a stĺpcov

Špeciálne znaky, medzery a úvodné čísla v názvoch tabuliek a stĺpcov vyžadujú viac formátovania. Keď dotaz obsahuje medzery, pomlčky, úvodné čísla alebo iné znaky ako ASCII znaky, vložte pred tieto špeciálne znaky koncový kód , ktorý sa začína znakom podčiarknutia a znakom X (_x), potom štvorciferným kódom Unicode a ďalším znakom podčiarknutia. Ak má kód Unicode menej ako štyri znaky, musíte ho doplniť nulami. Tu je niekoľko príkladov.

Identifikátor Unicode Kód pre Power BI
Názov tabuľky Medzera je 00x20 Table_x0020_Name
Číslo stĺpca@ @ je 00x40 Column_x0040_Number
[Stĺpec] [is 0x005B] je 0x005D _x005B_Column_x005D_
Stĺpec + Plus + je 0x2B Column_x002B_Plus
2Názov tabuľky 2 je 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.

Špeciálne znaky v hodnotách

Filtre URL adries podporujú väčšinu špeciálnych znakov v hodnotách polí, ale niektoré tiež vyžadujú koncové kódy. Ak chcete napríklad vyhľadať znak jednoduchej úvodzovky, použite dve jednoduché úvodzovky ('').

  • ?filter=Table/Name eq 'O''Brien' Stáva:

    Name is O'Brien

  • ?filter=Table/Name eq 'Lee''s Summit' Stáva:

    Lee's Summit

  • Operátor in podporuje možnosť vyhnúť sa jej: z typu sa stane: ?filter=Table/Name in ('Lee''s Summit', 'O''Brien')

    Lee's Summit or O'Brien

Tu je zoznam špeciálnych znakov, ktoré v hodnotách polí vyžadujú koncové kódy.

Znak Escape code (Escape code)
(medzera) 20 %
' ''
% 25 %
+ %2B
/ %2F
? %3F
# %23
& 26 %

Štandardné koncové znaky URL adresy

Keď použijete URL adresu s medzerami a ďalšími špeciálnymi znakmi, prehliadače ich môžu automaticky nahradiť štandardnými escape znakmi. Povedzme, že vytvoríte tento reťazec dotazu URL adresy:

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

Otvorí sa Ukážka ziskovosti zákazníkov filtrovaná na Adam Horváth. Ak sa však pozriete na URL adresu, môže vyzerať takto:

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

Prehliadač nahradí medzeru medzi Andrew a Ma , %20podobne aj ostatné medzery. Nahradil lomku medzi názvom Executives tabuľky a názvom Executive poľa reťazcom %2Fa nahradil jednoduchú úvodzovku ' výrazom %27.

Táto verzia URL adresy môže byť užitočná. Môžete ho napríklad prilepiť do chatu v službe Microsoft Teams a vráti požadované filtrované výsledky.

Použitie jazyka DAX na filtrovanie podľa viacerých hodnôt

Ak chcete filtrovať podľa viacerých polí, môžete použiť aj iný spôsob, a to vytvorenie vypočítaného stĺpca, ktorý zreťazí dve polia do jednej hodnoty. Potom môžete na tejto hodnote filtrovať.

Máme napríklad dve polia: Territory (Územie) a Chain (Reťazec). V aplikácii Power BI Desktop vytvorte nový vypočítaný stĺpec (pole) s názvom TerritoryChain. Nezabudnite, že názov premennej Pole nemôže obsahovať žiadne medzery. Tu je vzorec DAX pre tento stĺpec.

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

Publikujte zostavu v služba Power BI a potom použite reťazec dotazu URL adresy na filtrovanie a zobrazenie údajov len pre obchody Lindseys v NC.

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

Pripnutie dlaždice z filtrovanej zostavy

Po filtrovaní zostavy pomocou parametrov reťazca dotazu môžete pripnúť vizualizácie z danej zostavy na tabuľu. V dlaždici na tabuli sa zobrazujú vyfiltrované údaje a výberom danej dlaždice tabule sa otvorí zostava, ktorá bola použitá na jej vytvorenie. Filtrovanie, ktoré ste použili pomocou URL adresy, sa však so zostavou neuloží. Keď vyberiete dlaždicu tabule, zostava sa otvorí v nevyfiltrovanom stave. Preto sa údaje zobrazené v dlaždici tabule nebudú zhodovať s údajmi zobrazenými vo vizualizácii zostavy.

Tento nesúlad je užitočný, ak chcete zobraziť rozdielne výsledky. vyfiltrované na tabuli a nevyfiltrované v zostave.

Dôležité informácie a riešenie problémov

Pri používaní parametrov reťazca dotazu treba poznať niekoľko vecí.

  • Keď použijete operátor in , hodnoty napravo od operátora in musia byť v čiarkami oddelenom zozname ohraničenom zátvorkami.

  • Power BI Report Server tiež podporuje možnosť špecifikovať viac ako jeden filter pomocou parametra URL adresy "filter". V tomto príklade uvidíte, ako môže vyzerať URL adresa v Power BI Report Serveri: https://reportserver/reports/powerbi/Store Sales?rs:Embed=true&filter= Store/Territory eq 'NC' and Store/Chain eq 'Fashions Direct'

  • Filtre URL adresy zostavy majú obmedzenie 10 výrazov (10 filtrov pripojených pomocou operátora AND).

  • Dlhý typ údajov je (2^53-1) z dôvodu obmedzení JavaScriptu.

  • Reťazce dotazu URL adresy sú obmedzené na 2 000 znakov. Tento limit obsahuje koncové kódy pre špeciálne znaky (napríklad medzeru, %, +).

  • Nie je možné filtrovať názvy tabuliek alebo stĺpcov, ktoré začínajú veľkým písmenami INF, vrátane napríklad názvu tabuľky začínajúceho reťazcom "INFORMATION". Veľké písmená INF sú špeciálnou hodnotou v protokole OData. Ak chcete začať názov tabuľky alebo stĺpca reťazcom INF, začnite namiesto toho malým písmenom "inf".

  • Názvy tabuliek a polí môžu obsahovať čínske znaky vyjadrené vo formulári Unicode. Povedzme napríklad, že chcete použiť filter, ktorý 表/eq '张力' (to znamená Table/Person eq '张力'). Filter sa skonvertuje na _x8868_/_x4eba_ eq '张力'.

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

Scenáre vkladania

Filtre URL adries sú podporované v niektorých scenároch vkladania, nie v iných.

Máte ďalšie otázky? Skúste sa spýtať Komunita Power BI