Κατάλληλη χρήση συναρτήσεων σφάλματος
Ως δημιουργός μοντέλων δεδομένων, κατά την εγγραφή μιας παράστασης DAX που μπορεί να προκαλέσει ένα σφάλμα χρόνου αξιολόγησης, μπορείτε να εξετάσετε τη χρήση δύο χρήσιμων συναρτήσεων DAX.
- Η ISERROR συνάρτηση, η οποία λαμβάνει μια μοναδική παράσταση και επιστρέφει TRUE εάν αυτή η παράσταση οδηγεί σε σφάλμα.
- Η IFERROR συνάρτηση, η οποία λαμβάνει δύο παραστάσεις. Εάν η πρώτη παράσταση οδηγήσει σε σφάλμα, επιστρέφεται η τιμή για τη δεύτερη παράσταση. Στην πραγματικότητα, πρόκειται για μια πιο βελτιστοποιημένη υλοποίηση ένθεσης της συνάρτησης ISERROR μέσα σε μια συνάρτηση IF.
Ωστόσο, ενώ αυτές οι συναρτήσεις μπορεί να είναι χρήσιμες και μπορούν να συμβάλουν στη σύνταξη εύκολων στην κατανόηση παραστάσεων, μπορούν επίσης να υποβαθμίσουν σημαντικά την απόδοση των υπολογισμών. Αυτό μπορεί να συμβεί επειδή αυτές οι συναρτήσεις αυξάνουν τον αριθμό υποχρεωτικών σαρώσεων μηχανής αποθήκευσης.
Τα περισσότερα σφάλματα χρόνου αξιολόγησης οφείλονται σε μη αναμενόμενες κενές (LAN) ή μηδενικές τιμές, ή μη έγκυρη μετατροπή τύπου δεδομένων.
Συστάσεις
Είναι προτιμότερο να αποφύγετε τη χρήση των συναρτήσεων ISERROR και IFERROR. Αντίθετα, εφαρμόστε αμυντικές στρατηγικές όταν αναπτύσσετε παραστάσεις μοντέλου και σύνταξης. Οι στρατηγικές μπορεί να περιλαμβάνουν:
Διασφάλιση φόρτωσης ποιοτικών δεδομένων στο μοντέλο: Χρησιμοποιήστε μετασχηματισμούς Power Query για να καταργήσετε ή αντικαταστήσετε μη έγκυρες τιμές ή τιμές που απουσίες, και για να ορίσετε σωστούς τύπους δεδομένων. Ένας μετασχηματισμός Power Query μπορεί επίσης να χρησιμοποιηθεί για το φιλτράρισμα γραμμών όταν προκύπτουν σφάλματα, όπως μη έγκυρη μετατροπή δεδομένων.
Η ποιότητα των δεδομένων μπορεί επίσης να ελεγχθεί ορίζοντας τη στήλη μοντέλου ιδιότητας Is N ull ιδιότητα σε Ανενεργό, το οποίο θα αποτύχει στην ανανέωση δεδομένων σε περίπτωση που βρεθούν ΚΕΝΑ. Εάν παρουσιαστεί αυτή η αποτυχία, τα δεδομένα που φορτώθηκαν ως αποτέλεσμα μιας επιτυχημένης ανανέωσης θα παραμείνουν στους πίνακες.
Χρήση της συνάρτησης IF: Η παράσταση λογικής δοκιμής της συνάρτησης IF μπορεί να προσδιορίσει εάν προκύπτει ένα σφάλμα. Σημειώστε ότι, όπως οι συναρτήσεις ISERROR και IFERROR, αυτή η συνάρτηση μπορεί να οδηγήσει σε πρόσθετες σαρώσεις μηχανής αποθήκευσης, αλλά πιθανώς να έχει καλύτερη απόδοση από αυτές, καθώς δεν χρειάζεται να προκύψει σφάλμα.
Χρήση συναρτήσεων με ανοχή σφαλμάτων: Ορισμένες συναρτήσεις DAX θα δοκιμάσουν και αντισταθμίσουν συνθήκες σφάλματος. Αυτές οι συναρτήσεις σάς επιτρέπουν να εισαγάγετε ένα εναλλακτικό αποτέλεσμα που θα επιστραφεί στη θέση του. Η συνάρτηση DIVIDE είναι ένα τέτοιο παράδειγμα. Για πρόσθετες οδηγίες σχετικά με αυτή τη συνάρτηση, διαβάστε το άρθρο DAX: DIVIDE συνάρτηση σε σχέση με τον τελεστή διαίρεσης (/).
Παράδειγμα
Η παρακάτω παράσταση μέτρησης ελέγχει εάν θα προκύπτει σφάλμα. Επιστρέφει BLANK σε αυτήν την παρουσία (δηλαδή, όταν δεν παρέχετε στη συνάρτηση IF μια παράσταση value-if-false).
Profit Margin
= IF(ISERROR([Profit] / [Sales]))
Αυτή η επόμενη έκδοση της παράστασης μέτρησης έχει βελτιωθεί χρησιμοποιώντας τη συνάρτηση IFERROR αντί για τις IF και ISERROR συναρτήσεις.
Profit Margin
= IFERROR([Profit] / [Sales], BLANK())
Ωστόσο, αυτή η τελική έκδοση της παράστασης μέτρησης επιτυγχάνει το ίδιο αποτέλεσμα, αλλά πιο αποτελεσματικά και κομψά.
Profit Margin
= DIVIDE([Profit], [Sales])
Σχετικό περιεχόμενο
- Μαθησιακός δίαυλος: Χρήση DAX στο Power BI Desktop
- Ερωτήσεις? Δοκιμάστε να ρωτήσετε το κοινότητας του Power BI
- Προτάσεις? Συνεισφέρετε ιδέες για τη βελτίωση του Power BI