Share via


Επισκόπηση DAX

Οι Παραστάσεις ανάλυσης δεδομένων (DAX) είναι μια γλώσσα παράστασης τύπου που χρησιμοποιείται στις Υπηρεσίες ανάλυσης, το Power BI και το Power Pivot στο Excel. Οι τύποι DAX περιλαμβάνουν συναρτήσεις, τελεστές και τιμές για την εκτέλεση σύνθετων υπολογισμών και ερωτημάτων σε δεδομένα σε σχετικούς πίνακες και στήλες σε μοντέλα δεδομένων σε μορφή πίνακα.

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

Υπολογισμοί

Οι τύποι DAX χρησιμοποιούνται σε μετρήσεις, υπολογιζόμενες στήλες, υπολογιζόμενους πίνακες και ασφάλεια σε επίπεδο γραμμών.

Μετρήσεις

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

Ένας τύπος σε μια μέτρηση μπορεί να χρησιμοποιήσει τις τυπικές συναρτήσεις συνάθροισης που δημιουργήθηκαν αυτόματα χρησιμοποιώντας τη δυνατότητα Autosum, όπως COUNT ή SUM, ή μπορείτε να ορίσετε τον δικό σας τύπο χρησιμοποιώντας τη γραμμή τύπων DAX. Οι επώνυμες μετρήσεις μπορούν να διαβιβαστούν ως όρισμα σε άλλες μετρήσεις.

Όταν ορίζετε έναν τύπο για μια μέτρηση στη γραμμή τύπων, μια δυνατότητα συμβουλής εργαλείου εμφανίζει μια προεπισκόπηση του ποια θα ήταν τα αποτελέσματα για το σύνολο στο τρέχον περιβάλλον, διαφορετικά, τα αποτελέσματα δεν εξάγονται αμέσως πουθενά. Ο λόγος για τον οποίο δεν μπορείτε να δείτε αμέσως τα (φιλτραρισμένα) αποτελέσματα του υπολογισμού είναι επειδή το αποτέλεσμα μιας μέτρησης δεν μπορεί να προσδιοριστεί χωρίς περιβάλλον. Για την αξιολόγηση μιας μέτρησης απαιτείται μια εφαρμογή-πελάτης αναφορών που μπορεί να παρέχει το περιβάλλον που απαιτείται για την ανάκτηση των δεδομένων που σχετίζονται με κάθε κελί και, στη συνέχεια, να αξιολογεί την παράσταση για κάθε κελί. Αυτό το πρόγραμμα-πελάτης μπορεί να είναι ένας Συγκεντρωτικός Πίνακας ή Συγκεντρωτικό Γράφημα του Excel, μια αναφορά Power BI ή μια παράσταση πίνακα σε ένα ερώτημα DAX στο SQL Server Management Studio (SSMS).

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

Total Sales = SUM([Sales Amount])

Όταν ένας χρήστης τοποθετήσει τη μέτρηση TotalSales σε μια αναφορά και, στη συνέχεια, τοποθετήσει τη στήλη Product Category από έναν πίνακα προϊόντων στα Φίλτρα, το άθροισμα του Sales Amount υπολογίζεται και εμφανίζεται για κάθε κατηγορία προϊόντος.

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

Για να μάθετε περισσότερα, ανατρέξτε στα εξής:
Μετρήσεις στο Power BI Desktop
Μετρήσεις στις Υπηρεσίες ανάλυσης
Μετρήσεις στο Power Pivot

Υπολογιζόμενες στήλες

Μια υπολογιζόμενη στήλη είναι μια στήλη που προσθέτετε σε έναν υπάρχοντα πίνακα (στο εργαλείο σχεδίασης μοντέλου) και, στη συνέχεια, δημιουργείτε έναν τύπο DAX που ορίζει τις τιμές της στήλης. Όταν μια υπολογιζόμενη στήλη περιέχει έναν έγκυρο τύπο DAX, οι τιμές υπολογίζονται για κάθε γραμμή μόλις εισαχθεί ο τύπος. Στη συνέχεια, οι τιμές αποθηκεύονται στο μοντέλο δεδομένων εντός της μνήμης. Για παράδειγμα, σε έναν πίνακα ημερομηνιών, όταν ο τύπος καταχωρείται στη γραμμή τύπων:

