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


KEEPFILTERS

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

Τροποποιεί τον τρόπο με τον οποίο εφαρμόζονται τα φίλτρα κατά την αξιολόγηση μιας συνάρτησης CALCULATE ή CALCULATETABLE.

Σύνταξη

KEEPFILTERS(<expression>)  

Παράμετροι

Όρος Ορισμός
έκφραση Οποιαδήποτε παράσταση.

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

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

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

  • Χρησιμοποιείτε την KEEPFILTERS μέσα στις συναρτήσεις περιβάλλοντος CALCULATE και CALCULATETABLE, για να παρακάμψετε την τυπική συμπεριφορά αυτών των συναρτήσεων.

  • Από προεπιλογή, τα ορίσματα φίλτρου σε συναρτήσεις όπως η CALCULATE χρησιμοποιούνται ως περιβάλλον για την αξιολόγηση της παράστασης και, ως τέτοια ορίσματα φίλτρου για την CALCULATE αντικαθιστούν όλα τα υπάρχοντα φίλτρα στις ίδιες στήλες. Το νέο περιβάλλον που δημιουργείται από το όρισμα φίλτρου για την CALCULATE επηρεάζει μόνο τα υπάρχοντα φίλτρα στις στήλες που αναφέρονται ως μέρος του ορίσματος φίλτρου. Τα φίλτρα σε στήλες διαφορετικές από αυτές που αναφέρονται στα ορίσματα της CALCULATE ή άλλων σχετικών συναρτήσεων παραμένουν σε ισχύ και δεν έχουν εφαρμοστεί.

  • Η συνάρτηση KEEPFILTERS σάς επιτρέπει να τροποποιήσετε αυτή τη συμπεριφορά. Όταν χρησιμοποιείτε την KEEPFILTERS, τυχόν υπάρχοντα φίλτρα στο τρέχον περιβάλλον συγκρίνονται με τις στήλες στα ορίσματα φίλτρου και η τομή αυτών των ορισμάτων χρησιμοποιείται ως περιβάλλον για την αξιολόγηση της παράστασης. Το καθαρό αποτέλεσμα σε οποιαδήποτε στήλη είναι ότι εφαρμόζονται και τα δύο σύνολα ορισμάτων: τόσο τα ορίσματα φίλτρου που χρησιμοποιούνται στην CALCULATE όσο και τα φίλτρα στα ορίσματα της συνάρτησης KEEPFILTER. Με άλλα λόγια, ενώ τα φίλτρα της CALCULATE αντικαθιστούν το τρέχον περιβάλλον, η KEEPFILTERS προσθέτει φίλτρα στο τρέχον περιβάλλον.

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

Παράδειγμα

Το παρακάτω παράδειγμα σάς καθοδηγεί σε ορισμένα συνήθη σενάρια που επιδεικνύουν τη χρήση της συνάρτησης KEEPFILTERS ως μέρος ενός τύπου CALCULATE ή CALCULATETABLE.

Οι τρεις πρώτες παραστάσεις λαμβάνουν απλά δεδομένα που θα χρησιμοποιηθούν για συγκρίσεις:

  • Πωλήσεις μέσω Internet για την πολιτεία της Ουάσιγκτον.

  • Πωλήσεις μέσω Internet για τις πολιτείες της Ουάσιγκτον και του Όρεγκον (και οι δύο πολιτείες μαζί).

  • Πωλήσεις μέσω Internet για την πολιτεία της Ουάσιγκτον και την επαρχία της Βρετανικής Κολομβίας (και οι δύο περιοχές μαζί).

Η τέταρτη παράσταση υπολογίζει τις πωλήσεις μέσω Internet για την Ουάσιγκτον και το Όρεγκον, ενώ εφαρμόζεται το φίλτρο για την Ουάσιγκτον και τη Βρετανική Κολομβία.

Η επόμενη παράσταση υπολογίζει τις πωλήσεις μέσω Internet για την Ουάσιγκτον και το Όρεγκον, αλλά χρησιμοποιεί την KEEPFILTERS. το φίλτρο για την Ουάσιγκτον και τη Βρετανική Κολομβία είναι μέρος του προηγούμενου περιβάλλοντος.

