CALCULATE
Ισχύει για:Υπολογιζόμενη στήληΥπολογιζόμενος πίνακαςMeasureΥπολογισμός απεικόνισης
Αξιολογεί μια παράσταση σε ένα τροποποιημένο filter περιβάλλον.
Σημείωση
Υπάρχει επίσης η συνάρτηση CALCULATETABLE. Εκτελεί ακριβώς την ίδια λειτουργικότητα except τροποποιεί το filter περιβάλλον που εφαρμόζεται σε μια παράσταση που επιστρέφει ένα αντικείμενο πίνακα .
Σύνταξη
CALCULATE(<expression>[, <filter1> [, <filter2> [, …]]])
Παραμέτρους
Όρος | Ορισμός |
---|---|
expression |
Η παράσταση προς αξιολόγηση. |
filter1, filter2,… |
(Προαιρετικό) Οι δυαδικές παραστάσεις or παραστάσεις πίνακα που ορίζουν filters, orfilter συναρτήσεις τροποποιητή. |
Η παράσταση που χρησιμοποιείται ως η παράμετρος first είναι ουσιαστικά ίδια με μια measure.
Filters μπορεί να είναι:
- Δυαδικές filter παραστάσεις
- Παραστάσεις filter πίνακα
- Filter συναρτήσεων τροποποίησης
Όταν υπάρχουν πολλές filters, μπορούν να αξιολογηθούν χρησιμοποιώντας τον AND (&&
) λογικό τελεστή, που σημαίνει ότι οι συνθήκες all πρέπει να είναι TRUE
, or από τον λογικό τελεστή OR (||
), που σημαίνει ότι κάθε συνθήκη μπορεί να είναι true.
Δυαδικές filter παραστάσεις
Μια δυαδική παράσταση filter είναι μια παράσταση που αξιολογείται ως TRUE
orFALSE
. Υπάρχουν διάφοροι κανόνες με τους οποίους πρέπει να συμμορφώνονται:
- Μπορούν να αναφέρουν στήλες από έναν μοναδικό πίνακα.
- Δεν μπορούν να αναφέρουν μετρήσεις.
- Δεν μπορούν να χρησιμοποιήσουν μια ένθετης συνάρτησης CALCULATE.
Ξεκινώντας από την έκδοση Σεπτεμβρίου 2021 του Power BI Desktop, ισχύουν επίσης τα εξής:
- Δεν μπορούν να χρησιμοποιήσουν συναρτήσεις που σαρώνουν or επιστρέφουν έναν πίνακα, εκτός εάν διαβιβαάζονται ως ορίσματα σε συναρτήσεις συνάθροισης.
- Οι μπορούν να περιέχουν μια συνάρτηση συνάθροισης που επιστρέφει μια ανυσματική value. Για παράδειγμα
Total sales on the last selected date = CALCULATE ( SUM ( Sales[Sales Amount] ), 'Sales'[OrderDateKey] = MAX ( 'Sales'[OrderDateKey] ) )
Παράσταση filter πίνακα
Μια παράσταση πίνακα filter εφαρμόζει ένα αντικείμενο πίνακα ως filter. Μπορεί να είναι μια αναφορά σε έναν πίνακα μοντέλου, αλλά πιθανότατα είναι μια συνάρτηση που επιστρέφει ένα αντικείμενο πίνακα. Μπορείτε να χρησιμοποιήσετε τη συνάρτηση FILTER για να εφαρμόσετε σύνθετες συνθήκες filter, συμπεριλαμβανομένων εκείνων που δεν μπορούν να καθοριστούν από μια δυαδική filter παράσταση.
συναρτήσεις Filter τροποποιητή
Filter συναρτήσεις τροποποιητή σάς επιτρέπουν να κάνετε περισσότερα από το να προσθέτετε απλώς filters. Σας παρέχουν πρόσθετο έλεγχο κατά την τροποποίηση filter περιβάλλοντος.
Λειτουργία | Σκοπός |
---|---|
REMOVEFILTERS | Καταργήστε allfilters, orfilters από μία or περισσότερες στήλες ενός πίνακα, or από all στήλες ενός μοναδικού πίνακα. |
ALL 1, ALLEXCEPT, ALLNOBLANKROW | Καταργήστε filters από μία or περισσότερες στήλες, or από all στήλες ενός μοναδικού πίνακα. |
KEEPFILTERS | Προσθέστε filter χωρίς να καταργήσετε υπάρχουσες filters στις ίδιες στήλες. |
USERELATIONSHIP | Ενεργοποιήστε μια ανενεργή σχέση μεταξύ related στηλών, στην οποία περίπτωση η ενεργή σχέση θα γίνει αυτόματα ανενεργή. |
CROSSFILTER | Τροποποιήστε filter κατεύθυνση (από αμφίδρομες σε μονή, or από μονή σε αμφίδρομες) or απενεργοποιήσετε μια σχέση. |
1 Η συνάρτηση ALLand οι παραλλαγές της συμπεριφέρονται τόσο ως τροποποιητές όσο filterand ως συναρτήσεις που επιστρέφουν αντικείμενα πίνακα. If η συνάρτηση REMOVEFILTERS υποστηρίζεται από το εργαλείο σας, είναι προτιμότερο να την χρησιμοποιήσετε για να καταργήσετε filters.
Επιστροφή value
Το value που είναι το αποτέλεσμα της παράστασης.
Παρατηρήσεις
Όταν παρέχονται filter παραστάσεις, η συνάρτηση CALCULATE τροποποιεί το περιβάλλον filter για να evaluate την παράσταση. Για κάθε παράσταση filter, υπάρχουν δύο πιθανά τυπικά αποτελέσματα όταν η παράσταση filter είναι not περιτυλιμένη στη συνάρτηση KEEPFILTERS:
- If οι στήλες (or πίνακες) δεν βρίσκονται στο filter περιβάλλον, θα προστεθούν νέες filters στο filter περιβάλλον για να evaluate την παράσταση.
- If οι στήλες (or πίνακες) βρίσκονται ήδη στο περιβάλλον filter, οι υπάρχουσες filters θα αντικατασταθούν από τη νέα filters για να evaluate την παράσταση CALCULATE.
Η συνάρτηση CALCULATE που χρησιμοποιείται χωρίς filters επιτυγχάνει μια συγκεκριμένη απαίτηση. Αλλάζει το περιβάλλον γραμμής σε filter περιβάλλον. Απαιτείται όταν μια παράσταση (not ένα μοντέλο measure) που συνοψίζει δεδομένα μοντέλου πρέπει να αξιολογηθεί σε περιβάλλον γραμμής. Αυτό το σενάριο μπορεί να συμβεί σε έναν τύπο υπολογιζόμενης στήλης or όταν αξιολογείται μια παράσταση σε μια συνάρτηση επαναλήπτη. Σημειώστε ότι όταν χρησιμοποιείται ένα measure μοντέλου σε περιβάλλον γραμμής, η μετάβαση περιβάλλοντος είναι αυτόματη.
Αυτή η συνάρτηση υποστηρίζεται not για χρήση σε λειτουργία DirectQuery όταν χρησιμοποιείται σε υπολογιζόμενες στήλες or κανόνες ασφάλειας σε επίπεδο γραμμών (RLS).
Παραδείγματα
Ο ακόλουθος πίνακας sales ο ορισμός measure παράγει ένα αποτέλεσμα εσόδων, αλλά μόνο για προϊόντα που έχουν το μπλε χρώμα.
Παραδείγματα σε αυτό το άρθρο μπορούν να χρησιμοποιηθούν με το μοντέλο sample Adventure Works DW 2020 Power BI Desktop. Για να λάβετε το μοντέλο, ανατρέξτε DAXsample μοντέλο.
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 |
Η συνάρτηση
Ο παρακάτω πίνακας "Πωλήσεις" measure ορισμός παράγει μια αναλογία πωλήσεων επί των πωλήσεων για all κανάλια πωλήσεων.
Κανάλι | Ποσό πωλήσεων | Έσοδα % Σύνολο καναλιού |
---|---|---|
Διαδίκτυο | $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 διαιρεί μια παράσταση που αθροίζει τον πίνακα Salesvalue (στο filter περιβάλλον) με την ίδια παράσταση σε ένα τροποποιημένο filter περιβάλλον. Είναι η συνάρτηση CALCULATE που τροποποιεί το περιβάλλον filter χρησιμοποιώντας τη συνάρτηση REMOVEFILTERS, η οποία είναι μια συνάρτηση τροποποιητή filter. Καταργεί filters από τον πίνακα Sales Order πίνακα στήλη Channel.
Ο ακόλουθος ορισμός υπολογιζόμενης στήλης πίνακα Customer ταξινομεί τους πελάτες σε μια κλάση αφοσίωσης. Είναι ένα πολύ απλό σενάριο: Όταν τα έσοδα που παράγονται από τον πελάτη είναι λιγότερα από 2500 δολάρια, ταξινομούνται ως Low; διαφορετικά, βρίσκονται High.
Customer Segment =
IF(
CALCULATE(SUM(Sales[Sales Amount]), ALLEXCEPT(Customer, Customer[CustomerKey])) < 2500,
"Low",
"High"
)
Σε αυτό το παράδειγμα, το περιβάλλον γραμμής μετατρέπεται σε περιβάλλον filter. Είναι γνωστό ως μετάβαση περιβάλλοντος. Η συνάρτηση
Related περιεχομένου
Συνάρτηση περιβάλλοντος FilterγραμμήςCALCULATETABLE συναρτήσειςFilter περιβάλλοντος