= [Calendar Year] & " Q" & [Calendar Quarter]

Μια τιμή για κάθε γραμμή του πίνακα υπολογίζεται λαμβάνοντας τιμές από τη στήλη Calendar Year (στον ίδιο πίνακα ημερομηνιών), προσθέτοντας ένα κενό διάστημα και το κεφαλαίο γράμμα Q και, στη συνέχεια, προσθέτοντας τις τιμές από τη στήλη Calendar Quarter (στον ίδιο πίνακα ημερομηνιών). Το αποτέλεσμα για κάθε γραμμή στην υπολογιζόμενη στήλη υπολογίζεται αμέσως και εμφανίζεται, για παράδειγμα, ως 2017 Q1. Οι τιμές στήλης υπολογίζονται ξανά μόνο εάν ο πίνακας ή οποιοσδήποτε σχετικός πίνακας επεξεργαστεί (ανανεωθεί) ή αν το μοντέλο καταργείται από τη μνήμη και, στη συνέχεια, φορτωθεί ξανά, όπως κατά το κλείσιμο και το άνοιγμα ενός αρχείου Power BI Desktop.

Για να μάθετε περισσότερα, ανατρέξτε στα εξής:
Υπολογιζόμενες στήλες στο Power BI Desktop
Υπολογιζόμενες στήλες στις Υπηρεσίες ανάλυσης
Υπολογιζόμενες στήλες στο Power Pivot.

Υπολογιζόμενοι πίνακες

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

Οι υπολογιζόμενοι πίνακες μπορούν να είναι χρήσιμοι σε μια διάσταση αναπαραγωγής ρόλων. Ένα παράδειγμα είναι ο πίνακας Date, ως OrderDate, ShipDate ή DueDate, ανάλογα με τη σχέση εξωτερικού κλειδιού. Δημιουργώντας έναν υπολογιζόμενο πίνακα για την ShipDate ρητά, λαμβάνετε έναν μεμονωμένο πίνακα που είναι διαθέσιμος για ερωτήματα, τόσο πλήρως λειτουργικός όσο οποιοσδήποτε άλλος πίνακας. Οι υπολογιζόμενοι πίνακες είναι επίσης χρήσιμοι κατά τη ρύθμιση παραμέτρων ενός φιλτραρισμένου συνόλου γραμμών ή ενός υποσυνόλου ή υπερσυνόλου στηλών από άλλους υπάρχοντες πίνακες. Αυτό σας επιτρέπει να διατηρήσετε τον αρχικό πίνακα ανέπαφο κατά τη δημιουργία παραλλαγών αυτού του πίνακα για την υποστήριξη συγκεκριμένων σεναρίων.

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

Για να μάθετε περισσότερα, ανατρέξτε στα εξής:
Υπολογιζόμενοι πίνακες στο Power BI Desktop
Υπολογιζόμενοι πίνακες στις Υπηρεσίες ανάλυσης.

Ασφάλεια σε επίπεδο γραμμών

Με την ασφάλεια σε επίπεδο γραμμών, ένας τύπος DAX πρέπει να αξιολογείται σε μια δυαδική συνθήκη TRUE/FALSE, που ορίζει ποιες γραμμές μπορούν να επιστραφούν από τα αποτελέσματα ενός ερωτήματος από μέλη ενός συγκεκριμένου ρόλου. Για παράδειγμα, για τα μέλη του ρόλου Sales, ο πίνακας Customers με τον παρακάτω τύπο DAX:

= Customers[Country] = "USA"

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

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

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

