Χρήση συναρτήσεων τροποποιητή φίλτρου
Όταν χρησιμοποιείτε τη συνάρτηση, μπορείτε να μεταβιβάσετε συναρτήσεις τροποποίησης φίλτρου, το οποίο σας επιτρέπει να επιτύχετε περισσότερα από την CALCULATE
προσθήκη φίλτρων μόνο.
Κατάργηση φίλτρων
Χρησιμοποιήστε τη REMOVEFILTERS
συνάρτηση DAX ως μια CALCULATE
παράσταση φίλτρου για να καταργήσετε φίλτρα από το περιβάλλον φίλτρου. Μπορεί να καταργήσει φίλτρα από μία ή περισσότερες στήλες, ή από όλες τις στήλες ενός μοναδικού πίνακα.
Σημείωση
Η REMOVEFILTERS
συνάρτηση είναι σχετικά νέα. Σε προηγούμενες εκδόσεις του DAX, καταργήσατε φίλτρα χρησιμοποιώντας τη ALL
συνάρτηση DAX ή παραλλαγές συμπεριλαμβανομένων των ALLEXCEPT
συναρτήσεων DAX και ALLNOBLANKROW
. Αυτές οι συναρτήσεις συμπεριφέρονται τόσο ως τροποποιητές φίλτρων, όσο και ως συναρτήσεις που επιστρέφουν αντικείμενα πίνακα διακριτών τιμών. Αυτές οι συναρτήσεις αναφέρονται τώρα γιατί πιθανώς θα βρείτε τεκμηρίωση και παραδείγματα τύπων που καταργούν φίλτρα χρησιμοποιώντας τις.
Στο παρακάτω παράδειγμα, θα προσθέσετε μια νέα μέτρηση στον πίνακα Πωλήσεις που αξιολογεί τη μέτρηση Έσοδα , το κάνει όμως καταργώντας φίλτρα από τον πίνακα Περιφέρεια πωλήσεων . Μορφοποιήστε τη μέτρηση ως νόμισμα με δύο δεκαδικά ψηφία.
Revenue Total Region = CALCULATE([Revenue], REMOVEFILTERS('Sales Territory'))
Προσθέστε τώρα τη μέτρηση Συνολικά έσοδα Περιοχής στην απεικόνιση πίνακα που βρίσκεται στη Σελίδα 2 της αναφοράς. Η απεικόνιση πίνακα θα ομαδοποιηθεί κατά τρεις στήλες από τον πίνακα Περιφέρεια πωλήσεων στις γραμμές: Ομάδα, Χώρα και Περιοχή.
Παρατηρήστε ότι κάθε τιμή Συνολικά έσοδα Περιοχής είναι ίδια. Είναι η τιμή των συνολικών εσόδων.
Παρόλο που αυτό το αποτέλεσμα από μόνο του δεν είναι χρήσιμο, όταν χρησιμοποιείται ως παρονομαστής σε μια αναλογία, υπολογίζει ένα ποσοστό του γενικού συνόλου. Επομένως, θα αντικαταστήσετε τώρα τον ορισμό μέτρησης Συνολικά έσοδα Περιοχής με τον παρακάτω ορισμό. (Αυτός ο νέος ορισμός αλλάζει το όνομα μέτρησης και δηλώνει δύο μεταβλητές. Φροντίστε να μορφοποιήσετε τη μέτρηση ως ένα ποσοστό με δύο δεκαδικά ψηφία.)
Revenue % Total Region =
VAR CurrentRegionRevenue = [Revenue]
VAR TotalRegionRevenue =
CALCULATE(
[Revenue],
REMOVEFILTERS('Sales Territory')
)
RETURN
DIVIDE(
CurrentRegionRevenue,
TotalRegionRevenue
)
Επαληθεύστε ότι η απεικόνιση πίνακα εμφανίζει τώρα τις τιμές Συνολικά έσοδα % Περιοχής.
Θα δημιουργήσετε τώρα μια ακόμα μέτρηση, όμως αυτήν τη φορά θα υπολογίσετε την αναλογία εσόδων για μια περιοχή προς τα έσοδα της χώρας της.
Πριν ολοκληρώσετε αυτήν την εργασία, παρατηρήστε ότι η τιμή Συνολικά έσοδα % Περιοχής για την περιοχή Νοτιοδυτικά είναι 22,95 τοις εκατό. Διερευνήστε το περιβάλλον φίλτρου για αυτό το κελί. Αλλάξτε σε προβολή δεδομένων και, στη συνέχεια, στο τμήμα παραθύρου Πεδία , επιλέξτε τον πίνακα Περιφέρεια πωλήσεων .
Εφαρμόστε τα παρακάτω φίλτρα στηλών:
- Ομάδα - Βόρεια Αμερική
- Χώρα - Ηνωμένες Πολιτείες
- Περιοχή - Νοτιοδυτικά
Παρατηρήστε ότι τα φίλτρα μειώνουν τον πίνακα σε μόλις μία γραμμή. Τώρα, καθώς σκέφτεστε τον νέο στόχο σας για να δημιουργήσετε μια αναλογία για τα έσοδα περιοχής προς τα έσοδα της χώρας της, διαγράψτε το φίλτρο από τη στήλη Περιοχή.
Παρατηρήστε ότι υπάρχουν τώρα πέντε γραμμές, κάθε γραμμή ανήκει στη χώρα Ηνωμένες Πολιτείες. Κατά συνέπεια, όταν διαγράφετε τα φίλτρα στήλης Περιοχή, ενώ διατηρείτε φίλτρα στις στήλες Χώρα και Ομάδα, θα έχετε ένα νέο περιβάλλον φίλτρου για τη χώρα της περιοχής.
Στον παρακάτω ορισμό μέτρησης, παρατηρήστε ότι μπορείτε να διαγράψετε ή αφαιρέσετε ένα φίλτρο από μια στήλη. Στη λογική DAX, είναι μια μικρή και διακριτική αλλαγή που πραγματοποιείται στον τύπο μέτρησης Συνολικά έσοδα % Περιοχής : Η REMOVEFILTERS
συνάρτηση καταργεί τώρα φίλτρα από τη στήλη Περιοχή αντί για όλες τις στήλες του πίνακα Περιφέρεια πωλήσεων .
Revenue % Total Country =
VAR CurrentRegionRevenue = [Revenue]
VAR TotalCountryRevenue =
CALCULATE(
[Revenue],
REMOVEFILTERS('Sales Territory'[Region])
)
RETURN
DIVIDE(
CurrentRegionRevenue,
TotalCountryRevenue
)
Προσθέστε τη μέτρηση Συνολικά έσοδα % Χώρας στον πίνακα Πωλήσεις και, στη συνέχεια, μορφοποιήστε ως ένα ποσοστό με δύο δεκαδικά ψηφία. Προσθέστε τη νέα μέτρηση στην απεικόνιση πίνακα.
Παρατηρήστε ότι όλες οι τιμές, με την εξαίρεση εκείνων για τις περιοχές των Ηνωμένων Πολιτειών, είναι 100 τοις εκατό. Ο λόγος είναι ότι, στην Adventure Works, οι Ηνωμένες Πολιτείες έχουν περιοχές, ενώ όλες οι άλλες χώρες δεν έχουν.
Σημείωση
Τα μοντέλα σε μορφή πίνακα δεν υποστηρίζουν ακανόνιστες ιεραρχίες, οι οποίες είναι ιεραρχίες με μεταβλητό βάθος. Επομένως, αποτελεί συνήθη προσέγγιση σχεδίασης η επανάληψη γονικών (ή άλλων στοιχείων) σε χαμηλότερα επίπεδα της ιεραρχίας. Για παράδειγμα, η Αυστραλία δεν έχει περιοχή, επομένως η τιμή χώρας/περιοχής επαναλαμβάνεται ως το όνομα περιοχής. Συνιστάται η αποθήκευση μιας ουσιαστικής τιμής αντί για ΚΕΝΟ.
Το επόμενο παράδειγμα είναι η τελευταία μέτρηση που θα δημιουργήσετε. Προσθέστε τη μέτρηση Συνολικά έσοδα % Ομάδας και, στη συνέχεια, μορφοποιήστε ως ένα ποσοστό με δύο δεκαδικά ψηφία. Έπειτα, προσθέστε τη νέα μέτρηση στην απεικόνιση πίνακα.
Revenue % Total Group =
VAR CurrentRegionRevenue = [Revenue]
VAR TotalGroupRevenue =
CALCULATE(
[Revenue],
REMOVEFILTERS(
'Sales Territory'[Region],
'Sales Territory'[Country]
)
)
RETURN
DIVIDE(
CurrentRegionRevenue,
TotalGroupRevenue
)
Όταν καταργείτε φίλτρα από τις στήλες Περιοχή και Χώρα στον πίνακα Περιφέρεια πωλήσεων , η μέτρηση θα υπολογίζει τα έσοδα περιοχής ως μια αναλογία των εσόδων της ομάδας της.
Διατήρηση φίλτρων
Μπορείτε να χρησιμοποιήσετε τη KEEPFILTERS
συνάρτηση DAX ως μια παράσταση φίλτρου στη CALCULATE
συνάρτηση για να διατηρήσετε φίλτρα.
Για να δείτε πώς θα πραγματοποιήσετε αυτήν την εργασία, μεταβείτε στη Σελίδα 1 της αναφοράς. Στη συνέχεια, τροποποιήστε τον ορισμό μέτρησης Κόκκινα έσοδα για να χρησιμοποιήσετε τη KEEPFILTERS
συνάρτηση.
Revenue Red =
CALCULATE(
[Revenue],
KEEPFILTERS('Product'[Color] = "Red")
)
Στην απεικόνιση πίνακα, παρατηρήστε ότι υπάρχει μόνο μία τιμή Κόκκινα έσοδα. Ο λόγος είναι ότι η παράσταση φίλτρου Boolean διατηρεί υπάρχοντα φίλτρα στη στήλη Χρώμα στον πίνακα Προϊόν . Ο λόγος για τον οποίο τα χρώματα εκτός του κόκκινου είναι ΚΕΝΑ είναι γιατί τα περιβάλλοντα φίλτρου και οι παραστάσεις φίλτρου συνδυάζονται για αυτά τα δύο φίλτρα. Το μαύρο και το κόκκινο χρώμα διασταυρώνονται και επειδή και τα δύο δεν μπορεί να είναι TRUE
ταυτόχρονα, η παράσταση δεν φιλτράρεται από γραμμές προϊόντος. Είναι δυνατό μόνο αμφότερα τα κόκκινα φίλτρα να είναι TRUE
ταυτόχρονα, το οποίο εξηγεί γιατί εμφανίζεται μία τιμή Κόκκινα έσοδα .
Χρήση ανενεργών σχέσεων
Ένα ανενεργό μοντέλο σχέσης μπορεί να μεταδίδει φίλτρα μόνο όταν η USERELATIONSHIP
συνάρτηση DAX μεταβιβάζεται ως παράσταση φίλτρου στη CALCULATE
συνάρτηση. Όταν χρησιμοποιείτε αυτήν τη συνάρτηση για να αλληλεπιδράσετε μια ανενεργή σχέση, η ενεργή σχέση θα γίνει αυτόματα ανενεργή.
Εξετάστε ένα παράδειγμα ενός ορισμού μέτρησης που χρησιμοποιεί μια ανενεργή σχέση για να υπολογίσετε τη μέτρηση Έσοδα κατά τις ημερομηνίες αποστολής:
Revenue Shipped =
CALCULATE (
[Revenue],
USERELATIONSHIP('Date'[DateKey], Sales[ShipDateKey])
)
Τροποποίηση συμπεριφοράς σχέσης
Μπορείτε να τροποποιήσετε τη συμπεριφορά σχέσης μοντέλου όταν μια παράσταση αξιολογείται μεταβιβάζοντας τη CROSSFILTER
συνάρτηση DAX ως μια παράσταση φίλτρου στη CALCULATE
συνάρτηση. Είναι μια προηγμένη δυνατότητα.
Η CROSSFILTER
συνάρτηση μπορεί να τροποποιήσει κατευθύνσεις φίλτρου (από αμφίδρομες σε μονές ή από μονή σε αμφίδρομες), ακόμα και να απενεργοποιήσει μια σχέση.