Φιλτράρισμα αναφοράς με χρήση παραμέτρων συμβολοσειράς ερωτήματος στη διεύθυνση URL

Όταν ανοίγετε μια αναφορά σε Υπηρεσία Power BI, κάθε σελίδα της αναφοράς έχει τη δική της μοναδική διεύθυνση URL. Για να φιλτράρετε αυτή τη σελίδα αναφοράς, μπορείτε να χρησιμοποιήσετε το τμήμα παραθύρου "Φίλτρα" στον καμβά αναφορών. Εναλλακτικά, μπορείτε να προσθέσετε παραμέτρους συμβολοσειράς ερωτήματος στη διεύθυνση URL για να προφιλτραριστεί η αναφορά. Ίσως έχετε μια αναφορά που θα θέλατε να εμφανίσετε στους συναδέλφους σας και θέλετε να την φιλτράρετε εκ των προτέρων για λογαριασμό τους. Ένας τρόπος φιλτραρίσματος είναι να ξεκινήσετε με την προεπιλεγμένη διεύθυνση URL για την αναφορά, να προσθέσετε τις παραμέτρους του φίλτρου στη διεύθυνση URL και, στη συνέχεια, να στείλετε με ηλεκτρονικό ταχυδρομείο ολόκληρη τη νέα διεύθυνση URL.

Αυτό το άρθρο χρησιμοποιεί την αναφορά δείγματος ανάλυσης λιανικής. Εάν θέλετε να συνεχίσετε, μπορείτε να κάνετε λήψη του δείγματος αναφοράς.

Screenshot of Power BI report in the service.

Χρησιμοποιείται για παραμέτρους συμβολοσειράς ερωτήματος

Ας υποθέσουμε ότι εργάζεστε στο Power BI Desktop. Θέλετε να δημιουργήσετε μια αναφορά που έχει συνδέσεις σε άλλες αναφορές Power BI, αλλά θέλετε να εμφανίσετε μόνο μερικές από τις πληροφορίες στις άλλες αναφορές. Πρώτα, φιλτράρετε τις αναφορές χρησιμοποιώντας παραμέτρους συμβολοσειράς ερωτήματος και αποθηκεύστε τις διευθύνσεις URL. Στη συνέχεια, δημιουργήστε έναν πίνακα στο Desktop με αυτές τις νέες διευθύνσεις URL αναφορών. Στη συνέχεια, δημοσιεύστε και κοινοποιήστε την αναφορά.

Μια άλλη χρήση των παραμέτρων συμβολοσειράς ερωτήματος είναι για κάποιον που δημιουργεί μια σύνθετη λύση Power BI. Στο DAX, δημιουργεί μια αναφορά που δημιουργεί μια διεύθυνση URL φιλτραρισμένων αναφορών δυναμικά με βάση την επιλογή που κάνει ο πελάτης της στην τρέχουσα αναφορά. Όταν οι πελάτες επιλέξουν τη διεύθυνση URL, βλέπουν μόνο τις προβλεπόμενες πληροφορίες.

Σύνταξη παραμέτρου συμβολοσειράς ερωτήματος για φιλτράρισμα

Με τις παραμέτρους, μπορείτε να φιλτράρετε την αναφορά για μία ή περισσότερες τιμές, ακόμα και αν αυτές οι τιμές περιέχουν κενά διαστήματα ή ειδικούς χαρακτήρες. Η βασική σύνταξη είναι αρκετά απλή. ξεκινήστε με τη διεύθυνση URL της αναφοράς, προσθέστε ένα ερωτηματικό και, στη συνέχεια, προσθέστε τη σύνταξη φίλτρου.

URL?filter=Table/Field eq 'value'

Screenshot of U R L with filter.

  • Για τα ονόματα πινάκων και πεδίων γίνεται διάκριση πεζών-κεφαλαίων. η τιμή δεν είναι.
  • Τα πεδία που είναι κρυφά στην προβολή αναφοράς εξακολουθούν να μπορούν να φιλτραριστούν.

Τύποι πεδίων