Για να μάθετε περισσότερα, ανατρέξτε στα εξής:
Ασφάλεια σε επίπεδο γραμμών (RLS) με το Power BI
Ρόλοι στις Υπηρεσίες ανάλυσης

Ερωτήματα

Τα ερωτήματα DAX μπορούν να δημιουργηθούν και να εκτελεστούν στο SQL Server Management Studio (SSMS) και σε εργαλεία ανοιχτού κώδικα όπως το DAX Studio (daxstudio.org). Σε αντίθεση με τους τύπους υπολογισμού DAX, οι οποίοι μπορούν να δημιουργηθούν μόνο σε μοντέλα δεδομένων σε μορφή πίνακα, τα ερωτήματα DAX μπορούν επίσης να εκτελεστούν σε πολυδιάστατα μοντέλα των Υπηρεσιών ανάλυσης. Τα ερωτήματα DAX είναι συχνά πιο εύκολα στην εγγραφή και πιο αποτελεσματικά από τα ερωτήματα πολυδιάστατων παραστάσεων δεδομένων (MDX).

Ένα ερώτημα DAX είναι μια πρόταση, παρόμοια με μια πρόταση SELECT στο T-SQL. Ο πιο βασικός τύπος ερωτήματος DAX είναι μια πρόταση αξιολόγησης . Για παράδειγμα,

EVALUATE
 ( FILTER ( 'DimProduct', [SafetyStockLevel] < 200 ) )
ORDER BY [EnglishProductName] ASC

Επιστρέφει στα αποτελέσματα έναν πίνακα που παραθέτει μόνο τα προϊόντα με Θυρίδα tyStockLevel μικρότερο από 200, σε αύξουσα σειρά κατά EnglishProductName.

Μπορείτε να δημιουργήσετε μετρήσεις ως μέρος του ερωτήματος. Οι μετρήσεις υπάρχουν μόνο κατά τη διάρκεια του ερωτήματος. Για να μάθετε περισσότερα, ανατρέξτε στο θέμα Ερωτήματα DAX.

Τύποι

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

Βασικά στοιχεία τύπων

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

Τύπος Ορισμός
= TODAY() Εισάγει τη σημερινή ημερομηνία σε κάθε γραμμή μιας υπολογιζόμενης στήλης.
= 3 Εισάγει την τιμή 3 σε κάθε γραμμή μιας υπολογιζόμενης στήλης.
= [Column1] + [Column2] Προσθέτει τις τιμές στην ίδια γραμμή [Column1] και [Column2] και τοποθετεί τα αποτελέσματα στην υπολογιζόμενη στήλη της ίδιας γραμμής.

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

  1. Κάθε τύπος πρέπει να ξεκινά με το σύμβολο ίσον (=).

  2. Μπορείτε είτε να πληκτρολογήσετε, είτε να επιλέξετε ένα όνομα συνάρτησης, είτε να πληκτρολογήσετε μια παράσταση.

  3. Αρχίστε να πληκτρολογείτε τα πρώτα γράμματα της συνάρτησης ή του ονόματος που θέλετε και η Αυτόματη συμπλήρωση εμφανίζει μια λίστα με τις διαθέσιμες συναρτήσεις, πίνακες και στήλες. Πατήστε το ΠΛΉΚΤΡΟ TAB για να προσθέσετε ένα στοιχείο από τη λίστα αυτόματης συμπλήρωσης στον τύπο.

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

  4. Δώστε τα ορίσματα στη συνάρτηση, επιλέγοντάς τα από μια αναπτυσσόμενη λίστα πιθανών πινάκων και στηλών ή πληκτρολογώντας τιμές.

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

  6. Πατήστε το ΠΛΉΚΤΡΟ ENTER για να αποδεχτείτε τον τύπο.

Σημείωμα

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

Σε αυτό το παράδειγμα, ας εξετάσουμε έναν τύπο σε έναν δείκτη μέτρησης που ονομάζεται Ημέρες στο τρέχον τρίμηνο:

