Σημείωση
Η πρόσβαση σε αυτή τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να συνδεθείτε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτή τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Παρόμοια με τον τρόπο που το Excel και η γλώσσα DAX έχουν μια IFERROR συνάρτηση, το Power Query έχει τη δική του σύνταξη για να ελέγχει και να εντοπίζει σφάλματα.
Όπως αναφέρθηκε στο άρθρο σχετικά με την αντιμετώπιση σφαλμάτων στο Power Query, τα σφάλματα μπορεί να εμφανίζονται είτε σε επίπεδο βήματος είτε σε επίπεδο κελιού. Αυτό το άρθρο εστιάζει στον τρόπο με τον οποίο μπορείτε να ενλάβετε και να διαχειριστείτε σφάλματα με βάση τη δική σας συγκεκριμένη λογική.
Note
Για να επιδείξετε αυτήν την έννοια, αυτό το άρθρο χρησιμοποιεί ένα βιβλίο εργασίας του Excel ως προέλευση δεδομένων του. Οι έννοιες που παρουσιάζονται εδώ ισχύουν για όλες τις τιμές στο Power Query και όχι μόνο για εκείνες που προέρχονται από ένα βιβλίο εργασίας του Excel.
Το δείγμα προέλευσης δεδομένων για αυτή την επίδειξη είναι ένα βιβλίο εργασίας του Excel με τον παρακάτω πίνακα.
Αυτός ο πίνακας από ένα βιβλίο εργασίας του Excel έχει σφάλματα του Excel όπως #NULL!, #REF! και #DIV/0! στη στήλη Τυπική χρέωση . Κατά την εισαγωγή αυτού του πίνακα στο πρόγραμμα επεξεργασίας Power Query, η παρακάτω εικόνα δείχνει την εμφάνισή του.
Παρατηρήστε πώς τα σφάλματα από το βιβλίο εργασίας του Excel εμφανίζονται με την [Error] τιμή σε καθένα από τα κελιά.
Σε αυτό το άρθρο, θα μάθετε πώς μπορείτε να αντικαταστήσετε ένα σφάλμα με μια άλλη τιμή. Επιπλέον, θα μάθετε επίσης πώς μπορείτε να λάβετε ένα σφάλμα και να το χρησιμοποιήσετε για τη δική σας συγκεκριμένη λογική.
Παροχή εναλλακτικής τιμής κατά την εύρεση σφαλμάτων
Σε αυτήν την περίπτωση, ο στόχος είναι να δημιουργήσετε μια νέα στήλη Τελική χρέωση στο δείγμα προέλευσης δεδομένων που χρησιμοποιεί τις τιμές από τη στήλη Τυπική χρέωση . Εάν υπάρχουν σφάλματα, τότε χρησιμοποιεί την τιμή από την αντίστοιχη στήλη Ειδικής Τιμής .
Για να δημιουργήσετε μια νέα προσαρμοσμένη στήλη, μεταβείτε στο μενού Προσθήκη στήλης και επιλέξτε Προσαρμοσμένη στήλη. Στο παράθυρο Προσαρμοσμένη στήλη , εισαγάγετε τον τύπο try [Standard Rate] otherwise [Special Rate]. Ονομάστε αυτή τη νέα στήλη Τελική τιμή.
Αυτός ο τύπος προσπαθεί να αξιολογήσει τη στήλη Τυπική χρέωση και εξάγει την τιμή της εάν δεν βρεθούν σφάλματα. Εάν εντοπιστούν σφάλματα στη στήλη Τυπική χρέωση , τότε η έξοδος είναι η τιμή που ορίζεται μετά τη otherwise δήλωση, η οποία σε αυτήν την περίπτωση είναι η στήλη Ειδική χρέωση .
Αφού προσθέσετε τους σωστούς τύπους δεδομένων σε όλες τις στήλες του πίνακα, η παρακάτω εικόνα δείχνει πώς θα εμφανίζεται ο τελικός πίνακας.
Note
Ως εναλλακτική προσέγγιση, μπορείτε επίσης να εισαγάγετε τον τύπο try [Standard Rate] catch ()=> [Special Rate], ο οποίος ισοδυναμεί με τον προηγούμενο τύπο, αλλά χρησιμοποιώντας τη λέξη-κλειδί catch με μια συνάρτηση που δεν απαιτεί παραμέτρους.
Η catch λέξη-κλειδί παρουσιάστηκε στο Power Query τον Μάιο του 2022.
Παροχή της δικής σας λογικής σφαλμάτων υπό όρους
Χρησιμοποιώντας το ίδιο δείγμα προέλευσης δεδομένων με την προηγούμενη ενότητα, ο νέος στόχος είναι να δημιουργήσετε μια νέα στήλη για την τελική τιμή. Εάν υπάρχει η τιμή από την Τυπική Χρέωση , τότε χρησιμοποιείται αυτή η τιμή. Διαφορετικά χρησιμοποιείται η τιμή από τη στήλη Ειδική Τιμή , εκτός από τις σειρές με οποιοδήποτε #REF! σφάλμα.
Note
Μοναδικός σκοπός της εξαίρεσης του #REF! σφάλματος είναι η επίδειξη. Με τις έννοιες που παρουσιάζονται σε αυτό το άρθρο, μπορείτε να στοχεύσετε οποιαδήποτε πεδία της επιλογής σας από την εγγραφή σφάλματος.
Όταν επιλέγετε οποιοδήποτε κενό διάστημα δίπλα στην τιμή σφάλματος, εμφανίζεται το παράθυρο λεπτομερειών στο κάτω μέρος της οθόνης. Το παράθυρο λεπτομερειών περιέχει τόσο την αιτία σφάλματος, όσο DataFormat.Errorκαι το μήνυμα σφάλματος, Invalid cell value '#REF!':
Μπορείτε να επιλέξετε μόνο ένα κελί κάθε φορά, ώστε να μπορείτε να εξετάζετε αποτελεσματικά μόνο τα στοιχεία σφάλματος μίας τιμής σφάλματος κάθε φορά. Σε αυτό το σημείο δημιουργείτε μια νέα προσαρμοσμένη στήλη και χρησιμοποιείτε την try παράσταση.
Χρήση try με προσαρμοσμένη λογική
Για να δημιουργήσετε μια νέα προσαρμοσμένη στήλη, μεταβείτε στο μενού Προσθήκη στήλης και επιλέξτε Προσαρμοσμένη στήλη. Στο παράθυρο Προσαρμοσμένη στήλη , εισαγάγετε τον τύπο try [Standard Rate]. Ονομάστε αυτή τη νέα στήλη Όλα τα σφάλματα.
Η try παράσταση μετατρέπει τιμές και σφάλματα σε μια τιμή εγγραφής που υποδεικνύει εάν η try παράσταση χειρίστηκε ένα σφάλμα ή όχι και την κατάλληλη τιμή ή την εγγραφή σφάλματος.
Μπορείτε να αναπτύξετε αυτήν τη στήλη που μόλις δημιουργήθηκε με τιμές εγγραφής και να εξετάσετε τα διαθέσιμα πεδία για ανάπτυξη, επιλέγοντας το εικονίδιο δίπλα στην κεφαλίδα της στήλης.
Αυτή η λειτουργία εμφανίζει τρία νέα πεδία:
- Όλα τα σφάλματα.HasError—εμφανίζει εάν η τιμή από τη στήλη Τυπική χρέωση είχε σφάλμα ή όχι.
-
Όλα τα σφάλματα.Τιμή—εάν η τιμή από τη στήλη Τυπική χρέωση δεν είχε σφάλμα, αυτή η στήλη εμφανίζει την τιμή από τη στήλη Τυπική χρέωση . Για τιμές με σφάλματα αυτό το πεδίο δεν είναι διαθέσιμο και κατά τη διάρκεια της λειτουργίας ανάπτυξης αυτή η στήλη έχει
nullτιμές. -
Όλα τα σφάλματα.Σφάλμα—εάν η τιμή από τη στήλη Τυπική χρέωση είχε σφάλμα, αυτή η στήλη εμφανίζει την καρτέλα σφάλματος για την τιμή από τη στήλη Τυπική χρέωση . Για τιμές χωρίς σφάλματα, αυτό το πεδίο δεν είναι διαθέσιμο και κατά τη διάρκεια της λειτουργίας ανάπτυξης αυτή η στήλη έχει
nullτιμές.
Για περαιτέρω διερεύνηση, μπορείτε να αναπτύξετε τη στήλη Όλα τα σφάλματα.Σφάλμα για να λάβετε τα τρία στοιχεία της καρτέλας σφάλματος:
- Αιτία σφάλματος
- Μήνυμα σφάλματος
- Λεπτομέρεια σφάλματος
Αφού εκτελέσετε τη λειτουργία ανάπτυξης, το πεδίο All Errors.Error.Message εμφανίζει το συγκεκριμένο μήνυμα σφάλματος που σας λέει ακριβώς ποιο σφάλμα Excel έχει κάθε κελί. Το μήνυμα σφάλματος προέρχεται από το πεδίο Μήνυμα σφάλματος της εγγραφής σφάλματος.
Τώρα, με κάθε μήνυμα σφάλματος σε μια νέα στήλη, μπορείτε να δημιουργήσετε μια νέα στήλη υπό όρους με το όνομα Τελική τιμή και τους ακόλουθους όρους:
- Εάν η τιμή στη στήλη All Errors.Error.Message ισούται
nullμε , τότε η έξοδος είναι η τιμή από τη στήλη Standard Rate . - Διαφορετικά, εάν η τιμή στη στήλη All Errors.Error.Message δεν ισούται με
Invalid cell value '#REF!'., τότε η έξοδος είναι η τιμή από τη στήλη Special Rate . - Αλλιώς, null.
Αφού διατηρήσετε μόνο τις στήλες Λογαριασμός, Τυπική χρέωση, Ειδική τιμή και Τελική χρέωση και προσθέσετε τον σωστό τύπο δεδομένων για κάθε στήλη, η παρακάτω εικόνα δείχνει πώς φαίνεται ο τελικός πίνακας.
Χρήση try και catch με προσαρμοσμένη λογική
Εναλλακτικά, μπορείτε επίσης να δημιουργήσετε μια νέα προσαρμοσμένη στήλη χρησιμοποιώντας τις try λέξεις-κλειδιά και catch .
try [Standard Rate] catch (r)=> if r[Message] <> "Invalid cell value '#REF!'." then [Special Rate] else null