EVALUATE ROW(  
  "$$ in WA"  
    , CALCULATE('Internet Sales'[Internet Total Sales]  
                , 'Geography'[State Province Code]="WA"  
      )  
, "$$ in WA and OR"  
    , CALCULATE('Internet Sales'[Internet Total Sales]  
               , 'Geography'[State Province Code]="WA"   
                 || 'Geography'[State Province Code]="OR"  
      )  
, "$$ in WA and BC"  
    , CALCULATE('Internet Sales'[Internet Total Sales]  
               , 'Geography'[State Province Code]="WA"   
                 || 'Geography'[State Province Code]="BC"  
      )  
, "$$ in WA and OR ??"  
    , CALCULATE(  
          CALCULATE('Internet Sales'[Internet Total Sales]  
                    ,'Geography'[State Province Code]="WA"   
                      || 'Geography'[State Province Code]="OR"  
          )  
          , 'Geography'[State Province Code]="WA"   
            || 'Geography'[State Province Code]="BC"  
      )  
, "$$ in WA !!"  
    , CALCULATE(  
          CALCULATE('Internet Sales'[Internet Total Sales]  
                   , KEEPFILTERS('Geography'[State Province Code]="WA"   
                              || 'Geography'[State Province Code]="OR"  
                     )  
          )  
          , 'Geography'[State Province Code]="WA"   
            || 'Geography'[State Province Code]="BC"  
      )  
)  

Όταν αυτή η παράσταση αξιολογείται σε σχέση με το δείγμα βάσης δεδομένων AdventureWorks DW, λαμβάνονται τα παρακάτω αποτελέσματα.

Column Τιμή
[$$ σε WA] $ 2,467,248.34
[$$ σε WA και OR] $ 3,638,239.88
[$$ σε WA και BC] $ 4,422,588.44
[$$ σε WA και OR ??] $ 3,638,239.88
[$$ σε WA !!] $ 2,467,248.34

Σημείωμα

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

Πρώτα, εξετάστε την παράσταση, [$$ σε WA και OR ??]. Ίσως αναρωτιέστε πώς αυτός ο τύπος θα μπορούσε να επιστρέψει την τιμή για τις πωλήσεις στην Ουάσιγκτον και στο Όρεγκον, καθώς η εξωτερική παράσταση CALCULATE περιλαμβάνει ένα φίλτρο για την Ουάσιγκτον και τη Βρετανική Κολομβία. Η απάντηση είναι ότι η προεπιλεγμένη συμπεριφορά της CALCULATE παρακάμπτει τα εξωτερικών φίλτρα στο πεδίο 'Geography'[State Province Code] και αντικαθιστά τα δικά του ορίσματα φίλτρου, επειδή τα φίλτρα εφαρμόζονται στην ίδια στήλη.

Στη συνέχεια, εξετάστε την παράσταση, [$$ σε WA !!]. Ίσως αναρωτηθείτε πώς αυτός ο τύπος θα μπορούσε να επιστρέψει την τιμή για τις πωλήσεις στην Ουάσιγκτον και τίποτε άλλο, καθώς το όρισμα φίλτρου περιλαμβάνει το Όρεγκον και η εξωτερική παράσταση CALCULATE περιλαμβάνει ένα φίλτρο στην Ουάσιγκτον και τη Βρετανική Κολομβία. Η απάντηση είναι ότι η KEEPFILTERS τροποποιεί την προεπιλεγμένη συμπεριφορά της CALCULATE και προσθέτει ένα επιπλέον φίλτρο. Επειδή χρησιμοποιείται η τομή των φίλτρων, τώρα το εξωτερικό φίλτρο 'Geography'[State Province Code]="WA" || Το όρισμα 'Geography'[State Province Code]="BC") προστίθεται στο όρισμα φίλτρου 'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="OR",. Επειδή και τα δύο φίλτρα εφαρμόζονται στην ίδια στήλη, το φίλτρο που προκύπτει 'Geography'[State Province Code]="WA" είναι το φίλτρο που εφαρμόζεται κατά την αξιολόγηση της παράστασης.

Συναρτήσεις φιλτραρίσματος
Συνάρτηση CALCULATE
Συνάρτηση CALCULATETABLE