Τροποποίηση περιβάλλοντος φίλτρου

Ολοκληρώθηκε

Μπορείτε να χρησιμοποιήσετε τη CALCULATE συνάρτηση DAX για να τροποποιήσετε το περιβάλλον φίλτρου στους τύπους σας. Η σύνταξη της συνάρτησης CALCULATE έχει ως εξής:

CALCULATE(<expression>, [[<filter1>], <filter2>]…)

Η συνάρτηση απαιτεί μεταβίβαση παράστασης που επιστρέφει μια ανυσματική τιμή και όσα φίλτρα χρειάζεστε. Η παράσταση μπορεί να είναι μια μέτρηση (η οποία είναι μια επώνυμη παράσταση) ή οποιαδήποτε παράσταση που μπορεί να αξιολογηθεί σε περιβάλλον φίλτρου.

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

Όταν έχετε πολλά φίλτρα, αξιολογούνται χρησιμοποιώντας τον AND λογικό τελεστή, το οποίο σημαίνει ότι όλες οι συνθήκες πρέπει να είναι TRUE ταυτόχρονα.

Σημείωση

Η CALCULATETABLE συνάρτηση DAX εκτελεί ακριβώς την ίδια λειτουργικότητα με τη συνάρτηση, με τη CALCULATE διαφορά ότι τροποποιεί το περιβάλλον φίλτρου που εφαρμόζεται σε μια παράσταση που επιστρέφει ένα αντικείμενο πίνακα. Σε αυτή την εκπαιδευτική ενότητα, οι επεξηγήσεις και τα παραδείγματα χρησιμοποιούν τη CALCULATE συνάρτηση, αλλά να θυμάστε ότι αυτά τα σενάρια μπορούν επίσης να εφαρμοστούν στη CALCULATETABLE συνάρτηση.

Εφαρμογή φίλτρων δυαδικής παράστασης

Ένα φίλτρο δυαδικής παράστασης είναι μια παράσταση που αξιολογείται σε TRUE ή FALSE. Τα φίλτρα δυαδικής τιμής πρέπει να συμμορφώνονται με τους παρακάτω κανόνες:

  • Μπορεί να κάνει αναφορά μόνο σε μία στήλη.
  • Δεν μπορεί να κάνει αναφορά σε μετρήσεις.
  • Δεν μπορούν να χρησιμοποιήσουν συναρτήσεις που σαρώνουν ή επιστρέφουν έναν πίνακα που περιλαμβάνει συναρτήσεις συνάθροισης όπως SUM.

Σε αυτό το παράδειγμα, θα δημιουργήσετε μια μέτρηση. Πρώτα, κάντε λήψη και ανοίξτε το αρχείο Adventure Works DW 2020 M06.pbix. Στη συνέχεια, προσθέστε την ακόλουθη μέτρηση στον πίνακα Πωλήσεις που φιλτράρει τη μέτρηση Έσοδα χρησιμοποιώντας ένα φίλτρο δυαδικής παράστασης για κόκκινα προϊόντα.

Revenue Red = CALCULATE([Revenue], 'Product'[Color] = "Red")

Προσθέστε τη μέτρηση Κόκκινα έσοδα στην απεικόνιση πίνακα που βρέθηκε στη Σελίδα 1 της αναφοράς.

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

Revenue Red or Blue = CALCULATE([Revenue], 'Product'[Color] IN {"Red", "Blue"})

Η παρακάτω μέτρηση φιλτράρει τη μέτρηση Έσοδα με βάση ακριβά προϊόντα. Τα ακριβά προϊόντα είναι εκείνα με τιμή καταλόγου μεγαλύτερη από 1000 δολάρια.

Revenue Expensive Products = CALCULATE([Revenue], 'Product'[List Price] > 1000)

Εφαρμογή φίλτρων παράστασης πίνακα

Ένα φίλτρο παράστασης πίνακα εφαρμόζει ένα αντικείμενο πίνακα ως φίλτρο. Μπορεί να είναι μια αναφορά σε έναν πίνακα μοντέλου, ωστόσο, πιθανώς είναι μια συνάρτηση DAX που επιστρέφει ένα αντικείμενο πίνακα.

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

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