Ο τύπος πεδίου μπορεί να είναι αριθμός, ημερομηνία/ώρα ή συμβολοσειρά και ο τύπος που χρησιμοποιείται πρέπει να συμφωνεί με τον τύπο που έχει οριστεί στο μοντέλο σημασιολογίας. Για παράδειγμα, ο καθορισμός μιας στήλης πίνακα τύπου "συμβολοσειρά" δεν λειτουργεί εάν αναζητάτε μια τιμή ημερομηνίας/ώρας ή μια αριθμητική τιμή σε μια στήλη μοντέλου σημασιολογίας που έχει οριστεί ως ημερομηνία, όπως Table/StringColumn eq 1.

  • Οι συμβολοσειρές πρέπει να περικλείονται σε μονά εισαγωγικά, όπως στο 'όνομα διευθυντή'.
  • Οι αριθμοί δεν απαιτούν καμία ειδική μορφοποίηση. Για λεπτομέρειες, ανατρέξτε στην ενότητα Αριθμητικοί τύποι δεδομένων σε αυτό το άρθρο.
  • Ημερομηνίες και ώρες Ανατρέξτε στην ενότητα Τύποι δεδομένων ημερομηνίας σε αυτό το άρθρο.

Εάν εξακολουθεί να σας προκαλεί σύγχυση, συνεχίστε να διαβάζετε και θα την αναλύσουμε.

Φιλτράρισμα σε ένα πεδίο

Ας υποθέσουμε ότι η διεύθυνση URL για την αναφορά μας είναι η εξής.

Screenshot of starting URL.

Επίσης, βλέπουμε στην προηγούμενη απεικόνιση χάρτη ότι έχουμε καταστήματα στη North Carolina. NC είναι η τιμή που αντιπροσωπεύει τη Βόρεια Καρολίνα στο πεδίο Περιφέρεια του πίνακα Κατάστημα . Επομένως, για να φιλτράρουμε την αναφορά ώστε να εμφανίζει μόνο δεδομένα για καταστήματα στην περιοχή "NC", προσαρτάμε αυτήν τη συμβολοσειρά στη διεύθυνση URL:

?filter=Store/Territory eq 'NC'

Screenshot of U R L with filter for North Carolina.

Η αναφορά μας φιλτράρεται τώρα για τη Βόρεια Καρολίνα. όλες οι απεικονίσεις στην αναφορά εμφανίζουν δεδομένα μόνο για τη Βόρεια Καρολίνα.

Screenshot of Report filtered for North Carolina.

Φιλτράρισμα περισσότερων από μία τιμών σε ένα πεδίο

Για να φιλτράρετε περισσότερες από μία τιμές σε ένα μοναδικό πεδίο, χρησιμοποιήστε τον τελεστή in αντί για τον τελεστή and . Η σύνταξη είναι:

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

Χρησιμοποιώντας το ίδιο παράδειγμα, για να φιλτράρετε την αναφορά ώστε να εμφανίζει μόνο δεδομένα για καταστήματα στη "NC" (North Carolina) ή "TN" (Tennessee), προσαρτήστε στη διεύθυνση URL τα εξής:

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

Ανατρέξτε στον πίνακα Τελεστές παρακάτω στο άρθρο για να δείτε μια λίστα με άλλους χρήσιμους τελεστές.

Φιλτράρισμα σε πολλά πεδία

Μπορείτε επίσης να φιλτράρετε σε πολλά πεδία, προσθέτοντας περισσότερες παραμέτρους στη διεύθυνση URL σας. Ας επιστρέψουμε στην αρχική μας παράμετρο φίλτρου.

?filter=Store/Territory eq 'NC'

Για να φιλτράρετε περισσότερα πεδία, προσθέστε ένα "και" και ένα άλλο πεδίο στην ίδια μορφή με το προηγούμενο παράδειγμα. Ακολουθεί ένα παράδειγμα.

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

Τελεστές

Το Power BI υποστηρίζει πολλούς τελεστές επιπλέον του "και". Ο παρακάτω πίνακας παραθέτει αυτούς τους τελεστές μαζί με τον τύπο περιεχομένου που υποστηρίζουν.

Τελεστής Ορισμός Συμβολοσειρά Αριθμός Ημερομηνία Παράδειγμα
and και Ναι Ναι Ναι product/price le 200 and price gt 3.5
Eq ισούται Ναι Ναι Ναι Address/City eq 'Redmond'
Ne δεν είναι ίσο Ναι Ναι Ναι Address/City ne 'London'
Ge μεγαλύτερο από ή ίσο με Όχι Ναι Ναι product/price ge 10
Gt μεγαλύτερο από Όχι Ναι Ναι product/price gt 20
Le μικρότερο από ή ίσο με Όχι Ναι Ναι product/price le 100
Lt μικρότερο από Όχι Ναι Ναι product/price lt 20
In* Συμπεριλαμβανομένων Ναι Ναι Ναι Student/Age in (27, 29)