Days in Current Quarter = COUNTROWS( DATESBETWEEN( 'Date'[Date], STARTOFQUARTER( LASTDATE('Date'[Date])), ENDOFQUARTER('Date'[Date])))

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

Αυτός ο τύπος περιέχει τα ακόλουθα στοιχεία:

Στοιχείο τύπου Description
Days in Current Quarter Το όνομα της μέτρησης.
= Το σύμβολο ίσον (=) ξεκινά τον τύπο.
COUNTROWS Η συνάρτηση COUNTROWS μετρά τον αριθμό των γραμμών στον πίνακα Date
() Η δεξιά και η ανοιχτή παρένθεση καθορίζουν ορίσματα.
DATESBETWEEN Η συνάρτηση DATESBETWEEN επιστρέφει τις ημερομηνίες μεταξύ της τελευταίας ημερομηνίας για κάθε τιμή στη στήλη Ημερομηνία στον πίνακα Ημερομηνία.
'Date' Καθορίζει τον πίνακα Date. Οι πίνακες βρίσκονται σε μονά εισαγωγικά.
[Date] Καθορίζει τη στήλη Date στον πίνακα Date. Οι στήλες βρίσκονται μέσα σε αγκύλες.
,
STARTOFQUARTER Η συνάρτηση STARTOFQUARTER επιστρέφει την ημερομηνία έναρξης του τριμήνου.
LASTDATE Η συνάρτηση LASTDATE επιστρέφει την τελευταία ημερομηνία του τριμήνου.
'Date' Καθορίζει τον πίνακα Date.
[Date] Καθορίζει τη στήλη Date στον πίνακα Date.
,
ENDOFQUARTER Η συνάρτηση ENDOFQUARTER
'Date' Καθορίζει τον πίνακα Date.
[Date] Καθορίζει τη στήλη Date στον πίνακα Date.

Χρήση της αυτόματης συμπλήρωσης τύπου

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

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

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

Χρήση πολλών συναρτήσεων σε έναν τύπο

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

Συναρτήσεις

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

  • Μια συνάρτηση DAX αναφέρει πάντα μια πλήρη στήλη ή έναν πίνακα. Εάν θέλετε να χρησιμοποιήσετε μόνο συγκεκριμένες τιμές από έναν πίνακα ή μια στήλη, μπορείτε να προσθέσετε φίλτρα στον τύπο.

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

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

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

Συναρτήσεις συνάθροισης

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

Συναρτήσεις ημερομηνίας και ώρας

Οι συναρτήσεις ημερομηνίας και ώρας στο DAX είναι παρόμοιες με τις συναρτήσεις ημερομηνίας και ώρας στο Microsoft Excel. Ωστόσο, οι συναρτήσεις DAX βασίζονται σε έναν τύπο δεδομένων ημερομηνίας/ώρας που ξεκινά την 1η Μαρτίου 1900. Για να μάθετε περισσότερα, ανατρέξτε στο θέμα Συναρτήσεις ημερομηνίας και ώρας.

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

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

Οικονομικές συναρτήσεις

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

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

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

Λογικές συναρτήσεις

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

Μαθηματικές και τριγωνομετρικές συναρτήσεις

Οι μαθηματικές συναρτήσεις στο DAX μοιάζουν πολύ με τις μαθηματικές και τριγωνομετρικές συναρτήσεις του Excel. Υπάρχουν ορισμένες μικρές διαφορές στους αριθμητικούς τύπους δεδομένων που χρησιμοποιούνται από τις συναρτήσεις DAX. Για να μάθετε περισσότερα, ανατρέξτε στο θέμα Μαθηματικές και τριγωνομετρικές συναρτήσεις.

Άλλες συναρτήσεις

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

Συναρτήσεις σχέσης

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

Στατιστικές συναρτήσεις

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

