SWITCH
Ισχύει για:Υπολογιζόμενη στήληΥπολογιζόμενος πίνακαςMeasureΥπολογισμός απεικόνισης
Αξιολογεί μια παράσταση σε σχέση με μια λίστα valuesand επιστρέφει μία από τις πολλές πιθανές παραστάσεις αποτελέσματος. Αυτή η συνάρτηση μπορεί να χρησιμοποιηθεί για να αποφύγετε την ύπαρξη πολλών ένθετης IFstatements.
Σύνταξη
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
Παράμετροι
Όρος | Ορισμός |
---|---|
expression |
Οποιαδήποτε παράσταση DAX που επιστρέφει μια μοναδική ανυσματική value όπου η παράσταση πρέπει να αξιολογηθεί πολλές φορές (για κάθε γραμμή/περιβάλλον). |
value |
Μια σταθερά value να συμφωνεί με τα αποτελέσματα του expression . |
result |
Οποιαδήποτε ανυσματική παράσταση προς αξιολόγηση if τα αποτελέσματα της expression συμφωνεί με την αντίστοιχη value . |
else |
Οποιαδήποτε ανυσματική παράσταση προς αξιολόγηση if το αποτέλεσμα της expression δεν συμφωνεί με κανένα από τα value ορίσματα. |
Επιστροφή value
If υπάρχει αντιστοιχία με ένα value
, επιστρέφεται μια ανυσματική value από την αντίστοιχη result
.
If δεν υπάρχει αντιστοιχία με ένα value
, επιστρέφεται μια value από else
.
If
none της values
αντιστοίχισης δεν έχει καθοριστεί andelse
, επιστρέφεται BLANK.
Παρατηρήσεις
- Το
expression
προς αξιολόγηση μπορεί να είναι μια σταθερά valueor μια παράσταση. Μια συνήθης χρήση αυτής της συνάρτησης είναι ο ορισμός της παραμέτρου first σεTRUE
. Δείτε τα παρακάτω παραδείγματα. -
All
result
παραστάσεις and ηelse
παράσταση πρέπει να είναι του ίδιου τύπου δεδομένων. - Η σειρά των προϋποθέσεων έχει σημασία. Μόλις μία
value
συμφωνεί, επιστρέφεται η αντίστοιχηresult
and άλλες επόμενεςvalues
δεν αξιολογούνται. Βεβαιωθείτε ότι οι πιο περιοριστικέςvalues
προς αξιολόγηση καθορίζονται πριν από λιγότερο περιοριστικέςvalues
. Δείτε τα παρακάτω παραδείγματα.
Παραδείγματα
Μια συνήθης χρήση της SWITCH είναι η σύγκριση expression
με σταθερές values
. Το παρακάτω παράδειγμα δημιουργεί μια υπολογιζόμενη στήλη ονομάτων month:
= 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 είναι η replace πολλών ένθετης IFstatements. Αυτό επιτυγχάνεται ορίζοντας την παράσταση σε TRUE
, όπως φαίνεται στο παρακάτω παράδειγμα, η οποία συγκρίνει το επίπεδο αποθέματος and σημείου αναδιάταξης and επιπέδου αποθέματος ασφαλείας στα προϊόντα για τον εντοπισμό πιθανών κινδύνων από την εξαντλημένη απόθεμα:
= 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
έχει σημασία. Στο παρακάτω παράδειγμα, η secondresult
δεν επιστρέφεται ποτέ, επειδή η firstvalue είναι λιγότερο περιοριστική από την second. Το αποτέλεσμα σε αυτό το παράδειγμα είναι πάντα A
orC
, αλλά ποτέ δεν B
.
= SWITCH (
TRUE,
Product[Standard Cost] < 100, "A",
Product[Standard Cost] < 10, "B",
"C"
)
Η ακόλουθη πρόταση επιστρέφει μια error καθώς οι τύποι δεδομένων στα result
ορίσματα είναι διαφορετικοί. Να θυμάστε ότι οι τύποι δεδομένων σε allresult
andelse
ορίσματα πρέπει να είναι ίδιοι.
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)