* Όταν χρησιμοποιείτε το in, οι τιμές στα δεξιά του in μπορεί να είναι μια λίστα διαχωρισμένη με κόμματα που περικλείεται σε παρενθέσεις ή μια μοναδική παράσταση που επιστρέφει μια συλλογή. Για παραδείγματα, ανατρέξτε στο άρθρο Τελεστής IN.

Αριθμητικοί τύποι δεδομένων

Ένα φίλτρο διεύθυνσης URL του Power BI μπορεί να περιλαμβάνει αριθμούς στις ακόλουθες μορφές.

Τύπος αριθμού Παράδειγμα
ακέραιος 5
Μεγάλη 5 L ή 5 l
Διπλό 5,5 ή 55e-1 ή 0,55e+1 ή 5D ή 5d ή 0,5e1D ή 0,5e1d ή 5,5D ή 5,5d ή 55e-1D ή 55e-1d
δεκαδικός 5 M ή 5 m ή 5,5 M ή 5,5 m
Επιπλέουν 5 F ή 5 f ή 0,5e1 F ή 0,5e-1 d

Τύποι δεδομένων ημερομηνίας

Το Power BI υποστηρίζει OData V3 και V4 για τους τύπους δεδομένων Date και DateTimeOffset . Για το OData V3, πρέπει να περικλείετε ημερομηνίες σε μονά εισαγωγικά και να προηγείται της λέξης datetime. Δεν χρειάζεστε μονά εισαγωγικά και τη λέξη datetime στο OData V4.

Οι ημερομηνίες απεικονίζονται με τη μορφή EDM (2019-02-12T00:00:00): Όταν ορίζετε μια ημερομηνία ως ΕΕΕΕ-ΜΜ-ΗΗ, το Power BI την ερμηνεύει ως 'ΕΕΕΕ-ΜΜ-ΗΗ-DDT00:00:00'. Βεβαιωθείτε ότι ο μήνας και η ημέρα είναι δύο ψηφία, MM και DD.

Γιατί αυτή η διάκριση έχει σημασία; Ας υποθέσουμε ότι δημιουργείτε μια παράμετρο συμβολοσειράς ερωτήματος Table/Date gt '2018-08-03'. Τα αποτελέσματα θα περιλαμβάνουν την ημερομηνία 3 Αυγούστου 2018 ή θα ξεκινούν από τις 4 Αυγούστου 2018; Το Power BI μετατρέπει το ερώτημά σας σε Table/Date gt '2018-08-03T00:00:00'. Επομένως, τα αποτελέσματά σας περιλαμβάνουν οποιεσδήποτε ημερομηνίες που έχουν ένα μη μηδενικό χρονικό διάστημα, επειδή αυτές οι ημερομηνίες θα είναι μεγαλύτερες από '2018-08-03T00:00:00'.

Υπάρχουν άλλες διαφορές μεταξύ των εκδόσεων V3 και V4. Το OData V3 δεν υποστηρίζει ημερομηνίες, μόνο ημερομηνίας/ώρας. Επομένως, εάν χρησιμοποιείτε τη μορφή V3, πρέπει να την συμπληρώσετε με την πλήρη ώρα ημερομηνίας. Οι λεκτικές σταθερές ημερομηνίας, όπως "datetime'2019-05-20'" δεν υποστηρίζονται στη σημειογραφία της V3. Ωστόσο, μπορείτε απλώς να το γράψετε ως "2019-05-20" στη σημειογραφία της V4. Ακολουθούν δύο ισοδύναμα ερωτήματα φίλτρου σε V3 και V4:

  • Μορφή OData V4: filter=Table/Date gt 2019-05-20
  • Μορφή OData V3: filter=Table/Date gt datetime'2019-05-20T00:00:00'

Ειδικοί χαρακτήρες σε φίλτρα διευθύνσεων URL

Ειδικοί χαρακτήρες σε ονόματα πινάκων και στηλών

Ειδικοί χαρακτήρες, κενά διαστήματα και αρχικοί αριθμοί σε ονόματα πινάκων και στηλών απαιτούν περισσότερη μορφοποίηση. Όταν το ερώτημά σας περιέχει κενά διαστήματα, παύλες, αριθμούς στην αρχή ή άλλους χαρακτήρες μη ASCII, τοποθετήστε πριν από αυτούς τους ειδικούς χαρακτήρες έναν κωδικό διαφυγής που ξεκινά με έναν χαρακτήρα υπογράμμισης και ένα X (_x) και, στη συνέχεια, τον τετραψήφιο κωδικό Unicode και, στη συνέχεια, έναν άλλο χαρακτήρα υπογράμμισης. Εάν ο κωδικός Unicode έχει λιγότερους από τέσσερις χαρακτήρες, πρέπει να τον συμπληρώσετε με μηδενικά. Ακολουθούν μερικά παραδείγματα.