Συναρτήσεις κειμένου

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

Συναρτήσεις χρονικής ευφυΐας

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

Συναρτήσεις χειρισμού πίνακα

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

Μεταβλητές

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

VAR
    TotalQty = SUM ( Sales[Quantity] )

Return

    IF (
        TotalQty > 1000,
        TotalQty * 0.95,
        TotalQty * 1.25
        )

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

Τύποι δεδομένων

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

Το DAX υποστηρίζει τους ακόλουθους τύπους δεδομένων:

Τύπος δεδομένων στο μοντέλο Τύπος δεδομένων στο DAX Description
Ακέραιος αριθμός Μια ακέραια τιμή 64 bit (οκτώ byte) 1, 2 Αριθμοί που δεν έχουν δεκαδικά ψηφία. Οι ακέραιοι μπορεί να είναι θετικοί ή αρνητικοί αριθμοί, αλλά πρέπει να είναι ακέραιοι αριθμοί μεταξύ -9.223.372.036.854.808 (-2^63) και 9.223.372.036.854.775.807 (2^63-1).
Δεκαδικός αριθμός Ένας πραγματικός αριθμός 64 bit (οκτώ byte) 1, 2 Οι πραγματικοί αριθμοί είναι αριθμοί που μπορούν να έχουν δεκαδικά ψηφία. Οι πραγματικοί αριθμοί καλύπτουν ένα ευρύ φάσμα τιμών:

Αρνητικές τιμές από -1,79E +308 έως -2,23E -308

Μηδέν

Θετικές τιμές από 2,23E -308 έως 1,79E + 308

Ωστόσο, ο αριθμός των σημαντικών ψηφίων περιορίζεται σε 17 δεκαδικά ψηφία.
Δυαδική τιμή Δυαδική τιμή Μια τιμή True ή False.
Κείμενο String Μια συμβολοσειρά δεδομένων χαρακτήρων Unicode. Μπορεί να είναι συμβολοσειρές, αριθμοί ή ημερομηνίες που αντιπροσωπεύονται σε μορφή κειμένου.
Ημερομηνία Ημερομηνία/ώρα Ημερομηνίες και ώρες σε μια αποδεκτή αναπαράσταση ημερομηνίας-ώρας.

Έγκυρες ημερομηνίες είναι όλες οι ημερομηνίες μετά την 1η Μαρτίου 1900.
Νομισματική μονάδα Νομισματική μονάδα Ο τύπος δεδομένων νομίσματος επιτρέπει τιμές μεταξύ -922.337.203.685.477,5808 και 922.337.203.685.477,5807 με τέσσερα δεκαδικά ψηφία σταθερής ακρίβειας.
ΔΙ Blank Το κενό είναι ένας τύπος δεδομένων στο DAX που αντιπροσωπεύει και αντικαθιστά τις τιμές null SQL. Μπορείτε να δημιουργήσετε ένα κενό χρησιμοποιώντας τη συνάρτηση BLANK και να ελέγξετε για κενά χρησιμοποιώντας τη λογική συνάρτηση ISBLANK.

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

Ενώ οι τύποι δεδομένων συνήθως ορίζονται αυτόματα, είναι σημαντικό να κατανοήσετε τους τύπους δεδομένων και τον τρόπο που εφαρμόζονται, ειδικότερα, σε τύπους DAX. Τα σφάλματα σε τύπους ή τα μη αναμενόμενα αποτελέσματα, για παράδειγμα, συχνά προκαλούνται από τη χρήση ενός συγκεκριμένου τελεστή που δεν μπορεί να χρησιμοποιηθεί με έναν τύπο δεδομένων που καθορίζεται σε ένα όρισμα. Για παράδειγμα, ο τύπος, = 1 & 2, επιστρέφει ένα αποτέλεσμα συμβολοσειράς 12. Ο τύπος, = "1" + "2"ωστόσο, επιστρέφει ακέραιο αποτέλεσμα 3.