Το παρακάτω παράδειγμα εμφανίζει μια παράσταση φίλτρου πίνακα που χρησιμοποιεί τη FILTER συνάρτηση:

Revenue High Margin Products =
CALCULATE(
    [Revenue],
    FILTER(
        'Product',
        'Product'[List Price] > 'Product'[Standard Cost] * 2
    )
)

Σε αυτό το παράδειγμα, η FILTER συνάρτηση φιλτράρει όλες τις γραμμές του πίνακα Product που βρίσκονται σε περιβάλλον φίλτρου. Κάθε γραμμή για ένα προϊόν, όπου η τιμή καταλόγου του υπερβαίνει το διπλάσιο τυπικό κόστος, εμφανίζεται ως μια γραμμή του φιλτραρισμένου πίνακα. Επομένως, η μέτρηση Έσοδα αξιολογείται για όλα τα προϊόντα που επιστρέφονται από τη FILTER συνάρτηση.

Όλες οι παραστάσεις φίλτρου που μεταβιβάζονται στη CALCULATE συνάρτηση είναι παραστάσεις φίλτρου πίνακα. Μια παράσταση φίλτρου δυαδικής τιμής είναι μια σημειογραφία σε συντομογραφία για τη βελτίωση της εμπειρίας γραφής και ανάγνωσης. Εσωτερικά, το Microsoft Power BI μεταφράζει παραστάσεις φίλτρου δυαδικής τιμής σε παραστάσεις φίλτρου πίνακα, το οποίο είναι πώς μεταφράζει τον ορισμό σας μέτρησης Κόκκινα έσοδα.

Revenue Red =
CALCULATE(
    [Revenue],
    FILTER(
        'Product',
        'Product'[Color] = "Red"
    )
)

Συμπεριφορά φίλτρου

Εμφανίζονται δύο πιθανά τυπικά αποτελέσματα όταν προσθέτετε παραστάσεις φίλτρου στη CALCULATE συνάρτηση:

  • Εάν οι στήλες (ή οι πίνακες) δεν βρίσκονται σε περιβάλλον φίλτρου, τότε θα προστεθούν νέα φίλτρα στο περιβάλλον φίλτρου για την αξιολόγηση της CALCULATE παράστασης.
  • Εάν οι στήλες (ή οι πίνακες) βρίσκονται ήδη σε περιβάλλον φίλτρου, τα υπάρχοντα φίλτρα θα αντικατασταθούν από τα νέα φίλτρα για την αξιολόγηση της CALCULATE παράστασης.

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

Σημείωση

Σε καθένα από τα παραδείγματα, δεν εφαρμόζονται φίλτρα στην απεικόνιση πίνακα.

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

Καθώς δεν εφαρμόζεται φίλτρο στη στήλη Χρώμα στον πίνακα Προϊόν , η αξιολόγηση της μέτρησης προσθέτει ένα νέο φίλτρο στο περιβάλλον φίλτρου. Στην πρώτη γραμμή, η τιμή 2.681.324,79 δολαρίων αφορά κόκκινα προϊόντα που πωλήθηκαν στην περιοχή της Αυστραλίας.

Η εναλλαγή της πρώτης στήλης της απεικόνισης πίνακα από Περιοχή σε Χρώμα θα παράγει ένα διαφορετικό αποτέλεσμα, καθώς η στήλη Χρώμα στον πίνακα Προϊόν βρίσκεται τώρα σε περιβάλλον φίλτρου.

Ο τύπος μέτρησης Κόκκινα έσοδα αξιολογεί τη μέτρηση Έσοδα προσθέτοντας ένα φίλτρο στη στήλη Χρώμα (σε κόκκινο) στον πίνακα Προϊόν . Κατά συνέπεια, σε αυτήν την απεικόνιση που ομαδοποιεί κατά χρώμα, ο τύπος μέτρησης αντικαθιστά το περιβάλλον φίλτρου με ένα νέο φίλτρο.

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