Το περιβάλλον σάς επιτρέπει να εκτελείτε δυναμική ανάλυση, στην οποία τα αποτελέσματα ενός τύπου μπορούν να αλλάξουν ώστε να αντικατοπτρίζουν την τρέχουσα γραμμή ή επιλογή κελιού, καθώς και οποιαδήποτε σχετικά δεδομένα. Η αποτελεσματική κατανόηση του περιβάλλοντος και η αποτελεσματική χρήση του περιβάλλοντος είναι πολύ σημαντική για τη δημιουργία τύπων υψηλής απόδοσης, δυναμικών αναλύσεων και για την αντιμετώπιση προβλημάτων σε τύπους.
Αυτή η ενότητα καθορίζει τους διαφορετικούς τύπους περιβάλλοντος: περιβάλλον γραμμής, περιβάλλον ερωτήματος και περιβάλλον φίλτρου. Εξηγεί πώς υπολογίζεται το περιβάλλον για τύπους σε υπολογιζόμενες στήλες και Συγκεντρωτικούς Πίνακες.
Το τελευταίο τμήμα αυτού του άρθρου παρέχει συνδέσεις σε λεπτομερή παραδείγματα που δείχνουν πώς αλλάζουν τα αποτελέσματα των τύπων ανάλογα με το περιβάλλον.
Κατανόηση του περιβάλλοντος
Οι τύποι σε Power Pivot μπορούν να επηρεαστούν από τα φίλτρα που εφαρμόζονται σε έναν Συγκεντρωτικό Πίνακα, από τις σχέσεις μεταξύ πινάκων και από τα φίλτρα που χρησιμοποιούνται σε τύπους. Το περιβάλλον είναι αυτό που καθιστά δυνατή την εκτέλεση δυναμικής ανάλυσης. Η κατανόηση του περιβάλλοντος είναι σημαντική για τη δημιουργία και την αντιμετώπιση προβλημάτων τύπων.
Υπάρχουν διάφοροι τύποι περιβάλλοντος: περιβάλλον γραμμής, περιβάλλον ερωτήματος και περιβάλλον φίλτρου.
Το περιβάλλον γραμμής μπορεί να θεωρηθεί ως "η τρέχουσα γραμμή". Εάν έχετε δημιουργήσει μια υπολογιζόμενη στήλη, το περιβάλλον γραμμής αποτελείται από τις τιμές σε κάθε μεμονωμένη γραμμή και τις τιμές στις στήλες που σχετίζονται με την τρέχουσα γραμμή. Υπάρχουν επίσης ορισμένες συναρτήσεις (EARLIER και EARLIEST) που λαμβάνουν μια τιμή από την τρέχουσα γραμμή και, στη συνέχεια, χρησιμοποιούν αυτή την τιμή κατά την εκτέλεση μιας λειτουργίας σε έναν ολόκληρο πίνακα.
Το περιβάλλον ερωτήματος αναφέρεται στο υποσύνολο δεδομένων που δημιουργείται σιωπηρά για κάθε κελί σε έναν Συγκεντρωτικό Πίνακα, ανάλογα με τις κεφαλίδες γραμμών και στηλών.
Περιβάλλον φίλτρου είναι το σύνολο των τιμών που επιτρέπονται σε κάθε στήλη, με βάση τους περιορισμούς φίλτρου που έχουν εφαρμοστεί στη γραμμή ή που ορίζονται από παραστάσεις φίλτρου μέσα στον τύπο.
Περιβάλλον γραμμής
Εάν δημιουργήσετε έναν τύπο σε μια υπολογιζόμενη στήλη, το περιβάλλον γραμμής για αυτόν τον τύπο περιλαμβάνει τις τιμές από όλες τις στήλες της τρέχουσας γραμμής. Εάν ο πίνακας σχετίζεται με έναν άλλο πίνακα, το περιεχόμενο περιλαμβάνει επίσης όλες τις τιμές από τον άλλο πίνακα που σχετίζονται με την τρέχουσα γραμμή.
Για παράδειγμα, ας υποθέσουμε ότι δημιουργείτε μια υπολογιζόμενη στήλη, =[Μεταφορικά] + [Φόρος], που προσθέτει δύο στήλες από τον ίδιο πίνακα. Αυτός ο τύπος συμπεριφέρεται όπως οι τύποι σε έναν πίνακα του Excel, ο οποίος αναφέρει αυτόματα τιμές από την ίδια γραμμή. Σημειώστε ότι οι πίνακες είναι διαφορετικοί από τις περιοχές: δεν μπορείτε να αναφέρετε μια τιμή από τη γραμμή πριν από την τρέχουσα γραμμή χρησιμοποιώντας σημειογραφία περιοχής και δεν μπορείτε να αναφέρετε οποιαδήποτε αυθαίρετη μεμονωμένη τιμή σε έναν πίνακα ή κελί. Πρέπει να εργάζεστε πάντα με πίνακες και στήλες.
Το περιβάλλον γραμμής ακολουθεί αυτόματα τις σχέσεις μεταξύ πινάκων για να καθορίσει ποιες γραμμές στους σχετιζόμενους πίνακες συσχετίζονται με την τρέχουσα γραμμή.
Για παράδειγμα, ο παρακάτω τύπος χρησιμοποιεί τη συνάρτηση RELATED για τη λήψη μιας φορολογικής τιμής από ένα σχετικό πίνακα, με βάση την περιοχή στην οποία στάλθηκε η παραγγελία. Η φορολογική αξία καθορίζεται χρησιμοποιώντας την τιμή για την περιοχή στον τρέχοντα πίνακα, αναζητώντας την περιοχή στον σχετικό πίνακα και, στη συνέχεια, επιλέγοντας το φορολογικό συντελεστή για τη συγκεκριμένη περιοχή από το σχετικό πίνακα.
= [Μεταφορικά] + RELATED('Region'[TaxRate])
Αυτός ο τύπος λαμβάνει απλώς το φορολογικό συντελεστή για την τρέχουσα περιοχή, από τον πίνακα Περιοχή. Δεν χρειάζεται να γνωρίζετε ή να καθορίσετε το κλειδί που συνδέει τους πίνακες.
Περιβάλλον πολλαπλών γραμμών
Επιπλέον, το DAX περιλαμβάνει συναρτήσεις που επαναληπτικοί υπολογισμοί επάνω σε έναν πίνακα. Αυτές οι συναρτήσεις μπορεί να έχουν πολλές τρέχουσες γραμμές και περιβάλλοντα τρέχουσας γραμμής. Σε όρους προγραμματισμού, μπορείτε να δημιουργήσετε τύπους που επαναλαμβάνονται σε εσωτερικό και εξωτερικό βρόχο.
Για παράδειγμα, ας υποθέσουμε ότι το βιβλίο εργασίας σας περιέχει έναν πίνακα "Προϊόντα " και έναν πίνακα "Πωλήσεις" . Μπορεί να θέλετε να δείτε ολόκληρο τον πίνακα πωλήσεων, ο οποίος είναι γεμάτος από συναλλαγές που αφορούν πολλά προϊόντα και να βρείτε τη μεγαλύτερη ποσότητα που παραγγείλατε για κάθε προϊόν σε οποιαδήποτε συναλλαγή.
Στο Excel, αυτός ο υπολογισμός απαιτεί μια σειρά ενδιάμεσων συνόψεων, οι οποίες θα πρέπει να αναδομηθούν εάν αλλάξουν τα δεδομένα. Εάν είστε ένας ισχυρός χρήστης του Excel, ενδέχεται να μπορείτε να δημιουργήσετε τύπους πίνακα που θα έκαναν την εργασία. Εναλλακτικά, σε μια σχεσιακή βάση δεδομένων μπορείτε να συντάξετε ένθετες δευτερεύουσες επιλογές.
Ωστόσο, με το DAX μπορείτε να δημιουργήσετε έναν μόνο τύπο που επιστρέφει τη σωστή τιμή και τα αποτελέσματα ενημερώνονται αυτόματα κάθε φορά που προσθέτετε δεδομένα στους πίνακες.
=MAXX(FILTER(Sales;[ProdKey]=EARLIER([ProdKey]));Sales[OrderQty])
Για μια λεπτομερή αναλυτική ανάλυση αυτού του τύπου, ανατρέξτε στο θέμα Συνάρτηση EARLIER.
Με λίγα λόγια, η συνάρτηση EARLIER αποθηκεύει το περιβάλλον γραμμής από τη λειτουργία που προηγήθηκε της τρέχουσας λειτουργίας. Ανά πάσα στιγμή, η συνάρτηση αποθηκεύει δύο σύνολα περιβάλλοντος στη μνήμη: ένα σύνολο περιβάλλοντος αντιπροσωπεύει την τρέχουσα γραμμή για τον εσωτερικό βρόχο του τύπου και ένα άλλο σύνολο περιβάλλοντος αντιπροσωπεύει την τρέχουσα γραμμή για τον εξωτερικό βρόχο του τύπου. Το DAX τροφοδοτεί αυτόματα τιμές μεταξύ των δύο βρόχων, έτσι ώστε να μπορείτε να δημιουργήσετε σύνθετα συγκεντρωτικά αποτελέσματα.
Περιβάλλον ερωτήματος
Το περιβάλλον ερωτήματος αναφέρεται στο υποσύνολο δεδομένων που ανακτάται σιωπηρά για έναν τύπο. Όταν αποθέσετε ένα πεδίο μέτρησης ή άλλης τιμής σε ένα κελί ενός Συγκεντρωτικού Πίνακα, ο μηχανισμός Power Pivot εξετάζει τις κεφαλίδες γραμμών και στηλών, τους αναλυτές και τα φίλτρα αναφοράς για να προσδιορίσει το περιβάλλον. Στη συνέχεια, Power Pivot κάνει τους απαραίτητους υπολογισμούς για να συμπληρώσει κάθε κελί στον Συγκεντρωτικό Πίνακα. Το σύνολο των δεδομένων που ανακτώνται είναι το περιβάλλον του ερωτήματος για κάθε κελί.
Επειδή το περιβάλλον μπορεί να αλλάξει ανάλογα με τη θέση του τύπου, τα αποτελέσματα του τύπου αλλάζουν επίσης ανάλογα με το εάν χρησιμοποιείτε τον τύπο σε έναν Συγκεντρωτικό Πίνακα με πολλές ομαδοποιήσεις και φίλτρα ή σε μια υπολογιζόμενη στήλη χωρίς φίλτρα και ελάχιστο περιβάλλον.
Για παράδειγμα, ας υποθέσουμε ότι δημιουργείτε αυτόν τον απλό τύπο που αθροίζει τις τιμές στη στήλη Κέρδος του πίνακα Πωλήσεις :
=SUM('Πωλήσεις'[Κέρδος])
Εάν χρησιμοποιήσετε αυτόν τον τύπο σε μια υπολογιζόμενη στήλη μέσα στον πίνακα "Πωλήσεις", τα αποτελέσματα για τον τύπο θα είναι τα ίδια για ολόκληρο τον πίνακα, επειδή το περιβάλλον ερωτήματος για τον τύπο είναι πάντα ολόκληρο το σύνολο δεδομένων του πίνακα "Πωλήσεις" . Τα αποτελέσματά σας θα έχουν κέρδος για όλες τις περιοχές, όλα τα προϊόντα, όλα τα χρόνια και ούτω καθεξής.
Ωστόσο, συνήθως δεν θέλετε να δείτε το ίδιο αποτέλεσμα εκατοντάδες φορές, αλλά αντί για αυτό θέλετε να έχετε το κέρδος για ένα συγκεκριμένο έτος, μια συγκεκριμένη χώρα ή περιοχή, ένα συγκεκριμένο προϊόν ή κάποιο συνδυασμό αυτών και, στη συνέχεια, να λάβετε ένα γενικό άθροισμα.
Σε έναν Συγκεντρωτικό Πίνακα, είναι εύκολο να αλλάξετε το περιβάλλον προσθέτοντας ή καταργώντας κεφαλίδες στηλών και γραμμών και προσθέτοντας ή καταργώντας αναλυτές. Μπορείτε να δημιουργήσετε έναν τύπο όπως ο παραπάνω, με μια μέτρηση και, στη συνέχεια, να τον αποθέσετε σε έναν Συγκεντρωτικό Πίνακα. Κάθε φορά που προσθέτετε επικεφαλίδες στηλών ή γραμμών στον Συγκεντρωτικό Πίνακα, αλλάζετε το περιβάλλον του ερωτήματος στο οποίο υπολογίζεται η μέτρηση. Οι λειτουργίες τεμαχισμού και φιλτραρίσματος επηρεάζουν επίσης το περιβάλλον. Επομένως, ο ίδιος τύπος, που χρησιμοποιείται σε έναν Συγκεντρωτικό Πίνακα, υπολογίζεται σε διαφορετικό περιβάλλον ερωτήματος για κάθε κελί.
Περιβάλλον φίλτρου
Το περιβάλλον φίλτρου προστίθεται όταν καθορίζετε περιορισμούς φίλτρου στο σύνολο των τιμών που επιτρέπονται σε μια στήλη ή έναν πίνακα, χρησιμοποιώντας ορίσματα σε έναν τύπο. Το περιβάλλον φίλτρου ισχύει επάνω από άλλα περιβάλλοντα, όπως το περιβάλλον γραμμής ή το περιβάλλον ερωτήματος.
Για παράδειγμα, ένας Συγκεντρωτικός Πίνακας υπολογίζει τις τιμές του για κάθε κελί με βάση τις επικεφαλίδες γραμμών και στηλών, όπως περιγράφεται στην προηγούμενη ενότητα σχετικά με το περιβάλλον του ερωτήματος. Ωστόσο, μέσα στις μετρήσεις ή τις υπολογιζόμενες στήλες που προσθέτετε στον Συγκεντρωτικό Πίνακα, μπορείτε να καθορίσετε παραστάσεις φίλτρου για τον έλεγχο των τιμών που χρησιμοποιούνται από τον τύπο. Μπορείτε επίσης να καταργήσετε επιλεκτικά τα φίλτρα σε συγκεκριμένες στήλες.
Για περισσότερες πληροφορίες σχετικά με τον τρόπο δημιουργίας φίλτρων μέσα σε τύπους, ανατρέξτε στο θέμα Συναρτήσεις φίλτρου.
Για ένα παράδειγμα του τρόπου απαλοιφής των φίλτρων για τη δημιουργία μεγάλων αθροίσματος, ανατρέξτε στη συνάρτηση ALL.
Για παραδείγματα του τρόπου επιλεκτικής απαλοιφής και εφαρμογής φίλτρων μέσα σε τύπους, ανατρέξτε στη Συνάρτηση ALLEXCEPT.
Επομένως, πρέπει να εξετάσετε τον ορισμό των μετρήσεων ή των τύπων που χρησιμοποιούνται σε έναν Συγκεντρωτικό Πίνακα, ώστε να γνωρίζετε το περιβάλλον του φίλτρου κατά την ερμηνεία των αποτελεσμάτων των τύπων.
Προσδιορισμός περιβάλλοντος σε τύπους
Όταν δημιουργείτε έναν τύπο, Power Pivot για το Excel ελέγχει πρώτα για γενική σύνταξη και, στη συνέχεια, ελέγχει τα ονόματα των στηλών και των πινάκων που παρέχετε σε αντιπαραβάλλετε πιθανές στήλες και πίνακες στο τρέχον περιβάλλον. Εάν Power Pivot δεν μπορούν να βρουν τις στήλες και τους πίνακες που καθορίζονται από τον τύπο, θα λάβετε ένα σφάλμα.
Το περιβάλλον καθορίζεται όπως περιγράφεται στις προηγούμενες ενότητες, χρησιμοποιώντας τους διαθέσιμους πίνακες στο βιβλίο εργασίας, οποιεσδήποτε σχέσεις μεταξύ των πινάκων και τυχόν φίλτρα που έχουν εφαρμοστεί.
Για παράδειγμα, εάν έχετε μόλις εισαγάγει ορισμένα δεδομένα σε ένα νέο πίνακα και δεν έχετε εφαρμόσει κανένα φίλτρο, ολόκληρο το σύνολο στηλών στον πίνακα αποτελεί μέρος του τρέχοντος περιβάλλοντος. Εάν έχετε πολλούς πίνακες που συνδέονται με σχέσεις και εργάζεστε σε έναν Συγκεντρωτικό Πίνακα που έχει φιλτραριστεί προσθέτοντας επικεφαλίδες στηλών και χρησιμοποιώντας αναλυτές, το περιβάλλον περιλαμβάνει τους σχετικούς πίνακες και τυχόν φίλτρα στα δεδομένα.
Το περιβάλλον είναι μια ισχυρή έννοια που μπορεί επίσης να δυσχεράνει την αντιμετώπιση προβλημάτων τύπων. Συνιστάται να ξεκινήσετε με απλούς τύπους και σχέσεις για να δείτε πώς λειτουργεί το περιβάλλον και, στη συνέχεια, να ξεκινήσετε τον πειραματισμό με απλούς τύπους σε Συγκεντρωτικούς Πίνακες. Η παρακάτω ενότητα παρέχει επίσης ορισμένα παραδείγματα του τρόπου με τον οποίο οι τύποι χρησιμοποιούν διαφορετικούς τύπους περιβάλλοντος για τη δυναμική επιστροφή αποτελεσμάτων.
Παραδείγματα περιβάλλοντος σε τύπους
-
Η συνάρτηση RELATED επεκτείνει το περιβάλλον της τρέχουσας γραμμής για να συμπεριλάβει τιμές σε μια σχετική στήλη. Αυτό σας επιτρέπει να εκτελείτε αναζητήσεις. Το παράδειγμα σε αυτό το θέμα παρουσιάζει την αλληλεπίδραση φιλτραρίσματος και περιβάλλοντος γραμμής.
-
Η συνάρτηση FILTER σάς επιτρέπει να καθορίσετε τις γραμμές που θα συμπεριληφθούν στο τρέχον περιβάλλον. Τα παραδείγματα σε αυτό το θέμα δείχνουν επίσης πώς μπορείτε να ενσωματώσετε φίλτρα σε άλλες συναρτήσεις που εκτελούν συγκεντρωτικά αποτελέσματα.
-
Η συνάρτηση ALL ορίζει το περιβάλλον μέσα σε έναν τύπο. Μπορείτε να το χρησιμοποιήσετε για να παρακάμψετε τα φίλτρα που εφαρμόζονται ως αποτέλεσμα του περιβάλλοντος του ερωτήματος.
-
Η συνάρτηση ALLEXCEPT σάς επιτρέπει να καταργήσετε όλα τα φίλτρα εκτός από αυτό που καθορίζετε. Και τα δύο θέματα περιλαμβάνουν παραδείγματα που σας καθοδηγούν στη δημιουργία τύπων και στην κατανόηση σύνθετων συμφραζόσεων.
-
Οι συναρτήσεις EARLIER και EARLIEST σάς επιτρέπουν να περιηγηθείτε κυκλικά σε πίνακες εκτελώντας υπολογισμούς, ενώ αναφέρονται σε μια τιμή από εσωτερικό βρόχο. Εάν είστε εξοικειωμένοι με την έννοια της περιοδικότητας και με τους εσωτερικούς και τους εσωτερικούς βρόχους, θα εκτιμήσετε την ισχύ που παρέχουν οι συναρτήσεις EARLIER και EARLIEST. Εάν είστε νέοι σε αυτές τις έννοιες, θα πρέπει να ακολουθήσετε προσεκτικά τα βήματα στο παράδειγμα για να δείτε πώς χρησιμοποιούνται τα εσωτερικά και εξωτερικά περιβάλλοντα στους υπολογισμούς.
Ακεραιότητα αναφορών
Αυτή η ενότητα περιγράφει ορισμένες σύνθετες έννοιες που σχετίζονται με τιμές που λείπουν σε Power Pivot πίνακες που συνδέονται με σχέσεις. Αυτή η ενότητα μπορεί να είναι χρήσιμη για εσάς εάν έχετε βιβλία εργασίας με πολλούς πίνακες και σύνθετους τύπους και θέλετε βοήθεια για την κατανόηση των αποτελεσμάτων.
Εάν δεν είστε νέοι σε έννοιες σχεσιακών δεδομένων, συνιστάται να διαβάσετε πρώτα το εισαγωγικό θέμα Επισκόπηση σχέσεων.
Ακεραιότητα αναφορών και σχέσεις Power Pivot
Power Pivot δεν απαιτεί την επιβολή ακεραιότητας αναφορών μεταξύ δύο πινάκων για τον ορισμό μιας έγκυρης σχέσης. Αντί για αυτό, δημιουργείται μια κενή γραμμή στο τέλος "ένα" κάθε σχέσης ένα-προς-πολλά και χρησιμοποιείται για το χειρισμό όλων των γραμμών που δεν ταιριάζουν από το σχετικό πίνακα. Συμπεριφέρεται αποτελεσματικά ως εξωτερικός σύνδεσμος SQL.
Στους Συγκεντρωτικούς Πίνακες, εάν ομαδοποιήσετε τα δεδομένα στη μία πλευρά της σχέσης, οποιαδήποτε αταίριαστα δεδομένα στην πλευρά "πολλά" της σχέσης ομαδοποιούνται και θα συμπεριληφθούν στα σύνολα με μια κενή επικεφαλίδα γραμμής. Η κενή επικεφαλίδα είναι περίπου ισοδύναμη με το "άγνωστο μέλος".
Κατανόηση του Άγνωστου μέλους
Η έννοια του άγνωστου μέλους είναι πιθανώς γνωστή σε εσάς εάν έχετε εργαστεί με πολυδιάστατα συστήματα βάσεων δεδομένων, όπως Υπηρεσίες ανάλυσης του SQL Server. Εάν ο όρος είναι νέος για εσάς, το παρακάτω παράδειγμα εξηγεί τι είναι το άγνωστο μέλος και πώς επηρεάζει τους υπολογισμούς.
Ας υποθέσουμε ότι δημιουργείτε έναν υπολογισμό που αθροίζει τις μηνιαίες πωλήσεις για κάθε κατάστημα, αλλά από μια στήλη στον πίνακα "Πωλήσεις" λείπει μια τιμή για το όνομα του καταστήματος. Δεδομένου ότι οι πίνακες για το Store και τις Πωλήσεις συνδέονται με το όνομα του καταστήματος, τι θα περιμένατε να συμβεί στον τύπο; Πώς θα πρέπει ο Συγκεντρωτικός Πίνακας να ομαδοποιήσει ή να εμφανίσει τα ποσά πωλήσεων που δεν σχετίζονται με έναν υπάρχοντα χώρο αποθήκευσης;
Αυτό το πρόβλημα είναι συνηθισμένο στις αποθήκες δεδομένων, όπου μεγάλοι πίνακες δεδομένων δεδομένων πρέπει να σχετίζονται λογικά με πίνακες διαστάσεων που περιέχουν πληροφορίες σχετικά με χώρους αποθήκευσης, περιοχές και άλλα χαρακτηριστικά που χρησιμοποιούνται για την κατηγοριοποίηση και τον υπολογισμό γεγονότων. Για την επίλυση του προβλήματος, τυχόν νέα γεγονότα που δεν σχετίζονται με μια υπάρχουσα οντότητα εκχωρούνται προσωρινά στο άγνωστο μέλος. Αυτός είναι ο λόγος για τον οποίο τα μη σχετικά γεγονότα θα εμφανίζονται ομαδοποιημένα σε έναν Συγκεντρωτικό Πίνακα κάτω από μια κενή επικεφαλίδα.
Επεξεργασία κενών τιμών έναντι της κενής γραμμής
Οι κενές τιμές διαφέρουν από τις κενές γραμμές που προστίθενται για να χωρούν το άγνωστο μέλος. Η κενή τιμή είναι μια ειδική τιμή που χρησιμοποιείται για την αναπαράσταση τιμών null, κενών συμβολοσειρών και άλλων τιμών που λείπουν. Για περισσότερες πληροφορίες σχετικά με την κενή τιμή, καθώς και άλλους τύπους δεδομένων DAX, ανατρέξτε στο θέμα Τύποι δεδομένων σε μοντέλα δεδομένων.