Αναγνωριστικό Unicode Κωδικοποίηση για το Power BI
Όνομα πίνακα Το διάστημα είναι 00x20 Table_x0020_Name
Αριθμός στήλης@ Το @ είναι 00x40 Column_x0040_Number
[Στήλη] Το [ είναι 0x005B ] είναι 0x005D _x005B_Column_x005D_
Column+Plus Το + είναι 0x2B Column_x002B_Plus
2TableName Το 2 είναι 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.

Ειδικοί χαρακτήρες σε τιμές

Τα φίλτρα διευθύνσεων URL υποστηρίζουν τους περισσότερους ειδικούς χαρακτήρες σε τιμές πεδίων, αλλά ορισμένοι απαιτούν επίσης κωδικούς διαφυγής. Για παράδειγμα, για να αναζητήσετε έναν χαρακτήρα μονού εισαγωγικού, χρησιμοποιήστε δύο μονά εισαγωγικά ('').

  • ?filter=Table/Name eq 'O''Brien' Γίνεται:

    Name is O'Brien

  • ?filter=Table/Name eq 'Lee''s Summit' Γίνεται:

    Lee's Summit

  • Ο in τελεστής υποστηρίζει επίσης αυτήν τη διαφυγή: ?filter=Table/Name in ('Lee''s Summit', 'O''Brien') το γίνεται:

    Lee's Summit or O'Brien

Ακολουθεί μια λίστα με ορισμένους ειδικούς χαρακτήρες που απαιτούν κωδικούς διαφυγής στις τιμές πεδίων.

Χαρακτήρας Κωδικός διαφυγής
(ένα κενό διάστημα) 20%
' ''
% 25%
+ %2B
/ %2F
? %3F
# %23
& 26%

Χαρακτήρες διαφυγής τυπικής διεύθυνσης URL

Όταν χρησιμοποιείτε μια διεύθυνση URL με κενά διαστήματα και άλλους ειδικούς χαρακτήρες, τα προγράμματα περιήγησης μπορούν να τα αντικαταστήσουν αυτόματα με τυπικούς χαρακτήρες διαφυγής. Ας υποθέσουμε ότι δημιουργείτε αυτήν τη συμβολοσειρά ερωτήματος διεύθυνσης URL:

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

Ανοίγει το Δείγμα κερδοφορίας πελάτη, φιλτραρισμένο στον Andrew Ma. Ωστόσο, εάν εξετάσετε τη διεύθυνση URL, μπορεί τώρα να μοιάζει κάπως έτσι:

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

Το πρόγραμμα περιήγησης έχει αντικαταστήσει το διάστημα μεταξύ Andrew και Ma με %20, παρόμοια με τα άλλα διαστήματα. Αντικατέστησε την κάθετο μεταξύ του ονόματος Executives πίνακα και του ονόματος Executive πεδίου με %2Fκαι αντικατέστησε το μονό εισαγωγικό ' με %27.

Αυτή η έκδοση μιας διεύθυνσης URL μπορεί να είναι χρήσιμη. Για παράδειγμα, μπορείτε να την επικολλήσετε σε συνομιλία στο Microsoft Teams και επιστρέφει τα επιθυμητά φιλτραρισμένη αποτελέσματα.

Χρήση DAX για φιλτράρισμα πολλαπλών τιμών

Ένας άλλος τρόπος φιλτραρίσματος πολλαπλών πεδίων είναι η δημιουργία μιας υπολογιζόμενης στήλης που συνενώνει δύο πεδία σε μια μοναδική τιμή. Στη συνέχεια, μπορείτε να φιλτράρετε με βάση αυτή την τιμή.

Για παράδειγμα, έχουμε δύο πεδία: Territory και Chain. Στο Power BI Desktop, δημιουργήστε μια νέα υπολογιζόμενη στήλη (Πεδίο) με την ονομασία TerritoryChain. Να θυμάστε ότι το όνομα πεδίου δεν μπορεί να περιέχει κενά διαστήματα. Ακολουθεί ο τύπος DAX για αυτήν τη στήλη.

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

Δημοσιεύστε την αναφορά στο Υπηρεσία Power BI και, στη συνέχεια, χρησιμοποιήστε τη συμβολοσειρά ερωτήματος διεύθυνσης URL για να φιλτράρετε και να εμφανίσετε δεδομένα μόνο για καταστήματα Lindsey στη NC.

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

