Εκτελέστε μετάβαση περιβάλλοντος
Τι συμβαίνει όταν μια έκφραση μέτρου ή μέτρου αξιολογείται εντός του περιβάλλοντος της γραμμής; Αυτό το σενάριο μπορεί να συμβεί σε έναν υπολογισμένο τύπο στήλης ή όταν αξιολογείται μια έκφραση σε μια συνάρτηση επαναλήπτη.
Στο παρακάτω παράδειγμα, θα προσθέσετε μια υπολογιζόμενη στήλη στον πίνακα Πελάτες για να ταξινομήσετε τους πελάτες σε μια κατηγορία αφοσίωσης. Το σενάριο είναι απλό: Όταν τα έσοδα που παράγονται από τον πελάτη είναι μικρότερα από $2500, ο πελάτης ταξινομείται ως Χαμηλό. διαφορετικά ταξινομούνται ως Υψηλό.
Customer Segment =
VAR CustomerRevenue = SUM(Sales[Sales Amount])
RETURN
IF(CustomerRevenue < 2500, "Low", "High")
Ενεργοποίηση Σελίδα 4 της αναφοράς, προσθέστε τη στήλη Customer τμήμα ως το υπόμνημα του γραφήματος πίτας.
Παρατηρήστε ότι υπάρχει μόνο μία τιμή Customer τμήμα . Ο λόγος είναι επειδή ο υπολογισμένος τύπος στήλης παράγει ένα εσφαλμένο αποτέλεσμα: στον πελάτη Έκαστο εκχωρείται η τιμή Υψηλό επειδή η έκφραση SUM(Sales[Sales Amount])
δεν είναι αξιολογούνται σε ένα πλαίσιο φίλτρου. Συνεπώς, κάθε πελάτης αξιολογείται με βάση το άθροισμα κάθεΠωλήσεις Ποσό αξία στήλης στην Πωλήσεις πίνακας.
Για να επιβληθεί η αξιολόγηση της SUM(Sales[Sales Amount])
έκφρασης για κάθε πελάτη, πρέπει να πραγματοποιηθεί μια μετάβαση περιβάλλοντος που εφαρμόζει τις τιμές της στήλης περιβάλλοντος της γραμμής στο περιβάλλον φιλτραρίσματος. Μπορείτε να ολοκληρώσετε αυτήν τη μετάβαση χρησιμοποιώντας τη συνάρτηση CALCULATE
χωρίς να περάσετε σε εκφράσεις φίλτρου.
Τροποποιήστε τον υπολογισμένο ορισμό της στήλης έτσι ώστε να παράγει το σωστό αποτέλεσμα.
Customer Segment =
VAR CustomerRevenue = CALCULATE(SUM(Sales[Sales Amount]))
RETURN
IF(CustomerRevenue < 2500, "Low", "High")
Στην απεικόνιση του γραφήματος πίτας προσθέστε τη νέα υπολογιζόμενη στήλη στο πηγάδι Legend, επαληθεύστε ότι τώρα εμφανίζονται δύο τμήματα πίτας.
Σε αυτήν την περίπτωση, η συνάρτηση CALCULATE
εφαρμόζει τιμές περιβάλλοντος σειρών ως φίλτρα, γνωστές ως μετάβαση περιβάλλοντος. Για να είμαστε ακριβείς, η διαδικασία δεν λειτουργεί με αυτόν τον τρόπο όταν υπάρχει μια μοναδική στήλη στο τραπέζι. Όταν μια μοναδική στήλη βρίσκεται στον πίνακα, χρειάζεται μόνο να εφαρμόσετε ένα φίλτρο σε αυτήν τη στήλη για να πραγματοποιηθεί η μετάβαση. Σε αυτήν την περίπτωση, Power BI εφαρμόζει ένα φίλτρο στη στήλη CustomerKey για την τιμή στο περιβάλλον της γραμμής.
Εάν αναφέρετε μέτρα σε μια έκφραση που αξιολογείται στο πλαίσιο της γραμμής, η μετάβαση περιβάλλοντος είναι αυτόματη. Επομένως, δεν χρειάζεται να μεταβιβάσετε αναφορές μετρήσεων στη συνάρτηση CALCULATE
.
Τροποποιήστε τον υπολογισμένο ορισμό της στήλης, ο οποίος αναφέρεται στο μέτρο Έσοδα , και παρατηρήστε ότι συνεχίζει να παράγει το σωστό αποτέλεσμα.
Customer Segment =
VAR CustomerRevenue = [Revenue]
RETURN
IF(CustomerRevenue < 2500, "Low", "High")
Τώρα, μπορείτε να συμπληρώσετε τον τύπο μέτρησης Επιτροπή πωλήσεων . Για να δημιουργήσετε ένα σύνολο, πρέπει να χρησιμοποιήσετε μια συνάρτηση επαναλήπτη για επανάληψη σε όλες τις περιοχές στο περιβάλλον φίλτρου. Η έκφραση της συνάρτησης iterator πρέπει να χρησιμοποιεί τη συνάρτηση CALCULATE
για να μεταφέρει το περιβάλλον της γραμμής στο περιβάλλον φίλτρου. Λάβετε υπόψη ότι δεν χρειάζεται πλέον να ελέγχει εάν μια τιμή στήλης Country στον πίνακα Περιοχή πωλήσεων είναι σε φίλτρο πλαίσιο επειδή είναι γνωστό ότι φιλτράρεται από μία χώρα (επειδή επαναλαμβάνεται πάνω από τις περιοχές στο πλαίσιο φίλτρου και μια περιοχή ανήκει σε μία μόνο χώρα).
Μεταβείτε στη Σελίδα 3 της αναφοράς και, στη συνέχεια, τροποποιήστε τον ορισμό του μέτρου Επιτροπή πωλήσεων για να χρησιμοποιήσετε το SUMX
Λειτουργία επαναλήπτη:
Sales Commission =
SUMX(
VALUES('Sales Territory'[Region]),
CALCULATE(
[Revenue]
* IF(
VALUES('Sales Territory'[Country]) = "United States",
0.15,
0.1
)
)
)
Η απεικόνιση πίνακα εμφανίζει τώρα μια συνολική προμήθεια πωλήσεων για όλες τις περιοχές.