Περιβάλλον

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

Οι τύποι σε μοντέλα σε μορφή πίνακα μπορούν να αξιολογηθούν σε διαφορετικό περιβάλλον, ανάλογα με άλλα στοιχεία σχεδίασης:

  • Φίλτρα που εφαρμόζονται σε συγκεντρωτικό πίνακα ή αναφορά
  • Φίλτρα που ορίζονται μέσα σε έναν τύπο
  • Σχέσεις που καθορίζονται με χρήση ειδικών συναρτήσεων μέσα σε έναν τύπο

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

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

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

Για παράδειγμα, ας υποθέσουμε ότι δημιουργείτε μια υπολογιζόμενη στήλη, = [Freight] + [Tax], η οποία προσθέτει τιμές από δύο στήλες, Freight και Tax, από τον ίδιο πίνακα. Αυτός ο τύπος λαμβάνει αυτόματα μόνο τις τιμές από την τρέχουσα γραμμή στις καθορισμένες στήλες.

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

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

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

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

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

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

Για παράδειγμα, ας υποθέσουμε ότι το μοντέλο σας περιέχει έναν πίνακα Products και έναν πίνακα Sales . Οι χρήστες μπορεί να θέλουν να περάσουν από ολόκληρο τον πίνακα Sales, ο οποίος είναι γεμάτος από συναλλαγές που περιλαμβάνουν πολλά προϊόντα και να βρουν τη μεγαλύτερη ποσότητα που έχει παραγγελχθεί για κάθε προϊόν σε οποιαδήποτε συναλλαγή.

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

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

Για ένα αναλυτικό παράδειγμα αυτού του τύπου, ανατρέξτε στην EARLIER.

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

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

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

Επειδή οι αλλαγές στο περιβάλλον εξαρτώνται από το σημείο όπου τοποθετείτε τον τύπο, τα αποτελέσματα του τύπου μπορούν επίσης να αλλάξουν. Για παράδειγμα, ας υποθέσουμε ότι δημιουργείτε έναν τύπο που αθροίζει τις τιμές στη στήλη Profit του πίνακα Sales : = SUM('Sales'[Profit]). Εάν χρησιμοποιείτε αυτόν τον τύπο σε μια υπολογιζόμενη στήλη εντός του πίνακα Sales , τα αποτελέσματα για τον τύπο θα είναι ίδια για ολόκληρο τον πίνακα, επειδή το περιβάλλον ερωτήματος για τον τύπο είναι πάντα ολόκληρο το σύνολο δεδομένων του πίνακα Sales . Τα αποτελέσματα θα έχουν κέρδος για όλες τις περιοχές, όλα τα προϊόντα, όλα τα έτη και ούτω καθεξής.

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

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

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

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

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

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

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

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

Προσδιορισμός περιβάλλοντος σε τύπους

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

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

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

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

Τελεστές

Η γλώσσα DAX χρησιμοποιεί τέσσερις διαφορετικούς τύπους τελεστών υπολογισμού σε τύπους:

  • Τελεστές σύγκρισης για τη σύγκριση τιμών και την επιστροφή μιας λογικής τιμής TRUE\FALSE.
  • Αριθμητικοί τελεστές για την εκτέλεση αριθμητικών υπολογισμών που επιστρέφουν αριθμητικές τιμές.
  • Τελεστές συνένωσης κειμένου για τη σύνδεση δύο ή περισσότερων συμβολοσειρών κειμένου.
  • Λογικοί τελεστές που συνδυάζουν δύο ή περισσότερες παραστάσεις για να επιστρέψουν ένα μοναδικό αποτέλεσμα.

Για λεπτομερείς πληροφορίες σχετικά με τους τελεστές που χρησιμοποιούνται σε τύπους DAX, ανατρέξτε στην ενότητα Τελεστές DAX.

Εργασία με πίνακες και στήλες

