ΥΠΟΛΟΓΊΖΩ
Ισχύει για:Υπολογιζόμενη στήληΥπολογιζόμενος πίνακαςΜέτρηση υπολογισμού απεικόνισης
Αξιολογεί μια παράσταση σε ένα τροποποιημένο περιβάλλον φίλτρου.
Σημείωση
Υπάρχει επίσης η συνάρτηση
Σύνταξη
CALCULATE(<expression>[, <filter1> [, <filter2> [, …]]])
Παραμέτρους
Όρος | Ορισμός |
---|---|
expression |
Η παράσταση προς αξιολόγηση. |
filter1, filter2,… |
(Προαιρετικό) Δυαδικές παραστάσεις ή παραστάσεις πίνακα που ορίζουν φίλτρα ή συναρτήσεις τροποποιητή φίλτρου. |
Η παράσταση που χρησιμοποιείται ως η πρώτη παράμετρος είναι ουσιαστικά η ίδια με μια μέτρηση.
Τα φίλτρα μπορεί να είναι:
- Παραστάσεις φίλτρου δυαδικής τιμής
- Παραστάσεις φίλτρου πίνακα
- Συναρτήσεις τροποποίησης φίλτρου
Όταν υπάρχουν πολλά φίλτρα, μπορούν να αξιολογηθούν χρησιμοποιώντας τον λογικό τελεστή AND (&&
) λογικό τελεστή, που σημαίνει ότι όλες οι συνθήκες πρέπει να είναι TRUE
ή από τον λογικό τελεστή OR (||
), που σημαίνει ότι οποιαδήποτε συνθήκη μπορεί να είναι true.
Παραστάσεις φίλτρου δυαδικής τιμής
Ένα φίλτρο δυαδικής παράστασης είναι μια παράσταση που αξιολογείται ως TRUE
ή FALSE
. Υπάρχουν διάφοροι κανόνες με τους οποίους πρέπει να συμμορφώνονται:
- Μπορούν να αναφέρουν στήλες από έναν μοναδικό πίνακα.
- Δεν μπορούν να αναφέρουν μετρήσεις.
- Δεν μπορούν να χρησιμοποιήσουν μια ένθετες συνάρτηση CALCULATE.
Ξεκινώντας από την έκδοση Σεπτεμβρίου 2021 του Power BI Desktop, ισχύουν επίσης τα εξής:
- Δεν μπορούν να χρησιμοποιήσουν συναρτήσεις που σαρώνουν ή επιστρέφουν έναν πίνακα, εκτός εάν διαβιβαάζονται ως ορίσματα σε συναρτήσεις συνάθροισης.
- Οι μπορούν να περιέχουν μια συνάρτηση συνάθροισης που επιστρέφει μια ανυσματική τιμή. Για παράδειγμα
Total sales on the last selected date = CALCULATE ( SUM ( Sales[Sales Amount] ), 'Sales'[OrderDateKey] = MAX ( 'Sales'[OrderDateKey] ) )
Παράσταση φίλτρου πίνακα
Ένα φίλτρο παράστασης πίνακα εφαρμόζει ένα αντικείμενο πίνακα ως φίλτρο. Μπορεί να είναι μια αναφορά σε έναν πίνακα μοντέλου, αλλά πιθανότατα είναι μια συνάρτηση που επιστρέφει ένα αντικείμενο πίνακα. Μπορείτε να χρησιμοποιήσετε τη συνάρτηση FILTER για να εφαρμόσετε σύνθετες συνθήκες φιλτραρίσματος, συμπεριλαμβανομένων εκείνων που δεν μπορούν να καθοριστούν από μια δυαδική παράσταση φίλτρου.
Συναρτήσεις τροποποίησης φίλτρου
Οι συναρτήσεις τροποποιητή φίλτρου σάς επιτρέπουν να κάνετε περισσότερα από την απλή προσθήκη φίλτρων. Σας παρέχουν πρόσθετο έλεγχο κατά την τροποποίηση του περιβάλλοντος φίλτρου.
Λειτουργία | Σκοπός |
---|---|
|
Καταργήστε όλα τα φίλτρα ή τα φίλτρα από μία ή περισσότερες στήλες ενός πίνακα ή από όλες τις στήλες ενός μοναδικού πίνακα. |
ΟΛΑ1, ALLEXCEPT , ALLNOBLANKROW | Καταργήστε τα φίλτρα από μία ή περισσότερες στήλες ή από όλες τις στήλες ενός μοναδικού πίνακα. |
KEEPFILTERS | Προσθέστε φίλτρο χωρίς να καταργήσετε υπάρχοντα φίλτρα στις ίδιες στήλες. |
|
Ενεργοποιήστε μια ανενεργή σχέση μεταξύ σχετικών στηλών, όπου η ενεργή σχέση θα γίνει αυτόματα ανενεργή. |
|
Τροποποιήστε την κατεύθυνση του φίλτρου (από αμφίδρομο σε μονή ή από μονή σε αμφίδρομες) ή απενεργοποιήστε μια σχέση. |
1 συνάρτηση ALL και οι παραλλαγές της συμπεριφέρονται τόσο ως τροποποιητές φίλτρων όσο και ως συναρτήσεις που επιστρέφουν αντικείμενα πίνακα. Εάν η συνάρτηση REMOVEFILTERS υποστηρίζεται από το εργαλείο σας, είναι προτιμότερο να την χρησιμοποιήσετε για να καταργήσετε φίλτρα.
Τιμή επιστροφής
Η τιμή που είναι το αποτέλεσμα της παράστασης.
Παρατηρήσεις
Όταν παρέχονται παραστάσεις φίλτρου, η συνάρτηση CALCULATE τροποποιεί το περιβάλλον φίλτρου για να αξιολογήσει την παράσταση. Για κάθε παράσταση φίλτρου, υπάρχουν δύο πιθανά τυπικά αποτελέσματα όταν η παράσταση φίλτρου δεν αναδιπλώνεται στη συνάρτηση KEEPFILTERS:
- Εάν οι στήλες (ή οι πίνακες) δεν βρίσκονται στο περιβάλλον φίλτρου, τότε θα προστεθούν νέα φίλτρα στο περιβάλλον φίλτρου για την αξιολόγηση της παράστασης.
- Εάν οι στήλες (ή οι πίνακες) βρίσκονται ήδη στο περιβάλλον φίλτρου, τα υπάρχοντα φίλτρα θα αντικατασταθούν από τα νέα φίλτρα για την αξιολόγηση της παράστασης CALCULATE.
Η συνάρτηση CALCULATE που χρησιμοποιείται χωρίς φίλτρα επιτυγχάνει μια συγκεκριμένη απαίτηση. Αλλάζει το περιβάλλον γραμμής σε περιβάλλον φίλτρου. Απαιτείται όταν μια παράσταση (όχι μια μέτρηση μοντέλου) που συνοψίζει δεδομένα μοντέλου πρέπει να αξιολογηθεί σε περιβάλλον γραμμής. Αυτό το σενάριο μπορεί να συμβεί σε έναν τύπο υπολογιζόμενης στήλης ή όταν αξιολογείται μια παράσταση σε μια συνάρτηση επαναλήπτη. Σημειώστε ότι όταν χρησιμοποιείται μια μέτρηση μοντέλου σε περιβάλλον γραμμής, η μετάβαση περιβάλλοντος είναι αυτόματη.
Αυτή η συνάρτηση δεν υποστηρίζεται για χρήση σε λειτουργία DirectQuery όταν χρησιμοποιείται σε υπολογιζόμενες στήλες ή σε κανόνες ασφάλειας σε επίπεδο γραμμών (RLS).
Παραδείγματα
Ο ακόλουθος ορισμός μέτρησης πίνακα Πωλήσεις παράγει ένα αποτέλεσμα εσόδων, αλλά μόνο για προϊόντα που έχουν μπλε χρώμα.
Παραδείγματα σε αυτό το άρθρο μπορούν να χρησιμοποιηθούν με το δείγμα μοντέλου Adventure Works DW 2020 Power BI Desktop. Για να λάβετε το μοντέλο, ανατρέξτε δείγμα μοντέλου DAX.
Blue Revenue =
CALCULATE(
SUM(Sales[Sales Amount]),
'Product'[Color] = "Blue"
)
Κατηγορία | Ποσό πωλήσεων | Μπλε έσοδα |
---|---|---|
Εξαρτήματα | $1,272,057.89 | $165,406.62 |
Ποδήλατα | $94,620,526.21 | $8,374,313.88 |
Ρουχισμός | $2,117,613.45 | $259,488.37 |
Στοιχεία | $11,799,076.66 | $803,642.10 |
Σύνολο | $109.809.274,20 | $9.602.850.97 |
Η συνάρτηση CALCULATE αξιολογεί το άθροισμα του πίνακα Salesστήλη Sales Amount σε ένα τροποποιημένο περιβάλλον φίλτρου. Προστίθεται ένα νέο φίλτρο στον πίνακα productστήλη Color ή το φίλτρο αντικαθιστά οποιοδήποτε φίλτρο έχει εφαρμοστεί ήδη στη στήλη.
Ο ακόλουθος ορισμός μέτρησης πίνακα Πωλήσεις παράγει μια αναλογία πωλήσεων επί των πωλήσεων για όλα τα κανάλια πωλήσεων.
Κανάλι | Ποσό πωλήσεων | Έσοδα % Σύνολο καναλιού |
---|---|---|
Διαδίκτυο | $29,358,677.22 | 26,74% |
Μεταπωλητής | $80,450,596.98 | 73,26% |
Σύνολο | $109.809.274,20 | 100,00% |
Revenue % Total Channel =
DIVIDE(
SUM(Sales[Sales Amount]),
CALCULATE(
SUM(Sales[Sales Amount]),
REMOVEFILTERS('Sales Order'[Channel])
)
)
Η συνάρτηση DIVIDE διαιρεί μια παράσταση που αθροίζει τον πίνακα SalesSales Amount τιμή στήλης (στο περιβάλλον φίλτρου) με την ίδια παράσταση σε ένα τροποποιημένο περιβάλλον φίλτρου. Είναι η συνάρτηση CALCULATE που τροποποιεί το περιβάλλον φίλτρου χρησιμοποιώντας τη συνάρτηση REMOVEFILTERS, η οποία είναι μια συνάρτηση τροποποίησης φίλτρου. Καταργεί τα φίλτρα από τον πίνακα Sales Orderστήλη Channel.
Ο ακόλουθος ορισμός υπολογιζόμενης στήλης πίνακα Customer ταξινομεί τους πελάτες σε μια κλάση αφοσίωσης. Είναι ένα πολύ απλό σενάριο: Όταν τα έσοδα που παράγονται από τον πελάτη είναι λιγότερα από 2500 δολάρια, ταξινομούνται ως Low; διαφορετικά, βρίσκονται High.
Customer Segment =
IF(
CALCULATE(SUM(Sales[Sales Amount]), ALLEXCEPT(Customer, Customer[CustomerKey])) < 2500,
"Low",
"High"
)
Σε αυτό το παράδειγμα, το περιβάλλον γραμμής μετατρέπεται σε περιβάλλον φίλτρου. Είναι γνωστό ως μετάβαση περιβάλλοντος. Η συνάρτηση
Σχετικό περιεχόμενο
περιβάλλοντος φίλτρου
περιβάλλοντος γραμμής
συνάρτησης