Ανάγνωση στα Αγγλικά

Κοινή χρήση μέσω


ΔΙΑΚΌΠΤΗΣ

Ισχύει για: Υπολογισμός απεικόνισης υπολογιζόμενης στήλης υπολογιζόμενου πίνακα Μέτρηση

Αξιολογεί μια παράσταση σε σχέση με μια λίστα τιμών και επιστρέφει μία από τις πολλές πιθανές παραστάσεις αποτελέσματος. Αυτή η συνάρτηση μπορεί να χρησιμοποιηθεί για να αποφύγετε την ύπαρξη πολλών ένθετών δηλώσεων 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
        )