Οι πίνακες σε μοντέλα δεδομένων σε μορφή πίνακα μοιάζουν με πίνακες του Excel, αλλά διαφέρουν στον τρόπο με τον οποίο λειτουργούν με δεδομένα και με τύπους:

  • Οι τύποι λειτουργούν μόνο με πίνακες και στήλες, όχι με μεμονωμένα κελιά, αναφορές περιοχών ή πίνακες.
  • Οι τύποι μπορούν να χρησιμοποιούν σχέσεις για τη λήψη τιμών από σχετικούς πίνακες. Οι τιμές που ανακτώνται σχετίζονται πάντα με την τρέχουσα τιμή γραμμής.
  • Δεν μπορείτε να έχετε ακανόνιστα ή "ακανόνιστα" δεδομένα, όπως μπορείτε να κάνετε σε ένα φύλλο εργασίας του Excel. Κάθε γραμμή σε έναν πίνακα πρέπει να περιέχει τον ίδιο αριθμό στηλών. Ωστόσο, μπορείτε να έχετε κενές τιμές σε ορισμένες στήλες. Οι πίνακες δεδομένων του Excel και οι πίνακες δεδομένων μοντέλου σε μορφή πίνακα δεν έχουν δυνατότητα εναλλαγής.
  • Επειδή ένας τύπος δεδομένων έχει οριστεί για κάθε στήλη, κάθε τιμή σε αυτή τη στήλη πρέπει να είναι του ίδιου τύπου.

Αναφορά σε πίνακες και στήλες σε τύπους

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


= SUM('New Sales'[Amount]) + SUM('Past Sales'[Amount])  

