Περιβάλλον σε τύπους DAX

Ισχύει για
Excel για Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

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

Αυτή η ενότητα ορίζει τους διαφορετικούς τύπους περιβάλλοντος: περιβάλλον γραμμής, περιβάλλον ερωτήματος και περιβάλλον φίλτρου. Εξηγεί τον τρόπο υπολογισμού περιβάλλοντος για τύπους σε υπολογιζόμενες στήλες και σε Συγκεντρωτικούς Πίνακες.

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

Κατανόηση του πλαισίου

Οι τύποι στο Power Pivot μπορούν να επηρεαστούν από τα φίλτρα που εφαρμόζονται σε ένα Συγκεντρωτικό Πίνακα, από τις σχέσεις μεταξύ πινάκων και από τα φίλτρα που χρησιμοποιούνται σε τύπους. Το περιβάλλον είναι αυτό που καθιστά δυνατή την εκτέλεση δυναμικής ανάλυσης. Η κατανόηση του περιβάλλοντος είναι σημαντική για τη δημιουργία και την αντιμετώπιση προβλημάτων τύπων.

Υπάρχουν διάφοροι τύποι περιβάλλοντος: περιβάλλον γραμμών, περιβάλλον ερωτήματος και περιβάλλον φίλτρου.

Το περιβάλλον γραμμής μπορεί να θεωρηθεί ως "η τρέχουσα γραμμή". Εάν έχετε δημιουργήσει μια υπολογιζόμενη στήλη, το περιβάλλον γραμμής αποτελείται από τις τιμές κάθε μεμονωμένης γραμμής και τις τιμές σε στήλες που σχετίζονται με την τρέχουσα γραμμή. Υπάρχουν επίσης ορισμένες συναρτήσεις (EARLIER και EARLIEST) που λαμβάνουν μια τιμή από την τρέχουσα γραμμή και, στη συνέχεια, χρησιμοποιούν αυτήν την τιμή κατά την εκτέλεση μιας λειτουργίας σε ολόκληρο τον πίνακα.

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

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

Αρχή της σελίδας

Περιβάλλον γραμμής

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

Για παράδειγμα, ας υποθέσουμε ότι δημιουργείτε μια υπολογιζόμενη στήλη, =[Μεταφορικά] + [Φόρος], που αθροίζει δύο στήλες από τον ίδιο πίνακα. Αυτός ο τύπος συμπεριφέρεται όπως οι τύποι σε έναν πίνακα του Excel, οι οποίοι παραπέμπουν αυτόματα σε τιμές από την ίδια γραμμή. Σημειώστε ότι οι πίνακες διαφέρουν από τις περιοχές: δεν μπορείτε να αναφέρετε μια τιμή από τη γραμμή πριν από την τρέχουσα γραμμή χρησιμοποιώντας σημειογραφία περιοχής και δεν μπορείτε να αναφέρετε οποιαδήποτε αυθαίρετη μεμονωμένη τιμή σε έναν πίνακα ή κελί. Πρέπει να εργάζεστε πάντα με πίνακες και στήλες.

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

Για παράδειγμα, ο παρακάτω τύπος χρησιμοποιεί τη συνάρτηση RELATED για τη λήψη μιας τιμής φόρου από ένα σχετικό πίνακα, με βάση την περιοχή στην οποία στάλθηκε η παραγγελία. Η τιμή φόρου καθορίζεται χρησιμοποιώντας την τιμή για την περιοχή στον τρέχοντα πίνακα, αναζητώντας την περιοχή στο σχετικό πίνακα και, στη συνέχεια, λαμβάνοντας το φορολογικό συντελεστή για τη συγκεκριμένη περιοχή από το σχετικό πίνακα.

= [Freight] + RELATED('Region'[TaxRate])

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

Περιβάλλον πολλών γραμμών

Επιπλέον, το DAX περιλαμβάνει συναρτήσεις που επαναλαμβάνουν υπολογισμούς σε έναν πίνακα. Αυτές οι συναρτήσεις μπορούν να έχουν πολλές τρέχουσες γραμμές και τρέχοντα περιβάλλοντα γραμμών. Σε όρους προγραμματισμού, μπορείτε να δημιουργήσετε τύπους που αναπαράγονται σε έναν εσωτερικό και εξωτερικό βρόχο.

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

Στο Excel, αυτός ο υπολογισμός απαιτεί μια σειρά από ενδιάμεσες συνόψεις, οι οποίες θα πρέπει να αναδομηθούν εάν αλλάξουν τα δεδομένα. Εάν είστε έμπειρος χρήστης του Excel, ενδέχεται να μπορείτε να δημιουργήσετε τύπους πίνακα που θα κάνουν τη δουλειά. Εναλλακτικά, σε μια σχεσιακή βάση δεδομένων μπορείτε να γράψετε ένθετες δευτερεύουσες επιλογές.

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

=MAXX(FILTER(Sales,[ProdKey]=EARLIER([ProdKey])),Sales[OrderQty])

Για μια λεπτομερή παρουσίαση αυτού του τύπου, ανατρέξτε στη συνάρτηση ABOVE.

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

Αρχή της σελίδας

