ALL
Ισχύει για:Υπολογιζόμενη στήλη
Υπολογιζόμενος πίνακας
Μέτρηση
υπολογισμού απεικόνισης
Επιστρέφει όλες τις γραμμές ενός πίνακα ή όλες τις τιμές σε μια στήλη, παραβλέποντας τυχόν φίλτρα που μπορεί να έχουν εφαρμοστεί. Αυτή η συνάρτηση είναι χρήσιμη για την εκκαθάριση φίλτρων και τη δημιουργία υπολογισμών σε όλες τις γραμμές ενός πίνακα.
Σύνταξη
ALL( [<table> | <column>[, <column>[, <column>[,…]]]] )
Παραμέτρους
Όρος | Ορισμός |
---|---|
table |
Ο πίνακας στον οποίο θέλετε να γίνει εκκαθάριση των φίλτρων. |
column |
Η στήλη στην οποία θέλετε να γίνει εκκαθάριση των φίλτρων. |
Το όρισμα στη συνάρτηση ALL πρέπει να είναι είτε μια αναφορά σε έναν βασικό πίνακα είτε μια αναφορά σε μια στήλη βάσης. Δεν μπορείτε να χρησιμοποιήσετε παραστάσεις πίνακα ή παραστάσεις στήλης με τη συνάρτηση ALL.
Τιμή επιστροφής
Ο πίνακας ή η στήλη όπου έχουν καταργηθεί τα φίλτρα.
Παρατηρήσεις
Αυτή η συνάρτηση δεν χρησιμοποιείται από μόνη της, αλλά χρησιμεύει ως ενδιάμεση συνάρτηση που μπορεί να χρησιμοποιηθεί για την αλλαγή του συνόλου των αποτελεσμάτων στα οποία εκτελείται κάποιος άλλος υπολογισμός.
Η κανονική συμπεριφορά για DAX παραστάσεις που περιέχουν τη συνάρτηση ALL() είναι ότι οποιαδήποτε φίλτρα έχουν εφαρμοστεί θα αγνοηθούν. Ωστόσο, υπάρχουν ορισμένα σενάρια όπου αυτό δεν ισχύει εξαιτίας της
auto-exist
, μιας DAX τεχνολογίας που βελτιστοποιεί το φιλτράρισμα, προκειμένου να μειωθεί ο όγκος της επεξεργασίας που απαιτείται για ορισμένα DAX ερωτήματα. Ένα παράδειγμα όπου το auto-exist και το ALL() παρέχουν μη αναμενόμενα αποτελέσματα είναι κατά το φιλτράρισμα σε δύο ή περισσότερες στήλες του ίδιου πίνακα (όπως όταν χρησιμοποιείτε αναλυτές) και υπάρχει μια μέτρηση στον ίδιο πίνακα που χρησιμοποιεί ALL(). Σε αυτήν την περίπτωση, το auto-exist θα θα συγχωνεύσει τα πολλαπλά φίλτρα σε ένα και θα φιλτράρει μόνο με βάση τους υπάρχοντες συνδυασμούς τιμών. Λόγω αυτής της συγχώνευσης, η μέτρηση θα υπολογιστεί με βάση τους υπάρχοντες συνδυασμούς τιμών και το αποτέλεσμα θα βασίζεται σε φιλτραρισμένες τιμές αντί για όλες τις τιμές όπως αναμένεται. Για να μάθετε περισσότερα σχετικά με το auto-exist και τις επιπτώσεις του στους υπολογισμούς, ανατρέξτε στο άρθρο του Microsoft MVP Alberto Ferrari για την κατανόηση DAX Auto-Exist στο θέμα sql.bi.com.Ο παρακάτω πίνακας περιγράφει πώς μπορείτε να χρησιμοποιήσετε τις συναρτήσεις ALL και ALLEXCEPT σε διαφορετικά σενάρια.
Συνάρτηση και χρήση Περιγραφή ALL() Καταργεί όλα τα φίλτρα παντού. ALL() μπορούν να χρησιμοποιηθούν μόνο για εκκαθάριση φίλτρων, όχι όμως για επιστροφή ενός πίνακα. ALL(Πίνακας) Καταργεί όλα τα φίλτρα από τον καθορισμένο πίνακα. Στην πραγματικότητα, ALL(Πίνακας) επιστρέφει όλες τις τιμές του πίνακα, καταργώντας τυχόν φίλτρα από το περιβάλλον που διαφορετικά θα είχαν εφαρμοστεί. Αυτή η συνάρτηση είναι χρήσιμη όταν εργάζεστε με πολλά επίπεδα ομαδοποίησης και θέλετε να δημιουργήσετε έναν υπολογισμό που δημιουργεί μια αναλογία μιας συγκεντρωτικής τιμής προς τη συνολική τιμή. Το πρώτο παράδειγμα δείχνει αυτό το σενάριο. ALL (Column[, Column[, ...]]) Καταργεί όλα τα φίλτρα από τις καθορισμένες στήλες του πίνακα. Εξακολουθούν να ισχύουν όλα τα άλλα φίλτρα σε άλλες στήλες του πίνακα. Όλα τα ορίσματα στήλης πρέπει να προέρχονται από τον ίδιο πίνακα. Η παραλλαγή της ALL(Στήλη) είναι χρήσιμη όταν θέλετε να καταργήσετε τα φίλτρα περιβάλλοντος για μία ή περισσότερες συγκεκριμένες στήλες και να διατηρήσετε όλα τα άλλα φίλτρα περιβάλλοντος. Το δεύτερο και τρίτο παράδειγμα επιδεικνύουν αυτό το σενάριο. ALLEXCEPT(Πίνακας, Στήλη1 [,Column2]...) Καταργεί όλα τα φίλτρα περιβάλλοντος του πίνακα εκτός από τα φίλτρα που εφαρμόζονται στις καθορισμένες στήλες. Αυτή είναι μια βολική συντόμευση για περιπτώσεις όπου θέλετε να καταργήσετε τα φίλτρα σε πολλές από τις στήλες ενός πίνακα, αλλά όχι σε όλες. Αυτή η συνάρτηση δεν υποστηρίζεται για χρήση σε λειτουργία DirectQuery όταν χρησιμοποιείται σε υπολογιζόμενες στήλες ή σε κανόνες ασφάλειας σε επίπεδο γραμμών (RLS).
Παράδειγμα 1
Υπολογισμός αναλογίας Για πωλήσεις κατηγορίας προς Σύνολο πωλήσεων
Ας υποθέσουμε ότι θέλετε να βρείτε το ποσό των πωλήσεων για το τρέχον κελί, στον Συγκεντρωτικό Πίνακα, διαιρούμενο με το σύνολο των πωλήσεων για όλους τους μεταπωλητές. Για να εξασφαλίσετε ότι ο παρονομαστής είναι ο ίδιος, ανεξάρτητα από τον τρόπο με τον οποίο ο χρήστης του Συγκεντρωτικού Πίνακα μπορεί να φιλτράρει ή να ομαδοποιήσει τα δεδομένα, ορίζετε έναν τύπο που χρησιμοποιεί ALL για να δημιουργήσει το σωστό γενικό σύνολο.
Ο παρακάτω πίνακας εμφανίζει τα αποτελέσματα όταν μια νέα μέτρηση, Όλες οι αναλογίες πωλήσεων μεταπωλητών, δημιουργείται με χρήση του τύπου που εμφανίζεται στην ενότητα κώδικα. Για να δείτε πώς λειτουργεί αυτό, προσθέστε το πεδίο, CalendarYear, στην περιοχή
Ετικέτες γραμμών | Εξαρτήματα | Ποδήλατα | Ρουχισμός | Στοιχεία | Γενικό σύνολο |
---|---|---|---|---|---|
2005 | 0,02% | 9,10% | 0,04% | 0,75% | 9,91% |
2006 | 0,11% | 24.71% | 0,60% | 4,48% | 29,90% |
2007 | 0,36% | 31,71% | 1,07% | 6,79% | 39,93% |
2008 | 0,20% | 16,95% | 0,48% | 2,63% | 20,26% |
Γενικό σύνολο | 0,70% | 82,47% | 2.18% | 14,65% | 100,00% |
τύπος
= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
Ο τύπος κατασκευάζεται ως εξής:
Ο αριθμητής,
SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])
, είναι το άθροισμα των τιμών στο ResellerSales_USD[SalesAmount_USD] για το τρέχον κελί στον Συγκεντρωτικό Πίνακα, με φίλτρα περιβάλλοντος που εφαρμόζονται στο CalendarYear και το ProductCategoryName.Για τον παρονομαστή, ξεκινάτε καθορίζοντας έναν πίνακα, ResellerSales_USD και χρησιμοποιείτε τη συνάρτηση ALL για να καταργήσετε όλα τα φίλτρα περιβάλλοντος του πίνακα.
Στη συνέχεια, χρησιμοποιείτε τη συνάρτηση SUMX για να αθροίσετε τις τιμές στη στήλη ResellerSales_USD[SalesAmount_USD]. Με άλλα λόγια, λαμβάνετε το άθροισμα των ResellerSales_USD[SalesAmount_USD] για όλες τις πωλήσεις μεταπωλητών.
Παράδειγμα 2
Υπολογισμός της αναλογίας Πωλήσεις προϊόντων προς το Σύνολο πωλήσεων κατά τη διάρκεια του τρέχοντος έτους
Ας υποθέσουμε ότι θέλετε να δημιουργήσετε έναν πίνακα που εμφανίζει το ποσοστό των πωλήσεων σε σύγκριση με τα έτη για κάθε κατηγορία προϊόντος (ProductCategoryName). Για να λάβετε το ποσοστό για κάθε έτος σε κάθε τιμή του ProductCategoryName, πρέπει να διαιρέσετε το άθροισμα των πωλήσεων για το συγκεκριμένο έτος και την κατηγορία προϊόντων με το άθροισμα των πωλήσεων για την ίδια κατηγορία προϊόντος για όλα τα έτη. Με άλλα λόγια, θέλετε να διατηρήσετε το φίλτρο στο ProductCategoryName, αλλά να καταργήσετε το φίλτρο στο έτος κατά τον υπολογισμό του παρονομαστή του ποσοστού.
Ο παρακάτω πίνακας εμφανίζει τα αποτελέσματα όταν μια νέα μέτρηση, Έτος πωλήσεων μεταπωλητή, δημιουργείται με χρήση του τύπου που εμφανίζεται στην ενότητα κώδικα. Για να δείτε πώς λειτουργεί αυτό, προσθέστε το πεδίο, CalendarYear, στην περιοχή
Ετικέτες γραμμών | Εξαρτήματα | Ποδήλατα | Ρουχισμός | Στοιχεία | Γενικό σύνολο |
---|---|---|---|---|---|
2005 | 3,48% | 11,03% | 1,91% | 5.12% | 9,91% |
2006 | 16.21% | 29,96% | 27,29% | 30,59% | 29,90% |
2007 | 51,62% | 38,45% | 48,86% | 46,36% | 39,93% |
2008 | 28,69% | 20,56% | 21,95% | 17,92% | 20,26% |
Γενικό σύνολο | 100,00% | 100,00% | 100,00% | 100,00% | 100,00% |
τύπος
= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(DateTime[CalendarYear]))
Ο τύπος κατασκευάζεται ως εξής:
Ο αριθμητής,
SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])
, είναι το άθροισμα των τιμών στο ResellerSales_USD[SalesAmount_USD] για το τρέχον κελί στον συγκεντρωτικό πίνακα, με φίλτρα περιβάλλοντος που εφαρμόζονται στις στήλες CalendarYear και ProductCategoryName.Για τον παρονομαστή, καταργείτε το υπάρχον φίλτρο στο CalendarYear χρησιμοποιώντας τη συνάρτηση ALL(Column). Αυτό υπολογίζει το άθροισμα των υπόλοιπων γραμμών στον πίνακα ResellerSales_USD, μετά την εφαρμογή των υπαρχόντων φίλτρων περιβάλλοντος από τις ετικέτες στήλης. Το καθαρό αποτέλεσμα είναι ότι για τον παρονομαστή το άθροισμα υπολογίζεται πάνω στο επιλεγμένο ProductCategoryName (το σιωπηρό φίλτρο περιβάλλοντος) και για όλες τις τιμές του έτους.
Παράδειγμα 3
Υπολογισμός συμβολής κατηγοριών προϊόντων στο Σύνολο πωλήσεων ανά έτος
Ας υποθέσουμε ότι θέλετε να δημιουργήσετε έναν πίνακα που εμφανίζει το ποσοστό των πωλήσεων για κάθε κατηγορία προϊόντων, ανά έτος. Για να λάβετε το ποσοστό για κάθε κατηγορία προϊόντος σε ένα συγκεκριμένο έτος, πρέπει να υπολογίσετε το άθροισμα των πωλήσεων για τη συγκεκριμένη κατηγορία προϊόντος (ProductCategoryName) κατά το έτος n και, στη συνέχεια, να διαιρέσετε την προκύπτον τιμή με το άθροισμα των πωλήσεων για το έτος n για όλες τις κατηγορίες προϊόντων. Με άλλα λόγια, θέλετε να διατηρήσετε το φίλτρο στο έτος, αλλά να καταργήσετε το φίλτρο στο ProductCategoryName κατά τον υπολογισμό του παρονομαστή του ποσοστού.
Ο παρακάτω πίνακας εμφανίζει τα αποτελέσματα όταν μια νέα μέτρηση, Όνομα_κατηγορίας πωλήσεων μεταπωλητή, δημιουργείται με χρήση του τύπου που εμφανίζεται στην ενότητα κώδικα. Για να δείτε πώς λειτουργεί αυτό, προσθέστε το πεδίο, CalendarYear, στην περιοχή Ετικέτες γραμμών του Συγκεντρωτικού Πίνακα και προσθέστε το πεδίο, ProductCategoryName, στην περιοχή Ετικέτες στηλών. Στη συνέχεια, προσθέστε τη νέα μέτρηση στην περιοχή Τιμές του Συγκεντρωτικού Πίνακα. Για να προβάλετε τα αποτελέσματα ως ποσοστά, χρησιμοποιήστε τις δυνατότητες μορφοποίησης του Excel για να εφαρμόσετε μια μορφή ποσοστού αριθμού στα κελιά που περιέχουν τη νέα μέτρηση όνομα_κατηγορίας πωλήσεων μεταπωλητή.
Ετικέτες γραμμών | Εξαρτήματα | Ποδήλατα | Ρουχισμός | Στοιχεία | Γενικό σύνολο |
---|---|---|---|---|---|
2005 | 0,25% | 91,76% | 0,42% | 7,57% | 100,00% |
2006 | 0,38% | 82,64% | 1,99% | 14,99% | 100,00% |
2007 | 0,90% | 79,42% | 2,67% | 17.01% | 100,00% |
2008 | 0,99% | 83,69% | 2.37% | 12,96% | 100,00% |
Γενικό σύνολο | 0,70% | 82,47% | 2.18% | 14,65% | 100,00% |
τύπος
= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(ProductCategory[ProductCategoryName]))
Ο τύπος κατασκευάζεται ως εξής:
Ο αριθμητής,
SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])
, είναι το άθροισμα των τιμών στο ResellerSales_USD[SalesAmount_USD] για το τρέχον κελί στον Συγκεντρωτικό Πίνακα, με φίλτρα περιβάλλοντος που εφαρμόζονται στα πεδία CalendarYear και ProductCategoryName.Για τον παρονομαστή, χρησιμοποιείτε τη συνάρτηση ALL(Στήλη), για να καταργήσετε το φίλτρο στο ProductCategoryName και να υπολογίσετε το άθροισμα των υπόλοιπων γραμμών στον πίνακα ResellerSales_USD, μετά την εφαρμογή των υπαρχόντων φίλτρων περιβάλλοντος από τις ετικέτες γραμμών. Το καθαρό αποτέλεσμα είναι ότι, για τον παρονομαστή, το άθροισμα υπολογίζεται πάνω στο επιλεγμένο Έτος (το σιωπηρό φίλτρο περιβάλλοντος) και για όλες τις τιμές του ProductCategoryName.
Σχετικό περιεχόμενο
Συναρτήσεις φίλτρουALL συνάρτησηALLEXCEPT συνάρτησηFILTER συνάρτηση