Όταν αξιολογείται ένας τύπος, το εργαλείο σχεδίασης μοντέλων πρώτα ελέγχει για γενική σύνταξη και, στη συνέχεια, ελέγχει τα ονόματα των στηλών και των πινάκων που παρέχετε σε σχέση με πιθανές στήλες και πίνακες στο τρέχον περιβάλλον. Εάν το όνομα είναι ασαφές ή εάν η στήλη ή ο πίνακας δεν μπορεί να βρεθεί, θα λάβετε ένα σφάλμα στον τύπο σας (μια #ERROR συμβολοσειρά αντί για μια τιμή δεδομένων στα κελιά όπου παρουσιάζεται το σφάλμα). Για να μάθετε περισσότερα σχετικά με τις απαιτήσεις ονοματοθεσίας για πίνακες, στήλες και άλλα αντικείμενα, ανατρέξτε στο θέμα Απαιτήσεις ονοματοθεσίας στη σύνταξη DAX.

Σχέσεις πινάκων

Δημιουργώντας σχέσεις μεταξύ πινάκων, αποκτάτε τη δυνατότητα οι σχετικές τιμές σε άλλους πίνακες να χρησιμοποιούνται σε υπολογισμούς. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε μια υπολογιζόμενη στήλη για να προσδιορίσετε όλες τις εγγραφές αποστολής που σχετίζονται με τον τρέχοντα μεταπωλητή και, στη συνέχεια, να συνοψίσετε τα έξοδα αποστολής για τον καθένα. Σε πολλές περιπτώσεις, ωστόσο, μια σχέση μπορεί να μην είναι απαραίτητη. Μπορείτε να χρησιμοποιήσετε τη συνάρτηση LOOKUPVALUE σε έναν τύπο για να επιστρέψετε την τιμή σε result_columnName για τη γραμμή που ικανοποιεί τα κριτήρια που καθορίζονται στα ορίσματα search_column και search_value .

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

Είναι σημαντικό να τηρείτε αυτούς τους κανόνες σχεδίασης τύπων όταν χρησιμοποιείτε σχέσεις:

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

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

Επεξεργασία και ανανέωση

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

Η Επεξεργασία (ανανέωση) ενημερώνει τα δεδομένα σε ένα μοντέλο με νέα δεδομένα από μια εξωτερική προέλευση δεδομένων.

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

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

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

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

Ενημερώσεις

Το DAX βελτιώνεται συνεχώς. Οι νέες και ενημερωμένες συναρτήσεις κυκλοφορούν με την επόμενη διαθέσιμη ενημέρωση, η οποία συνήθως είναι μηνιαία. Οι υπηρεσίες ενημερώνονται πρώτα και ακολουθούν εγκατεστημένες εφαρμογές όπως τα Power BI Desktop, Excel, SQL Server Management Studio (SSMS) και επέκταση έργου των Υπηρεσιών ανάλυσης για το Visual Studio (SSDT). Υπηρεσίες ανάλυσης του SQL Server ενημερώνεται με την επόμενη αθροιστική ενημέρωση. Οι νέες συναρτήσεις ανακοινώνονται για πρώτη φορά και περιγράφονται στην αναφορά συνάρτησης DAX που συμπίπτει με τις ενημερώσεις του Power BI Desktop.

Δεν υποστηρίζονται όλες οι συναρτήσεις σε παλαιότερες εκδόσεις του Υπηρεσίες ανάλυσης του SQL Server και του Excel.

Αντιμετώπιση προβλημάτων

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

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

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

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

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

Εφαρμογές και εργαλεία

Power BI Desktop

Power BI Desktop

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

Power Pivot στο Excel

Power Pivot in Excel

Το εργαλείο σχεδίασης μοντέλων Power Pivot στο Excel περιλαμβάνει ένα πρόγραμμα επεξεργασίας DAX για τη δημιουργία τύπων υπολογισμού DAX.

Visual Studio

Visual Studio

Το Visual Studio με επέκταση έργων Υπηρεσιών ανάλυσης (VSIX) χρησιμοποιείται για τη δημιουργία έργων μοντέλου Υπηρεσιών ανάλυσης. Η σχεδίαση μοντέλου σε μορφή πίνακα, η οποία εγκαταστάθηκε με την επέκταση έργων, περιλαμβάνει ένα πρόγραμμα επεξεργασίας DAX.

SQL Server Management Studio

SQL Server Management Studio

Το SQL Server Management Studio (SSMS) είναι ένα απαραίτητο εργαλείο για τη χρήση των Υπηρεσιών ανάλυσης. Το SSMS περιλαμβάνει ένα πρόγραμμα επεξεργασίας ερωτημάτων DAX για την υποβολή ερωτημάτων σε μορφή πίνακα και πολυδιάστατων μοντέλων.

DAX Studio

DAX Studio icon

Το DAX Studio είναι ένα εργαλείο προγράμματος-πελάτη ανοιχτού κώδικα για τη δημιουργία και εκτέλεση ερωτημάτων DAX σε μοντέλα των Υπηρεσιών ανάλυσης, του Power BI Desktop και του Power Pivot στο Excel.

Πρόγραμμα επεξεργασίας πινάκων

Tabular Editor icon

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

Πόροι εκμάθησης

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

Βίντεο

Χρησιμοποιήστε το DAX στον μαθησιακό δίαυλο του Power BI Desktop .

Ο απόλυτος οδηγός για το DAX από τον Alberto Ferrari και τον Marco Russo (Microsoft Press). Τώρα, στη δεύτερη έκδοσή του, αυτός ο εκτενής οδηγός παρέχει βασικά στοιχεία για καινοτόμες τεχνικές υψηλών επιδόσεων για την έναρξη μοντέλων δεδομένων και επαγγελματιών BI.

The Definitive Guide to DAX book image

Κοινότητα

Το DAX διαθέτει μια δραστήρια κοινότητα που είναι πάντα πρόθυμη να μοιραστεί τις γνώσεις της. Το Microsoft Κοινότητα Power BI διαθέτει ένα ειδικό φόρουμ συζητήσεων μόνο για DAX, εντολές DAX και Συμβουλές.