Περιβάλλον ερωτήματος

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

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

Για παράδειγμα, ας υποθέσουμε ότι δημιουργείτε αυτόν τον απλό τύπο που αθροίζει τις τιμές στη στήλη "Κέρδος " του πίνακα "Πωλήσεις ":

=SUM('Πωλήσεις'[Κέρδος])

Εάν χρησιμοποιήσετε αυτόν τον τύπο σε μια υπολογιζόμενη στήλη του πίνακα " Πωλήσεις ", τα αποτελέσματα για τον τύπο θα είναι τα ίδια για ολόκληρο τον πίνακα, επειδή το περιβάλλον ερωτήματος για τον τύπο είναι πάντα ολόκληρο το σύνολο δεδομένων του πίνακα "Πωλήσεις ". Τα αποτελέσματά σας θα έχουν κέρδος για όλες τις περιοχές, όλα τα προϊόντα, όλα τα έτη και ούτω καθεξής.

Ωστόσο, συνήθως δεν θέλετε να δείτε το ίδιο αποτέλεσμα εκατοντάδες φορές, αλλά αντί για αυτό θέλετε να αποκομίσετε το κέρδος για ένα συγκεκριμένο έτος, μια συγκεκριμένη χώρα ή περιοχή, ένα συγκεκριμένο προϊόν ή κάποιο συνδυασμό αυτών και, στη συνέχεια, να λάβετε ένα γενικό άθροισμα.

Σε έναν Συγκεντρωτικό Πίνακα, είναι εύκολο να αλλάξετε περιβάλλον προσθέτοντας ή καταργώντας κεφαλίδες στηλών και γραμμών και προσθέτοντας ή καταργώντας αναλυτές. Μπορείτε να δημιουργήσετε έναν τύπο όπως ο παραπάνω, σε μια μέτρηση και, στη συνέχεια, να τον αποθέσετε σε έναν Συγκεντρωτικό Πίνακα. Κάθε φορά που προσθέτετε επικεφαλίδες στηλών ή γραμμών στο Συγκεντρωτικό Πίνακα, αλλάζετε το περιβάλλον ερωτήματος στο οποίο αξιολογείται η μέτρηση. Οι λειτουργίες τεμαχισμού και φιλτραρίσματος επηρεάζουν επίσης το περιβάλλον. Επομένως, ο ίδιος τύπος, που χρησιμοποιείται σε έναν Συγκεντρωτικό Πίνακα, αξιολογείται σε διαφορετικό περιβάλλον ερωτήματος για κάθε κελί.

Αρχή της σελίδας

Περιβάλλον φίλτρου

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

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

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

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

Για παραδείγματα σχετικά με τον τρόπο επιλεκτικής απαλοιφής και εφαρμογής φίλτρων μέσα σε τύπους, ανατρέξτε στη συνάρτηση ALLEXCEPT

Επομένως, πρέπει να εξετάσετε τον ορισμό των μετρήσεων ή των τύπων που χρησιμοποιούνται σε έναν Συγκεντρωτικό Πίνακα, ώστε να έχετε επίγνωση του περιβάλλοντος φίλτρου κατά την ερμηνεία των αποτελεσμάτων των τύπων.

Αρχή της σελίδας

Προσδιορισμός συμφραζομένων σε τύπους

Όταν δημιουργείτε έναν τύπο, το Power Pivot για Excel ελέγχει πρώτα τη γενική σύνταξη και, στη συνέχεια, ελέγχει τα ονόματα των στηλών και των πινάκων που παρέχετε σε σχέση με πιθανές στήλες και πίνακες στο τρέχον περιβάλλον. Εάν το Power Pivot δεν μπορεί να εντοπίσει τις στήλες και τους πίνακες που καθορίζονται από τον τύπο, θα εμφανιστεί σφάλμα.

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

Για παράδειγμα, εάν έχετε μόλις εισαγάγει ορισμένα δεδομένα σε έναν νέο πίνακα και δεν έχετε εφαρμόσει φίλτρα, ολόκληρο το σύνολο των στηλών στον πίνακα αποτελεί μέρος του τρέχοντος περιβάλλοντος. Εάν έχετε πολλούς πίνακες που συνδέονται με σχέσεις και εργάζεστε σε έναν Συγκεντρωτικό Πίνακα που έχει φιλτραριστεί με την προσθήκη επικεφαλίδων στηλών και τη χρήση αναλυτών, το περιβάλλον περιλαμβάνει τους σχετικούς πίνακες και τυχόν φίλτρα στα δεδομένα.

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

