ΔΙΑΚΌΠΤΗΣ
Ισχύει για: Υπολογισμός απεικόνισης υπολογιζόμενης στήλης υπολογιζόμενου πίνακα Μέτρηση
Αξιολογεί μια παράσταση σε σχέση με μια λίστα τιμών και επιστρέφει μία από τις πολλές πιθανές παραστάσεις αποτελέσματος. Αυτή η συνάρτηση μπορεί να χρησιμοποιηθεί για να αποφύγετε την ύπαρξη πολλών ένθετών δηλώσεων IF .
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
Όρος | Ορισμός |
---|---|
expression |
Οποιαδήποτε παράσταση DAX που επιστρέφει μια μοναδική ανυσματική τιμή όπου η παράσταση πρέπει να αξιολογηθεί πολλές φορές (για κάθε γραμμή/περιβάλλον). |
value |
Μια σταθερά που θα αντιστοιχιστεί με τα αποτελέσματα του expression . |
result |
Οποιαδήποτε ανυσματική παράσταση προς αξιολόγηση εάν τα αποτελέσματα του expression συμφωνούν με την αντίστοιχη value . |
else |
Οποιαδήποτε ανυσματική παράσταση προς αξιολόγηση εάν το αποτέλεσμα της expression δεν συμφωνεί με κανένα από τα value ορίσματα. |
Εάν υπάρχει αντιστοιχία με ένα value
, επιστρέφεται μια ανυσματική τιμή από την αντίστοιχη result
. Εάν δεν υπάρχει αντιστοιχία με ένα value
, επιστρέφεται μια τιμή από else
. Εάν δεν καθορίζεται καμία από τις values
και δεν έχει καθοριστεί else
, επιστρέφεται BLANK.
- Το
expression
προς αξιολόγηση μπορεί να είναι μια σταθερή τιμή ή μια παράσταση. Μια συνήθης χρήση αυτής της συνάρτησης είναι ο ορισμός της πρώτης παραμέτρου σεTRUE
. Δείτε τα παρακάτω παραδείγματα. - Όλες οι
result
παραστάσεις και ηelse
παράσταση πρέπει να έχουν τον ίδιο τύπο δεδομένων. - Η σειρά των προϋποθέσεων έχει σημασία. Μόλις μία
value
συμφωνεί, επιστρέφεται η αντίστοιχηresult
και άλλες επόμενεςvalues
δεν αξιολογούνται. Βεβαιωθείτε ότι οι πιο περιοριστικέςvalues
προς αξιολόγηση καθορίζονται πριν από λιγότερο περιοριστικέςvalues
. Δείτε τα παρακάτω παραδείγματα.
Μια συνήθης χρήση του SWITCH είναι η σύγκριση expression
με σταθερές values
. Το παρακάτω παράδειγμα δημιουργεί μια υπολογιζόμενη στήλη ονομάτων μηνών:
= SWITCH (
[Month Number Of Year],
1, "January",
2, "February",
3, "March",
4, "April",
5, "May",
6, "June",
7, "July",
8, "August",
9, "September",
10, "October",
11, "November",
12, "December",
"Unknown month number"
)
Μια άλλη συνήθης χρήση του SWITCH είναι η αντικατάσταση πολλών ένθετών δηλώσεων IF. Αυτό επιτυγχάνεται ορίζοντας την παράσταση σε TRUE
, όπως φαίνεται στο παρακάτω παράδειγμα, η οποία συγκρίνει το επίπεδο αποθέματος αναδιάταξης και ασφάλειας σε προϊόντα για τον εντοπισμό πιθανών κινδύνων από την εξαντλημένη απόθεμα:
= SWITCH (
TRUE,
[Reorder Point] > [Safety Stock Level], "Good: Safety stock level exceeded",
[Reorder Point] = [Safety Stock Level], "Minimal: Safety stock level met",
[Reorder Point] < [Safety Stock Level], "At risk: Safety stock level not met",
ISBLANK ( [Reorder Point] ), "Incomplete: Reorder point not set",
ISBLANK ( [Safety Stock Level] ), "Incomplete: Safety stock level not set",
"Unknown"
)
Η σειρά των values
έχει σημασία. Στο παρακάτω παράδειγμα, η δεύτερη result
δεν επιστρέφεται ποτέ, επειδή η πρώτη τιμή είναι λιγότερο περιοριστική από τη δεύτερη. Το αποτέλεσμα σε αυτό το παράδειγμα είναι πάντα A
ή C
, αλλά ποτέ δεν B
.
= SWITCH (
TRUE,
Product[Standard Cost] < 100, "A",
Product[Standard Cost] < 10, "B",
"C"
)
Η ακόλουθη πρόταση επιστρέφει ένα σφάλμα, επειδή οι τύποι δεδομένων στα result
ορίσματα είναι διαφορετικοί. Να θυμάστε ότι οι τύποι δεδομένων σε όλες result
και else
ορίσματα πρέπει να είναι ίδιοι.
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)