Χρήση τελεστών DAX
Οι τύποι DAX σας μπορούν να χρησιμοποιήσουν τελεστές για να δημιουργήσουν παραστάσεις που εκτελούν αριθμητικούς υπολογισμούς, συγκρίνουν τιμές, εργάζονται με συμβολοσειρές ή δοκιμάζουν συνθήκες.
Συμβουλή
Πολλοί τελεστές DAX και η σειρά προτεραιότητας είναι ίδιοι με εκείνους στο Excel.
Αριθμητικοί τελεστές
Ο παρακάτω πίνακας αναφέρει τους αριθμητικούς τελεστές.
Τελεστής | Περιγραφή |
---|---|
+ | Πρόσθεση |
- | Αφαίρεση |
* | Πολλαπλασιασμός |
/ | Διαίρεση |
^ | Εκθετοποίηση |
Να θυμάστε ότι όταν διαιρείτε δύο παραστάσεις και όταν ο παρονομαστής μπορεί να επιστρέψει μηδέν ή ΚΕΝΟ, είναι πιο αποδοτικό και ασφαλέστερο να χρησιμοποιήσετε τη DIVIDE
συνάρτηση DAX.
Τελεστές σύγκρισης
Ο παρακάτω πίνακας αναφέρει τους τελεστές σύγκρισης, οι οποίοι χρησιμοποιούνται για τη σύγκριση δύο τιμών. Το αποτέλεσμα είναι είτε TRUE, είτε FALSE.
Τελεστής | Περιγραφή |
---|---|
= | Ίσο με |
== | Αυστηρά ίσο με |
> | Μεγαλύτερο από |
< | Μικρότερο από |
>= | Μεγαλύτερο ή ίσο του |
<= | Μικρότερο από ή ίσο με |
<> | Δεν ισούται με |
Όλοι οι τελεστές σύγκρισης, με την εξαίρεση του αυστηρά ίσο με (==), αντιμετωπίζουν το ΚΕΝΟ ως ίσο με τον αριθμό μηδέν, μια κενή συμβολοσειρά (""), την ημερομηνία 30 Δεκεμβρίου 1899 ή το FALSE. Αυτό σημαίνει ότι η παράσταση [Revenue] = 0
θα είναι TRUE όταν η τιμή είναι [Revenue]
μηδέν ή ΚΕΝΉ. Αντίθετα, [Revenue] == 0
το είναι TRUE μόνο όταν η τιμή είναι [Revenue]
μηδέν.
Τελεστής συνένωσης κειμένου
Χρησιμοποιήστε τον χαρακτήρα εμπορικού "και" (&) για να συνδέσετε ή συνενώσετε δύο τιμές κειμένου, ώστε να παράγετε μια τιμή συνεχόμενου κειμένου. Για παράδειγμα, εξετάστε τον παρακάτω ορισμό υπολογιζόμενης στήλης:
Model Color = 'Product'[Model] & "-" & 'Product'[Color]
Λογικοί τελεστές
Χρησιμοποιήστε λογικούς τελεστές για να συνδυάσετε παραστάσεις που παράγουν ένα μοναδικό αποτέλεσμα. Ο παρακάτω πίνακας αναφέρει όλους τους λογικούς τελεστές.
Τελεστής | Περιγραφή |
---|---|
&& | Δημιουργεί μια συνθήκη AND μεταξύ δύο παραστάσεων όπου καθεμία έχει ένα δυαδικό αποτέλεσμα. Εάν αμφότερες οι παραστάσεις επιστρέφουν TRUE, ο συνδυασμός των παραστάσεων επιστρέφει επίσης TRUE. Διαφορετικά, ο συνδυασμός επιστρέφει FALSE. |
|| (διπλή διοχέτευση) | Δημιουργεί μια συνθήκη OR μεταξύ δύο λογικών παραστάσεων. Εάν οποιαδήποτε από τις παραστάσεις επιστρέψει την τιμή TRUE, το αποτέλεσμα είναι TRUE. Μόνο όταν και οι δύο παραστάσεις επιστρέψουν την τιμή FALSE, το αποτέλεσμα είναι FALSE. |
IN | Δημιουργεί μια συνθήκη λογικού OR μεταξύ κάθε γραμμής που συγκρίνεται με έναν πίνακα. Σημείωση: Η σύνταξη κατασκευής πίνακα χρησιμοποιεί άγκιστρα. |
NOT | Αντιστρέφει την κατάσταση μιας δυαδικής παράστασης (FALSE σε TRUE και το αντίστροφο). |
Ένα παράδειγμα που χρησιμοποιεί τον IN
λογικό τελεστή είναι ο ορισμός μέτρησης Έσοδα ANZ , ο οποίος χρησιμοποιεί τη συνάρτηση DAX για την CALCULATE
επιβολή ενός συγκεκριμένου φίλτρου δύο χωρών: Αυστραλία και Νέα Ζηλανδία.
Σημείωση
Θα μάθετε για την πανίσχυρη CALCULATE
συνάρτηση όταν μάθετε πώς μπορείτε να τροποποιήσετε το περιβάλλον φίλτρου.
ANZ Revenue =
CALCULATE(
[Revenue],
Customer[Country-Region] IN {
"Australia",
"New Zealand"
}
)
Προτεραιότητα τελεστών
Όταν ο τύπος DAX σας περιλαμβάνει πολλούς τελεστές, το DAX χρησιμοποιεί κανόνες για τον προσδιορισμό της σειράς αξιολόγησης, γνωστή ως προτεραιότητα τελεστών. Οι λειτουργίες ταξινομούνται σύμφωνα με τον παρακάτω πίνακα.
Τελεστής | Περιγραφή |
---|---|
^ | Ύψωση σε δύναμη |
- | Πρόσημο (όπως στο -1) |
* και / | Πολλαπλασιασμός και διαίρεση |
NOT | NOT |
+ και - | Προσθήκη και αφαίρεση |
& | Συνένωση δύο συμβολοσειρών κειμένου |
=,==,<,,<>=,>=,<> | Σύγκριση |
Όταν οι τελεστές έχουν ίση τιμή προτεραιότητας, διατάσσονται από αριστερά προς τα δεξιά.
Γενικά, η προτεραιότητα τελεστών είναι ίδια με εκείνη στο Excel. Εάν χρειαστεί να αντικαταστήσετε τη σειρά αξιολόγησης, τότε ομαδοποιήστε λειτουργίες μέσα σε παρενθέσεις.
Για παράδειγμα, εξετάστε τον παρακάτω ορισμό υπολογιζόμενης στήλης:
Extended Amount = Sales[Order Quantity] * Sales[Unit Price] * 1 - [Unit Price Discount Pct]
Αυτό το δείγμα ορισμού υπολογιζόμενης στήλης παράγει ένα λανθασμένο αποτέλεσμα, καθώς πραγματοποιείται πολλαπλασιασμός πριν την αφαίρεση. Ο παρακάτω σωστός ορισμός υπολογιζόμενης στήλης χρησιμοποιεί παρενθέσεις για να εξασφαλίσει ότι οι αφαιρέσεις πραγματοποιούνται πριν τους πολλαπλασιασμούς.
Extended Amount = Sales[Order Quantity] * Sales[Unit Price] * (1 - [Unit Price Discount Pct])
Συμβουλή
Η απομνημόνευση των κανόνων προτεραιότητας τελεστών μπορεί να είναι δύσκολη, ιδιαίτερα για τους αρχάριους στο DAX. Κατά συνέπεια, συνιστούμε να ελέγχετε τους τύπους σας σχολαστικά. Όταν οι τύποι δεν παράγουν το σωστό αποτέλεσμα λόγω μιας λανθασμένης σειράς αξιολόγησης, μπορείτε να πειραματιστείτε προσθέτοντας παρενθέσεις για να ρυθμίσετε τη σειρά αξιολόγησης. Μπορείτε, επίσης, να προσθέσετε παρενθέσεις για να βελτιώσετε την αναγνωσιμότητα των τύπων σας.
Για περισσότερες πληροφορίες σχετικά με τους τελεστές DAX και τη σειρά προτεραιότητας, ανατρέξτε στην ενότητα Τελεστές DAX.
Έμμεση μετατροπή
Όταν γράφετε έναν τύπο DAX που χρησιμοποιεί τελεστές για να συνδυάζει διαφορετικούς τύπους δεδομένων, δεν χρειάζεται ρητή μετατροπή των τύπων. Συνήθως, το DAX αναγνωρίζει αυτόματα τους τύπους δεδομένων αντικειμένων μοντέλου που αναφέρονται και εκτελεί έμμεσες μετατροπές, όπου χρειάζεται, για την ολοκλήρωση της καθορισμένης λειτουργίας.
Ωστόσο, μπορεί να υπάρχουν ορισμένοι περιορισμοί στις τιμές που μπορούν να μετατραπούν επιτυχώς. Εάν μια τιμή ή στήλη έχει έναν τύπο δεδομένων που είναι ασύμβατος με την τρέχουσα λειτουργία, το DAX επιστρέφει ένα σφάλμα. Για παράδειγμα, η προσπάθεια πολλαπλασιασμού μιας τιμής ημερομηνίας θα δημιουργήσει ένα σφάλμα καθώς δεν είναι λογική.
Η διαχείριση του BLANK γίνεται διαφορετικά, ανάλογα με τον τελεστή που χρησιμοποιείται. Η αντιμετώπισή του είναι παρόμοια με τον τρόπο που το Εxcel αντιμετωπίζει ΚΕΝΕΣ τιμές, διαφορετικά όμως ως προς τον τρόπο που οι βάσεις δεδομένων (SQL) αντιμετωπίζουν τιμές NULL. Το ΚΕΝΟ αντιμετωπίζεται ως μηδέν όταν ενεργούμε σε αυτό με αριθμητικούς τελεστές και ως κενή συμβολοσειρά όταν συνενώνεται σε μια συμβολοσειρά.
Συμβουλή
Μπορεί να είναι δύσκολο να θυμηθείτε πώς να αντιμετωπίζετε το ΚΕΝΟ, ιδιαίτερα για αρχάριους στο DAX. Κατά συνέπεια, συνιστούμε να ελέγχετε τους τύπους σας σχολαστικά. Όταν ΚΕΝΕΣ τιμές δημιουργούν μη αναμενόμενα αποτελέσματα, εξετάστε το ενδεχόμενο να χρησιμοποιήσετε τις IF
συναρτήσεις και ISBLANK
DAX για να ελέγξετε για BLANK και, στη συνέχεια, να απαντήσετε με τον κατάλληλο τρόπο.