Κοινή χρήση μέσω


CALCULATETABLE

Ισχύει για: Υπολογισμός απεικόνισης υπολογιζόμενης στήλης υπολογιζόμενου πίνακα Μέτρηση

Αξιολογεί μια παράσταση πίνακα σε ένα τροποποιημένο περιβάλλον φίλτρου.

Σημείωμα

Υπάρχει επίσης η συνάρτηση CALCULATE . Εκτελεί ακριβώς την ίδια λειτουργικότητα, εκτός από την τροποποίηση του περιβάλλοντος φίλτρου που εφαρμόζεται σε μια παράσταση που επιστρέφει μια ανυσματική τιμή.

Σύνταξη

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

Παράμετροι

Όρος Ορισμός
έκφραση Η παράσταση πίνακα προς αξιολόγηση.
filter1, filter2,... (Προαιρετικό) Δυαδικές παραστάσεις ή παραστάσεις πίνακα που ορίζουν φίλτρα ή συναρτήσεις τροποποιητή φίλτρου.

Η παράσταση που χρησιμοποιείται ως η πρώτη παράμετρος πρέπει να είναι ένας πίνακας μοντέλου ή μια συνάρτηση που επιστρέφει έναν πίνακα.

Τα φίλτρα μπορεί να είναι:

  • Παραστάσεις φίλτρου δυαδικής τιμής
  • Παραστάσεις φίλτρου πίνακα
  • Συναρτήσεις τροποποίησης φίλτρου

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

Παραστάσεις φίλτρου δυαδικής τιμής

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

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

Ξεκινώντας από την έκδοση Σεπτεμβρίου 2021 του Power BI Desktop, ισχύουν επίσης τα εξής:

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

Παράσταση φίλτρου πίνακα

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

Συναρτήσεις τροποποίησης φίλτρου

Οι συναρτήσεις τροποποιητή φίλτρου σάς επιτρέπουν να κάνετε περισσότερα από την απλή προσθήκη φίλτρων. Σας παρέχουν πρόσθετο έλεγχο κατά την τροποποίηση του περιβάλλοντος φίλτρου.

Function Σκοπός
ΚΑΤΆΡΓΗΣΗ ΦΊΛΤΡΩΝ Καταργήστε όλα τα φίλτρα ή τα φίλτρα από μία ή περισσότερες στήλες ενός πίνακα ή από όλες τις στήλες ενός μοναδικού πίνακα.
ALL 1, ALLEXCEPT, ALLNOBLANKROW Καταργήστε τα φίλτρα από μία ή περισσότερες στήλες ή από όλες τις στήλες ενός μοναδικού πίνακα.
KEEPFILTERS Προσθέστε φίλτρο χωρίς να καταργήσετε υπάρχοντα φίλτρα στις ίδιες στήλες.
USERELATIONSHIP Ενεργοποιήστε μια ανενεργή σχέση μεταξύ σχετικών στηλών, όπου η ενεργή σχέση θα γίνει αυτόματα ανενεργή.
CROSSFILTER Τροποποιήστε την κατεύθυνση του φίλτρου (από αμφίδρομο σε μονή ή από μονή σε αμφίδρομες) ή απενεργοποιήστε μια σχέση.

1 Η συνάρτηση ALL και οι παραλλαγές της συμπεριφέρονται τόσο ως τροποποιητές φίλτρων όσο και ως συναρτήσεις που επιστρέφουν αντικείμενα πίνακα. Εάν η συνάρτηση REMOVEFILTERS υποστηρίζεται από το εργαλείο σας, είναι προτιμότερο να την χρησιμοποιήσετε για να καταργήσετε φίλτρα.

Επιστρεφόμενη αξία

Ένας πίνακας τιμών.

Παρατηρήσεις

  • Όταν παρέχονται παραστάσεις φίλτρου, η συνάρτηση CALCULATETABLE τροποποιεί το περιβάλλον φίλτρου για να αξιολογήσει την παράσταση. Για κάθε παράσταση φίλτρου, υπάρχουν δύο πιθανά τυπικά αποτελέσματα όταν η παράσταση φίλτρου δεν αναδιπλώνεται στη συνάρτηση KEEPFILTERS:

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

Παράδειγμα

Το παρακάτω παράδειγμα χρησιμοποιεί τη συνάρτηση CALCULATETABLE για να λάβει το άθροισμα των πωλήσεων internet για το 2006. Αυτή η τιμή χρησιμοποιείται αργότερα για τον υπολογισμό της αναλογίας των πωλήσεων Internet σε σύγκριση με όλες τις πωλήσεις για το έτος 2006.

Ο παρακάτω τύπος:

= SUMX(
    CALCULATETABLE(
        'InternetSales_USD',
        'DateTime'[CalendarYear] = 2006
    ),
    [SalesAmount_USD]
)  

Έχει ως αποτέλεσμα τον παρακάτω πίνακα:

Ετικέτες γραμμών Internet SalesAmount_USD CalculateTable 2006 Internet Sales Αναλογία πωλήσεων Internet το 2006
2005 $2,627,031.40 $5,681,440.58 0,46
2006 $5,681,440.58 $5,681,440.58 1,00
2007 $8,705,066.67 $5,681,440.58 1.53
2008 $9,041,288.80 $5,681,440.58 1.59
Γενικό σύνολο $26,054,827.45 $5,681,440.58 4.59