Καρφίτσωμα πλακιδίου από φιλτραρισμένη αναφορά

Αφού φιλτράρετε την αναφορά χρησιμοποιώντας παραμέτρους συμβολοσειράς ερωτήματος, μπορείτε να καρφιτσώσετε απεικονίσεις από αυτήν την αναφορά στον πίνακα εργαλείων σας. Το πλακίδιο στον πίνακα εργαλείων εμφανίζει τα φιλτραριζόμενα δεδομένα και επιλέγοντας αυτό το πλακίδιο πίνακα εργαλείων ανοίγει η αναφορά που χρησιμοποιήθηκε για τη δημιουργία του. Ωστόσο, το φιλτράρισμα που κάνατε χρησιμοποιώντας τη διεύθυνση URL δεν αποθηκεύεται μαζί με την αναφορά. Όταν επιλέγετε το πλακίδιο πίνακα εργαλείων, η αναφορά ανοίγει σε μη φιλτραρισμένη κατάσταση. Επομένως, τα δεδομένα που εμφανίζονται στο πλακίδιο πίνακα εργαλείων δεν συμφωνούν με τα δεδομένα που εμφανίζονται στην απεικόνιση αναφοράς.

Αυτή η διαφορά είναι χρήσιμη όταν θέλετε να δείτε διαφορετικά αποτελέσματα. φιλτράρισμα στον πίνακα εργαλείων και χωρίς φιλτράρισμα στην αναφορά.

Ζητήματα και αντιμετώπιση προβλημάτων

Υπάρχουν μερικά πράγματα που πρέπει να γνωρίζετε όταν χρησιμοποιείτε τις παραμέτρους συμβολοσειράς ερωτήματος.

  • Όταν χρησιμοποιείτε τον τελεστή in , οι τιμές στα δεξιά του in πρέπει να είναι διαχωρισμένες με κόμματα λίστα που περικλείεται σε παρενθέσεις.

  • Ο Power BI Report Server υποστηρίζει επίσης τη δυνατότητα καθορισμού περισσότερων από ένα φίλτρων χρησιμοποιώντας την παράμετρο διεύθυνσης URL "filter". Ακολουθεί ένα παράδειγμα για τη μορφή της διεύθυνσης URL στο Power BI Report Server: https://reportserver/reports/powerbi/Store Sales?rs:Embed=true&filter= Store/Territory eq 'NC' and Store/Chain eq 'Fashions Direct'

  • Τα φίλτρα διεύθυνσης URL αναφοράς έχουν όριο 10 παραστάσεων (10 φίλτρα συνδεδεμένα με and).

  • Ο μεγάλος τύπος δεδομένων είναι (2^53-1) λόγω περιορισμών της JavaScript.

  • Οι συμβολοσειρές ερωτήματος διεύθυνσης URL περιορίζονται σε 2000 χαρακτήρες. Αυτό το όριο περιλαμβάνει κωδικούς διαφυγής για ειδικούς χαρακτήρες (π.χ. διάστημα, %, +).

  • Δεν μπορείτε να φιλτράρετε σε ονόματα πινάκων ή στηλών που ξεκινούν με τα κεφαλαία γράμματα INF, συμπεριλαμβανομένου, για παράδειγμα, ενός ονόματος πίνακα που ξεκινά με "ΠΛΗΡΟΦΟΡΙΕΣ". Η συνάρτηση INF με κεφαλαία γράμματα είναι μια ειδική τιμή στο OData. Εάν θέλετε να ξεκινήσετε ένα όνομα πίνακα ή στήλης με "INF", ορίστε σε πεζό πεζό γράμματα "inf" αντί για αυτό.

  • Τα ονόματα πινάκων και πεδίων μπορεί να περιέχουν κινεζικούς χαρακτήρες που εκφράζονται σε μορφή Unicode. Για παράδειγμα, ας υποθέσουμε ότι θέλετε να εφαρμόσετε ένα φίλτρο που 表/人 eq '张力' (αυτό σημαίνει Table/Person eq '张力'). Το φίλτρο μετατρέπεται σε _x8868_/_x4eba_ eq '张力'.

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

Σενάρια ενσωμάτωσης

Τα φίλτρα διευθύνσεων URL υποστηρίζονται σε ορισμένα σενάρια ενσωμάτωσης και όχι σε άλλα.

Περισσότερες ερωτήσεις; Δοκιμάστε να ρωτήσετε τον Κοινότητα Power BI