Φιλτράρισμα αναφοράς με χρήση παραμέτρων συμβολοσειράς ερωτήματος στη διεύθυνση URL
Όταν ανοίγετε μια αναφορά στην υπηρεσία Power BI, κάθε σελίδα της αναφοράς έχει τη δική της μοναδική διεύθυνση URL. Για να φιλτράρετε αυτή τη σελίδα αναφοράς, μπορείτε να χρησιμοποιήσετε το τμήμα παραθύρου "Φίλτρα" στον καμβά αναφορών. Εναλλακτικά, μπορείτε να προσθέσετε παραμέτρους συμβολοσειράς ερωτήματος στη διεύθυνση URL για να προφιλτραριστεί η αναφορά. Ίσως έχετε μια αναφορά που θα θέλατε να εμφανίσετε στους συναδέλφους σας και θέλετε να την φιλτράρετε εκ των προτέρων για λογαριασμό τους. Ένας τρόπος φιλτραρίσματος είναι να ξεκινήσετε με την προεπιλεγμένη διεύθυνση URL για την αναφορά, να προσθέσετε τις παραμέτρους του φίλτρου στη διεύθυνση URL και, στη συνέχεια, να στείλετε με ηλεκτρονικό ταχυδρομείο ολόκληρη τη νέα διεύθυνση URL.
Αυτό το άρθρο χρησιμοποιεί την αναφορά δείγματος ανάλυσης λιανικής. Εάν θέλετε να συνεχίσετε, μπορείτε να κάνετε λήψη του δείγματος αναφοράς.
Χρησιμοποιείται για παραμέτρους συμβολοσειράς ερωτήματος
Ας υποθέσουμε ότι εργάζεστε στο Power BI Desktop. Θέλετε να δημιουργήσετε μια αναφορά που έχει συνδέσεις σε άλλες αναφορές Power BI, αλλά θέλετε να εμφανίσετε μόνο μερικές από τις πληροφορίες στις άλλες αναφορές. Πρώτα, φιλτράρετε τις αναφορές χρησιμοποιώντας παραμέτρους συμβολοσειράς ερωτήματος και αποθηκεύστε τις διευθύνσεις URL. Στη συνέχεια, δημιουργήστε έναν πίνακα στο Desktop με αυτές τις νέες διευθύνσεις URL αναφορών. Στη συνέχεια, δημοσιεύστε και κοινοποιήστε την αναφορά.
Μια άλλη χρήση των παραμέτρων συμβολοσειράς ερωτήματος είναι για κάποιον που δημιουργεί μια σύνθετη λύση Power BI. Στο DAX, δημιουργεί μια αναφορά που δημιουργεί μια διεύθυνση URL φιλτραρισμένων αναφορών δυναμικά με βάση την επιλογή που κάνει ο πελάτης της στην τρέχουσα αναφορά. Όταν οι πελάτες επιλέξουν τη διεύθυνση URL, βλέπουν μόνο τις προβλεπόμενες πληροφορίες.
Σύνταξη παραμέτρου συμβολοσειράς ερωτήματος για φιλτράρισμα
Με τις παραμέτρους, μπορείτε να φιλτράρετε την αναφορά για μία ή περισσότερες τιμές, ακόμα και αν αυτές οι τιμές περιέχουν κενά διαστήματα ή ειδικούς χαρακτήρες. Η βασική σύνταξη είναι αρκετά απλή. ξεκινήστε με τη διεύθυνση URL της αναφοράς και, στη συνέχεια, προσθέστε τη σύνταξη φίλτρου σε μια συμβολοσειρά ερωτήματος. Μια συμβολοσειρά ερωτήματος σε μια διεύθυνση URL ξεκινά με ένα ερωτηματικό (?), για παράδειγμα:
URL?filter=Table/Field eq 'value'
- Για τα ονόματα πινάκων και πεδίων γίνεται διάκριση πεζών-κεφαλαίων. η τιμή δεν είναι.
- Τα πεδία που είναι κρυφά στην προβολή αναφοράς εξακολουθούν να μπορούν να φιλτραριστούν.
Εάν η παράμετρος φίλτρου δεν είναι η πρώτη παράμετρος στη συμβολοσειρά ερωτήματος, συνδέεται στην προηγούμενη παράμετρο με εμπορικό και (&), για παράδειγμα:
URL?reportId=xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx&pageName=ReportSection&filter=Table/Field eq 'value'
Τύποι πεδίων
Ο τύπος πεδίου μπορεί να είναι αριθμός, ημερομηνία/ώρα ή συμβολοσειρά και ο τύπος που χρησιμοποιείται πρέπει να συμφωνεί με τον τύπο που έχει οριστεί στο μοντέλο σημασιολογίας. Για παράδειγμα, ο καθορισμός μιας στήλης πίνακα τύπου "συμβολοσειρά" δεν λειτουργεί εάν αναζητάτε μια τιμή ημερομηνίας/ώρας ή μια αριθμητική τιμή σε μια στήλη μοντέλου σημασιολογίας που έχει οριστεί ως ημερομηνία, όπως Table/StringColumn eq 1.
- Οι συμβολοσειρές πρέπει να περικλείονται σε μονά εισαγωγικά, όπως στο 'όνομα διευθυντή'.
- Οι αριθμοί δεν απαιτούν καμία ειδική μορφοποίηση. Για λεπτομέρειες, ανατρέξτε στην ενότητα Αριθμητικοί τύποι δεδομένων σε αυτό το άρθρο.
- Ημερομηνίες και ώρες Ανατρέξτε στην ενότητα Τύποι δεδομένων ημερομηνίας σε αυτό το άρθρο.
Εάν εξακολουθεί να σας προκαλεί σύγχυση, συνεχίστε να διαβάζετε και θα την αναλύσουμε.
Φιλτράρισμα σε ένα πεδίο
Ας υποθέσουμε ότι η διεύθυνση URL για την αναφορά μας είναι η εξής.
Επίσης, βλέπουμε στην προηγούμενη απεικόνιση χάρτη ότι έχουμε καταστήματα στη North Carolina. NC είναι η τιμή που αντιπροσωπεύει τη Βόρεια Καρολίνα στο πεδίο Περιφέρεια του πίνακα Κατάστημα . Επομένως, για να φιλτράρουμε την αναφορά ώστε να εμφανίζει μόνο δεδομένα για καταστήματα στην περιοχή "NC", προσαρτάμε αυτήν τη συμβολοσειρά στη διεύθυνση URL:
?filter=Store/Territory eq 'NC'
Η αναφορά μας φιλτράρεται τώρα για τη Βόρεια Καρολίνα. όλες οι απεικονίσεις στην αναφορά εμφανίζουν δεδομένα μόνο για τη Βόρεια Καρολίνα.
Φιλτράρισμα περισσότερων από μία τιμών σε ένα πεδίο
Για να φιλτράρετε περισσότερες από μία τιμές σε ένα μοναδικό πεδίο, χρησιμοποιήστε τον τελεστή in αντί για τον τελεστή and . Η σύνταξη είναι:
URL?filter=Table/Field in ('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 |
μέσα* | συμπεριλαμβανομένου | Ναι | Ναι | Ναι | 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
Table_x0020_Special/_x005B_Column_x0020_Brackets_x005D_ eq '[C]'
Ειδικοί χαρακτήρες σε τιμές
Τα φίλτρα διευθύνσεων URL υποστηρίζουν τους περισσότερους ειδικούς χαρακτήρες σε τιμές πεδίων, αλλά ορισμένοι απαιτούν επίσης κωδικούς διαφυγής. Για παράδειγμα, για να αναζητήσετε έναν χαρακτήρα μονού εισαγωγικού, χρησιμοποιήστε δύο μονά εισαγωγικά ('').
?filter=Table/Name eq 'O''Brien'
Γίνεται:?filter=Table/Name eq 'Lee''s Summit'
Γίνεται:Ο
in
τελεστής υποστηρίζει επίσης αυτήν τη διαφυγή:?filter=Table/Name in ('Lee''s Summit', '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 '张力'.
Σενάρια ενσωμάτωσης
Τα φίλτρα διευθύνσεων URL υποστηρίζονται σε ορισμένα σενάρια ενσωμάτωσης και όχι σε άλλα.
- Υποστηρίζεται η ενσωμάτωση μιας αναφοράς σε ασφαλή πύλη ή τοποθεσία Web .
- Τα φίλτρα διευθύνσεων URL υποστηρίζονται στο Power BI Embedded.
- Το φιλτράρισμα συμβολοσειράς ερωτήματος δεν λειτουργεί με τη Δημοσίευση στο web ή την Εξαγωγή σε PDF.
- Η ενσωμάτωση με το τμήμα web αναφοράς στο SharePoint Online δεν υποστηρίζει φίλτρα διευθύνσεων URL.
- Το Teams δεν επιτρέπει τον καθορισμό μιας διεύθυνσης URL.
Σχετικό περιεχόμενο
Περισσότερες ερωτήσεις; Δοκιμάστε να ρωτήσετε την κοινότητα του Power BI