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


Χρήση SELECTEDVALUE αντί για VALUES

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

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

Australian Sales Tax =
IF(
    HASONEVALUE(Customer[Country-Region]),
    IF(
        VALUES(Customer[Country-Region]) = "Australia",
        [Sales] * 0.10
    )
)

Στο παράδειγμα, η συνάρτηση HASONEVALUE επιστρέφει TRUE μόνο όταν μια μεμονωμένη τιμή της στήλης Χώρα-Περιοχή είναι ορατή στο τρέχον περιβάλλον φίλτρου. Όταν είναι TRUE, η συνάρτηση VALUES συγκρίνεται με το ακριβές κείμενο "Αυστραλία". Όταν η συνάρτηση VALUES επιστρέφει TRUE, η μέτρηση Sales πολλαπλασιάζεται με 0,10 (αντιπροσωπεύει 10%). Εάν η συνάρτηση HASONEVALUE επιστρέψει FALSE, επειδή περισσότερες από μία τιμές φιλτράρουν τη στήλη - η πρώτη συνάρτηση IF επιστρέφει BLANK.

Η χρήση της HASONEVALUE είναι μια αμυντική τεχνική. Είναι υποχρεωτικό καθώς είναι πιθανό πολλές τιμές να φιλτράρουν τη στήλη Χώρα-Περιοχή. Στην περίπτωση αυτή, η συνάρτηση VALUES επιστρέφει έναν πίνακα πολλών γραμμών. Η σύγκριση ενός πίνακα πολλών γραμμών με μια ανυσματική τιμή οδηγεί σε σφάλμα.

Σύσταση

Συνιστάται να χρησιμοποιήσετε τη συνάρτηση SELECTEDVALUE. Επιτυγχάνει το ίδιο αποτέλεσμα με το μοτίβο που περιγράφεται σε αυτό το άρθρο, αλλά πιο αποτελεσματικά και κομψά.

Χρησιμοποιώντας τη συνάρτηση SELECTEDVALUE, το παράδειγμα ορισμού μέτρησης γράφεται ξανά.

Australian Sales Tax =
IF(
    SELECTEDVALUE(Customer[Country-Region]) = "Australia",
    [Sales] * 0.10
)

Φιλοδώρημα

Είναι δυνατή η διαβίβαση μιας εναλλακτικής τιμής αποτελέσματος στη συνάρτηση SELECTEDVALUE. Η εναλλακτική τιμή αποτελέσματος επιστρέφεται όταν δεν εφαρμόζονται φίλτρα ή πολλαπλά φίλτρα στη στήλη.