Παραδείγματα πληροφοριών περιβάλλοντος σε τύπους

  • Η συνάρτηση RELATED επεκτείνει το περιβάλλον της τρέχουσας γραμμής για να συμπεριλάβει τιμές σε μια σχετική στήλη. Αυτό σας επιτρέπει να εκτελείτε αναζητήσεις. Το παράδειγμα σε αυτό το θέμα απεικονίζει την αλληλεπίδραση του φιλτραρίσματος και του περιβάλλοντος γραμμών.
  • Η συνάρτηση FILTER σάς επιτρέπει να καθορίσετε τις γραμμές που θα συμπεριληφθούν στο τρέχον περιβάλλον. Τα παραδείγματα σε αυτό το θέμα δείχνουν επίσης πώς μπορείτε να ενσωματώσετε φίλτρα μέσα σε άλλες συναρτήσεις που εκτελούν συγκεντρωτικά στοιχεία.
  • Η συνάρτηση ALL ορίζει το περιβάλλον μέσα σε έναν τύπο. Μπορείτε να το χρησιμοποιήσετε για να παρακάμψετε φίλτρα που εφαρμόζονται ως αποτέλεσμα του περιβάλλοντος του ερωτήματος.
  • Η συνάρτηση ALLEXCEPT σάς επιτρέπει να καταργήσετε όλα τα φίλτρα, εκτός από ένα που καθορίζετε. Και τα δύο θέματα περιλαμβάνουν παραδείγματα που σας καθοδηγούν στη δόμηση τύπων και στην κατανόηση σύνθετων πλαισίων.
  • Οι συναρτήσεις EARLIER και EARLY σάς επιτρέπουν να περιηγηθείτε σε πίνακες εκτελώντας υπολογισμούς, ενώ αναφέρονται σε μια τιμή από έναν εσωτερικό βρόχο. Εάν είστε εξοικειωμένοι με την έννοια της αναδρομής και με τον εσωτερικό και εξωτερικό βρόχο, θα εκτιμήσετε τη δύναμη που παρέχουν οι συναρτήσεις EARLIER και FIRST. Εάν δεν είστε εξοικειωμένοι με αυτές τις έννοιες, θα πρέπει να ακολουθήσετε τα βήματα στο παράδειγμα προσεκτικά για να δείτε πώς χρησιμοποιούνται το εσωτερικό και το εξωτερικό περιβάλλον στους υπολογισμούς.

Αρχή της σελίδας

Ακεραιότητα αναφορών

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

Εάν δεν είστε εξοικειωμένοι με τις έννοιες των σχεσιακών δεδομένων, συνιστάται να διαβάσετε πρώτα το εισαγωγικό θέμα, "Επισκόπηση σχέσεων".

Ακεραιότητα αναφορών και σχέσεις του Power Pivot

Το Power Pivot δεν απαιτεί την ενεργοποίηση της ακεραιότητας αναφορών μεταξύ δύο πινάκων για τον ορισμό μιας έγκυρης σχέσης. Αντί για αυτό, δημιουργείται μια κενή γραμμή στο άκρο "ένα" κάθε σχέσης ένα-προς-πολλά και χρησιμοποιείται για το χειρισμό όλων των γραμμών που δεν ταιριάζουν από το σχετικό πίνακα. Συμπεριφέρεται αποτελεσματικά ως εξωτερικός σύνδεσμος SQL.

Στους Συγκεντρωτικούς Πίνακες, εάν ομαδοποιήσετε τα δεδομένα στην πλευρά "ένα" της σχέσης, οποιαδήποτε αταίριαστα δεδομένα στην πλευρά "πολλά" της σχέσης ομαδοποιούνται και θα συμπεριληφθούν στα σύνολα με μια κενή επικεφαλίδα γραμμής. Η κενή επικεφαλίδα είναι περίπου ισοδύναμη με το "άγνωστο μέλος".

Κατανοώντας το άγνωστο μέλος

Η έννοια του άγνωστου μέλους σας είναι πιθανώς οικεία εάν έχετε εργαστεί με πολυδιάστατα συστήματα βάσεων δεδομένων, όπως το Υπηρεσίες ανάλυσης του SQL Server. Εάν ο όρος είναι νέος για εσάς, το παρακάτω παράδειγμα εξηγεί τι είναι το άγνωστο μέλος και πώς επηρεάζει τους υπολογισμούς.

Ας υποθέσουμε ότι δημιουργείτε έναν υπολογισμό που αθροίζει τις μηνιαίες πωλήσεις για κάθε κατάστημα, αλλά λείπει μια τιμή από μια στήλη στον πίνακα "Πωλήσεις " για το όνομα του καταστήματος. Δεδομένου ότι οι πίνακες για το Store και το Sales συνδέονται με το όνομα του καταστήματος, τι θα περιμένατε να συμβεί στον τύπο; Πώς πρέπει ο Συγκεντρωτικός Πίνακας να ομαδοποιήσει ή να εμφανίσει τα στοιχεία πωλήσεων που δεν σχετίζονται με ένα υπάρχον κατάστημα;

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

Αντιμετώπιση των κενών τιμών έναντι της κενής γραμμής

Οι κενές τιμές διαφέρουν από τις κενές γραμμές που προστίθενται για να χωρέσουν το άγνωστο μέλος. Η κενή τιμή είναι μια ειδική τιμή που χρησιμοποιείται για την αναπαράσταση τιμών null, κενών συμβολοσειρών και άλλων τιμών που λείπουν. Για περισσότερες πληροφορίες σχετικά με την κενή τιμή, καθώς και άλλους τύπους δεδομένων DAX, ανατρέξτε στο θέμα Τύποι δεδομένων σε Μοντέλα δεδομένων.

Αρχή της σελίδας