Σημείωμα
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να εισέλθετε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Εάν βρεθείτε σε μια κατάσταση όπου πρέπει να εφαρμόσετε το ίδιο σύνολο μετασχηματισμών σε διαφορετικά ερωτήματα ή τιμές, η δημιουργία μιας προσαρμοσμένης συνάρτησης Power Query που μπορεί να επαναχρησιμοποιηθεί όσες φορές χρειάζεστε θα μπορούσε να είναι επωφελής. Μια προσαρμοσμένη συνάρτηση Power Query είναι μια αντιστοίχιση από ένα σύνολο τιμών εισόδου σε μία μόνο τιμή εξόδου και δημιουργείται από εγγενείς συναρτήσεις και τελεστές M.
Μπορείτε να δημιουργήσετε με μη αυτόματο τρόπο τη δική σας Power Query προσαρμοσμένη συνάρτηση χρησιμοποιώντας τη γλώσσα τύπων Power Query M ή το Power Query περιβάλλον εργασίας χρήστη σάς προσφέρει δυνατότητες για να επιταχύνετε, να απλοποιήσετε και να βελτιώσετε τη διαδικασία δημιουργίας και διαχείρισης μιας προσαρμοσμένης συνάρτησης.
Πρώτα θα καλύψουμε τα βασικά βήματα για τη δημιουργία μιας προσαρμοσμένης συνάρτησης με κώδικα στη διεπαφή χρήστη και, στη συνέχεια, θα επικεντρωθούμε στη χρήση της διεπαφής για τη μετατροπή σύνθετων ενεργειών σε επαναχρησιμοποιήσιμη συνάρτηση.
Σημαντικό
Αυτό το άρθρο περιγράφει τον τρόπο δημιουργίας μιας προσαρμοσμένης συνάρτησης με το Power Query χρησιμοποιώντας κοινούς μετασχηματισμούς που είναι προσβάσιμοι στο περιβάλλον εργασίας χρήστη του Power Query. Εστιάζει στις βασικές έννοιες για τη δημιουργία προσαρμοσμένων συναρτήσεων και συνδέεται με άλλα άρθρα στην τεκμηρίωση του Power Query για περισσότερες πληροφορίες σχετικά με συγκεκριμένους μετασχηματισμούς που αναφέρονται σε αυτό το άρθρο.
Δημιουργία προσαρμοσμένης συνάρτησης από κώδικα στο περιβάλλον εργασίας χρήστη
Σημείωμα
Μπορείτε να ακολουθήσετε τα παρακάτω βήματα στο Power BI Desktop ή χρησιμοποιώντας την εμπειρία Power Query που βρίσκεται στο Excel για Windows.
Χρησιμοποιήστε την εμπειρία σύνδεσης για να συνδεθείτε στα δεδομένα σας όπου βρίσκονται. Όταν επιλέξετε τα δεδομένα σας, επιλέξτε το κουμπί Μετασχηματισμός δεδομένων ή Επεξεργασία . Αυτό θα σας μεταφέρει στην εμπειρία Power Query.
Κάντε δεξί κλικ σε ένα κενό σημείο στο τμήμα παραθύρου Ερωτήματα στα αριστερά.
Επιλέξτε Κενό ερώτημα.
Στο νέο κενό παράθυρο ερωτήματος, επιλέξτε το μενού Αρχική σελίδα και, στη συνέχεια, το Προηγμένο πρόγραμμα επεξεργασίας.
Αντικαταστήστε το πρότυπο με την προσαρμοσμένη λειτουργία σας. Για παράδειγμα:
let HelloWorld = () => ("Hello World") in HelloWorldΕπιλέξτε Τέλος.
Για περισσότερες πληροφορίες σχετικά με την ανάπτυξη προσαρμοσμένων συναρτήσεων με τη γλώσσα τύπων Power Query M, ανατρέξτε σε αυτό το άρθρο: Κατανόηση Power Query συναρτήσεων M. Στις παρακάτω ενότητες, υπάρχουν προγράμματα εκμάθησης που περιγράφουν τον τρόπο με τον οποίο μπορείτε να χρησιμοποιήσετε το περιβάλλον εργασίας χρήστη του Power Query για να αναπτύξετε προσαρμοσμένες συναρτήσεις χωρίς να συντάξετε κώδικα, καθώς και οδηγίες σχετικά με τον τρόπο με τον οποίο μπορείτε να καλέσετε την προσαρμοσμένη συνάρτηση στο ερώτημά σας.
Δημιουργία προσαρμοσμένης συνάρτησης από ένα σεμινάριο αναφοράς πίνακα
Σημείωμα
Το παρακάτω παράδειγμα δημιουργήθηκε χρησιμοποιώντας την εμπειρία επιφάνειας εργασίας που βρίσκεται στο Power BI Desktop και μπορεί επίσης να ακολουθηθεί χρησιμοποιώντας την εμπειρία Power Query που βρίσκεται στο Excel για Windows.
Μπορείτε να ακολουθήσετε αυτό το παράδειγμα κάνοντας λήψη των δειγμάτων αρχείων που χρησιμοποιούνται σε αυτό το άρθρο από τον ακόλουθο σύνδεσμο λήψης. Για λόγους απλότητας, αυτό το άρθρο χρησιμοποιεί τη σύνδεση φακέλου. Για να μάθετε περισσότερα σχετικά με τη σύνδεση φακέλου, μεταβείτε στο φάκελο Φάκελος. Ο στόχος αυτού του παραδείγματος είναι να δημιουργήσετε μια προσαρμοσμένη συνάρτηση που μπορεί να εφαρμοστεί σε όλα τα αρχεία αυτού του φακέλου πριν συνδυάσετε όλα τα δεδομένα από όλα τα αρχεία σε έναν μόνο πίνακα.
Ξεκινήστε χρησιμοποιώντας την εμπειρία σύνδεσης φακέλων για να μεταβείτε στον φάκελο όπου βρίσκονται τα αρχεία σας και επιλέξτε Μετασχηματισμός δεδομένων ή Επεξεργασία. Αυτά τα βήματα σάς μεταφέρουν στην εμπειρία Power Query. Κάντε δεξί κλικ στην τιμή Binary της επιλογής σας από το πεδίο Content και επιλέξτε την επιλογή Add as New Query . Για αυτό το παράδειγμα, η επιλογή έγινε για το πρώτο αρχείο από τη λίστα, το οποίο τυχαίνει να είναι το αρχείο Απρίλιος 2019.csv.
Αυτή η επιλογή δημιουργεί ουσιαστικά ένα νέο ερώτημα με ένα βήμα περιήγησης απευθείας σε αυτό το αρχείο ως δυαδικό αρχείο και το όνομα αυτού του νέου ερωτήματος είναι η διαδρομή αρχείου του επιλεγμένου αρχείου. Μετονομάστε αυτό το ερώτημα σε Δείγμα αρχείου.
Δημιουργήστε μια νέα παράμετρο με όνομα Παράμετρος αρχείου και τύπο Δυαδικό. Χρησιμοποιήστε το ερώτημα δείγματος αρχείου ως προεπιλεγμένη τιμή και τρέχουσα τιμή.
Σημείωμα
Σας συνιστούμε να διαβάσετε το άρθρο σχετικά με το Χρήση παραμέτρων για να κατανοήσετε καλύτερα τον τρόπο δημιουργίας και διαχείρισης παραμέτρων στο Power Query.
Οι προσαρμοσμένες συναρτήσεις μπορούν να δημιουργηθούν χρησιμοποιώντας οποιονδήποτε τύπο παραμέτρων. Δεν υπάρχει καμία απαίτηση για οποιαδήποτε προσαρμοσμένη συνάρτηση να έχει ένα δυαδικό αρχείο ως παράμετρο.
Ο τύπος δυαδικής παραμέτρου εμφανίζεται μόνο μέσα στο αναπτυσσόμενο μενού Τύπος παραθύρου διαλόγου Παράμετροι όταν έχετε ένα ερώτημα που αποτιμάται σε δυαδικό.
Είναι δυνατή η δημιουργία μιας προσαρμοσμένης συνάρτησης χωρίς παράμετρο. Αυτό παρατηρείται συνήθως σε σενάρια όπου μια είσοδος μπορεί να συναχθεί από το περιβάλλον όπου καλείται η συνάρτηση. Για παράδειγμα, μια συνάρτηση που λαμβάνει την τρέχουσα ημερομηνία και ώρα του περιβάλλοντος και δημιουργεί μια συγκεκριμένη συμβολοσειρά κειμένου από αυτές τις τιμές.
Κάντε δεξί κλικ στην επιλογή Παράμετρος αρχείου από το παράθυρο Ερωτήματα . Επιλέξτε την επιλογή Αναφορά.
Μετονομάστε το ερώτημα που μόλις δημιουργήσατε από Παράμετρος αρχείου (2) σε Μετασχηματισμός δείγματος αρχείου.
Κάντε δεξί κλικ σε αυτό το νέο ερώτημα Transform Sample file και επιλέξτε Create Function .
Αυτή η λειτουργία δημιουργεί αποτελεσματικά μια νέα συνάρτηση που συνδέεται με το ερώτημα δείγματος αρχείου μετασχηματισμού . Τυχόν αλλαγές που κάνετε στο ερώτημα Μετασχηματισμός δείγματος αρχείου αναπαράγονται αυτόματα στην προσαρμοσμένη συνάρτηση σας. Κατά τη δημιουργία αυτής της νέας συνάρτησης, χρησιμοποιήστε το αρχείο Transform ως όνομα συνάρτησης.
Αφού δημιουργήσετε τη συνάρτηση, παρατηρήστε ότι δημιουργείται μια νέα ομάδα για εσάς με το όνομα της συνάρτησης σας. Αυτή η νέα ομάδα περιλαμβάνει:
- Όλες οι παράμετροι που αναφέρονται στο ερώτημα δείγματος αρχείου μετασχηματισμού .
- Το ερώτημα δείγματος αρχείου μετασχηματισμού , κοινώς γνωστό ως δείγμα ερωτήματος.
- Η συνάρτηση που μόλις δημιουργήσατε, σε αυτήν την περίπτωση το αρχείο Transform.
Εφαρμογή μετασχηματισμών σε δείγμα ερωτήματος
Με τη δημιουργία της νέας συνάρτησης, επιλέξτε το ερώτημα με το όνομα Μετασχηματισμός δείγματος αρχείου. Αυτό το ερώτημα είναι τώρα συνδεδεμένο με τη συνάρτηση Transform file , επομένως τυχόν αλλαγές που γίνονται σε αυτό το ερώτημα αντικατοπτρίζονται στη συνάρτηση. Αυτή η σύνδεση είναι αυτό που είναι γνωστό ως η έννοια ενός δείγματος ερωτήματος που συνδέεται με μια συνάρτηση.
Ο πρώτος μετασχηματισμός που πρέπει να συμβεί σε αυτό το ερώτημα είναι αυτός που ερμηνεύει το δυαδικό. Μπορείτε να κάνετε δεξί κλικ στο δυαδικό αρχείο από το παράθυρο προεπισκόπησης και να επιλέξετε την επιλογή CSV για να ερμηνεύσετε το δυαδικό αρχείο ως αρχείο CSV.
Η μορφή όλων των αρχείων CSV στο φάκελο είναι η ίδια. Όλα έχουν μια κεφαλίδα που εκτείνεται στις τέσσερις πρώτες σειρές. Οι κεφαλίδες στηλών βρίσκονται στη σειρά 5 και τα δεδομένα ξεκινούν από τη σειρά 6 προς τα κάτω, όπως φαίνεται στην επόμενη εικόνα.
Το επόμενο σύνολο βημάτων μετασχηματισμού που πρέπει να εφαρμοστούν στο αρχείο δείγματος μετασχηματισμού είναι:
Κατάργηση των τεσσάρων πρώτων γραμμών – Αυτή η ενέργεια καταργεί τις γραμμές που θεωρούνται μέρος της ενότητας κεφαλίδας του αρχείου.
Σημείωμα
Για να μάθετε περισσότερα σχετικά με τον τρόπο κατάργησης γραμμών ή φιλτραρίσματος ενός πίνακα κατά θέση γραμμής, μεταβείτε στην ενότητα Φιλτράρισμα πίνακα κατά θέση γραμμής.
Προβιβασμός κεφαλίδων—Οι κεφαλίδες για τον τελικό πίνακα βρίσκονται τώρα στην πρώτη γραμμή του πίνακα. Μπορείτε να τα προωθήσετε όπως φαίνεται στην επόμενη εικόνα.
Μετά τον προβιβασμό των κεφαλίδων στηλών σας, Power Query από προεπιλογή προσθέτει αυτόματα ένα νέο βήμα Αλλαγμένος τύπος που εντοπίζει αυτόματα τους τύπους δεδομένων για κάθε στήλη. Το ερώτημα "Μετασχηματισμός δείγματος αρχείου " μοιάζει με την επόμενη εικόνα.
Σημείωμα
Για να μάθετε περισσότερα σχετικά με τον τρόπο προβιβασμού και υποβιβασμού κεφαλίδων, μεταβείτε στην ενότητα Προβιβασμός ή υποβιβασμός κεφαλίδων στηλών.
Προσοχή
Η συνάρτηση Transform file βασίζεται στα βήματα που εκτελούνται στο ερώτημα Transform Sample file . Ωστόσο, εάν προσπαθήσετε να τροποποιήσετε με μη αυτόματο τρόπο τον κώδικα για τη συνάρτηση Transform file , θα εμφανιστεί μια προειδοποίηση που λέει The definition of the function 'Transform file' is updated whenever query 'Transform Sample file' is updated. However, updates will stop if you directly modify function 'Transform file'.
Κλήση προσαρμοσμένης συνάρτησης ως νέας στήλης
Με τη δημιουργία της προσαρμοσμένης συνάρτησης και την ενσωμάτωση όλων των βημάτων μετασχηματισμού, μπορείτε να επιστρέψετε στο αρχικό ερώτημα όπου έχετε τη λίστα των αρχείων από το φάκελο (Αρχεία CSV σε αυτό το παράδειγμα). Μέσα στην καρτέλα Προσθήκη στήλης στην κορδέλα, επιλέξτε Κλήση προσαρμοσμένης συνάρτησης από την ομάδα Γενικά . Μέσα στο παράθυρο Κλήση προσαρμοσμένης συνάρτησης , εισαγάγετε Πίνακας εξόδου ως όνομα νέας στήλης. Επιλέξτε το όνομα της συνάρτησής σας, Μετασχηματισμός αρχείου, από την αναπτυσσόμενη λίστα Ερώτημα συνάρτησης . Αφού επιλέξετε τη συνάρτηση από το αναπτυσσόμενο μενού, εμφανίζεται η παράμετρος για τη συνάρτηση και μπορείτε να επιλέξετε ποια στήλη από τον πίνακα θα χρησιμοποιήσετε ως όρισμα για αυτήν τη συνάρτηση. Επιλέξτε τη στήλη Περιεχόμενο ως τιμή / όρισμα που θα μεταβιβαστεί για την παράμετρο αρχείου.
Αφού επιλέξετε OK, δημιουργείται μια νέα στήλη με το όνομα Πίνακας εξόδου . Αυτή η στήλη έχει τιμές πίνακα στα κελιά της, όπως φαίνεται στην επόμενη εικόνα. Για λόγους απλότητας, καταργήστε όλες τις στήλες από αυτόν τον πίνακα εκτός από το Όνομα και τον Πίνακα εξόδου.
Σημείωμα
Για να μάθετε περισσότερα σχετικά με τον τρόπο επιλογής ή κατάργησης στηλών από έναν πίνακα, μεταβείτε στην ενότητα Επιλογή ή κατάργηση στηλών.
Η συνάρτησή σας εφαρμόστηκε σε κάθε γραμμή από τον πίνακα χρησιμοποιώντας τις τιμές από τη στήλη Content ως όρισμα για τη συνάρτησή σας. Τώρα που τα δεδομένα μετασχηματίζονται στο σχήμα που αναζητάτε, μπορείτε να αναπτύξετε τη στήλη Πίνακας εξόδου επιλέγοντας το εικονίδιο Ανάπτυξη. Μην χρησιμοποιείτε κανένα πρόθεμα για τις αναπτυγμένες στήλες.
Μπορείτε να επαληθεύσετε ότι έχετε δεδομένα από όλα τα αρχεία του φακέλου, ελέγχοντας τις τιμές στη στήλη Όνομα ή Ημερομηνία . Για αυτήν την περίπτωση, μπορείτε να ελέγξετε τις τιμές από τη στήλη Ημερομηνία , καθώς κάθε αρχείο περιέχει δεδομένα μόνο για έναν μήνα από ένα δεδομένο έτος. Εάν βλέπετε περισσότερα από ένα, αυτό σημαίνει ότι συνδυάσατε με επιτυχία δεδομένα από πολλά αρχεία σε έναν μόνο πίνακα.
Σημείωμα
Αυτό που έχετε διαβάσει μέχρι στιγμής είναι ουσιαστικά η ίδια διαδικασία που συμβαίνει κατά τη διάρκεια της εμπειρίας συνδυασμού αρχείων , αλλά γίνεται χειροκίνητα.
Σας συνιστούμε να διαβάσετε επίσης το άρθρο σχετικά με την επισκόπηση Συνδυασμός αρχείων και Συνδυασμός αρχείων CSV για να κατανοήσετε περαιτέρω πώς λειτουργεί η εμπειρία συνδυασμού αρχείων στο Power Query και τον ρόλο που παίζουν οι προσαρμοσμένες συναρτήσεις.
Προσθήκη νέας παραμέτρου σε υπάρχουσα προσαρμοσμένη συνάρτηση
Φανταστείτε ότι υπάρχει μια νέα απαίτηση πάνω από αυτό που κατασκευάσατε αυτήν τη στιγμή. Η νέα απαίτηση απαιτεί πριν συνδυάσετε τα αρχεία, να φιλτράρετε τα δεδομένα μέσα σε αυτά για να λάβετε μόνο τις γραμμές όπου η Χώρα είναι ίση με τον Παναμά.
Για να πραγματοποιήσετε αυτήν την απαίτηση, δημιουργήστε μια νέα παράμετρο που ονομάζεται Market με τον τύπο δεδομένων κειμένου. Για την Τρέχουσα τιμή, εισαγάγετε την τιμή Παναμάς.
Με αυτήν τη νέα παράμετρο, επιλέξτε το ερώτημα Μετασχηματισμός δείγματος αρχείου και φιλτράρετε το πεδίο Χώρα χρησιμοποιώντας την τιμή από την παράμετρο Αγορά .
Σημείωμα
Για να μάθετε περισσότερα σχετικά με τον τρόπο φιλτραρίσματος στηλών κατά τιμές, μεταβείτε στην ενότητα Φιλτράρισμα κατά τιμές σε μια στήλη.
Η εφαρμογή αυτού του νέου βήματος στο ερώτημά σας ενημερώνει αυτόματα τη συνάρτηση Transform file , η οποία τώρα απαιτεί δύο παραμέτρους με βάση τις δύο παραμέτρους που χρησιμοποιεί το αρχείο δείγματος μετασχηματισμού .
Αλλά το ερώτημα αρχείων CSV έχει ένα προειδοποιητικό σημάδι δίπλα του. Τώρα που η λειτουργία σας έχει ενημερωθεί, απαιτεί δύο παραμέτρους. Επομένως, το βήμα όπου καλείτε τη συνάρτηση οδηγεί σε τιμές σφάλματος, καθώς μόνο ένα από τα ορίσματα μεταβιβάστηκε στη συνάρτηση αρχείου μετασχηματισμού κατά τη διάρκεια του βήματος Κλήση προσαρμοσμένης συνάρτησης .
Για να διορθώσετε τα σφάλματα, κάντε διπλό κλικ στην επιλογή Κλήση προσαρμοσμένης συνάρτησης στα Εφαρμοσμένα βήματα για να ανοίξετε το παράθυρο Κλήση προσαρμοσμένης συνάρτησης . Στην παράμετρο Market , εισαγάγετε με μη αυτόματο τρόπο την τιμή Panama.
Τώρα μπορείτε να επιστρέψετε στον Αναπτυγμένο πίνακα εξόδου στα Εφαρμοσμένα βήματα. Ελέγξτε το ερώτημά σας για να επαληθεύσετε ότι μόνο οι σειρές όπου η Χώρα ισούται με τον Παναμά εμφανίζονται στο τελικό σύνολο αποτελεσμάτων του ερωτήματος Αρχεία CSV .
Δημιουργία προσαρμοσμένης συνάρτησης από ένα λογικό κομμάτι με δυνατότητα επανάληψης χρήσης
Εάν έχετε πολλά ερωτήματα ή τιμές που απαιτούν το ίδιο σύνολο μετασχηματισμών, μπορείτε να δημιουργήσετε μια προσαρμοσμένη συνάρτηση που λειτουργεί ως ένα λογικό κομμάτι με δυνατότητα επανάληψης χρήσης. Αργότερα, αυτή η προσαρμοσμένη συνάρτηση μπορεί να κληθεί στα ερωτήματα ή τις τιμές της επιλογής σας. Αυτή η προσαρμοσμένη λειτουργία θα μπορούσε να σας εξοικονομήσει χρόνο και να σας βοηθήσει στη διαχείριση του συνόλου των μετασχηματισμών σας σε μια κεντρική τοποθεσία, την οποία μπορείτε να τροποποιήσετε ανά πάσα στιγμή.
Για παράδειγμα, φανταστείτε ένα ερώτημα που έχει πολλούς κωδικούς ως συμβολοσειρά κειμένου και θέλετε να δημιουργήσετε μια συνάρτηση που αποκωδικοποιεί αυτές τις τιμές, όπως στο παρακάτω δείγμα πίνακα:
| κωδικός |
|---|
| PTY-CM1090-LAX |
| LAX-CM701-PTY |
| PTY-CM4441-MIA |
| MIA-UA1257-LAX |
| LAX-XY2842-MIA |
Ξεκινάτε έχοντας μια παράμετρο που έχει μια τιμή που χρησιμεύει ως παράδειγμα. Για αυτήν την περίπτωση, είναι η τιμή PTY-CM1090-LAX.
Από αυτή την παράμετρο, δημιουργείτε ένα νέο ερώτημα όπου εφαρμόζετε τους μετασχηματισμούς που χρειάζεστε. Για αυτήν την περίπτωση, θέλετε να διαιρέσετε τον κώδικα PTY-CM1090-LAX σε πολλαπλά στοιχεία:
- Προέλευση = PTY
- Προορισμός = LAX
- Αεροπορική εταιρεία = CM
- Αναγνωριστικό πτήσης = 1090
Ο παρακάτω κώδικας M δείχνει αυτό το σύνολο μετασχηματισμών.
let
Source = code,
SplitValues = Text.Split( Source, "-"),
CreateRow = [Origin= SplitValues{0}, Destination= SplitValues{2}, Airline=Text.Start( SplitValues{1},2), FlightID= Text.End( SplitValues{1}, Text.Length( SplitValues{1} ) - 2) ],
RowToTable = Table.FromRecords( { CreateRow } ),
#"Changed Type" = Table.TransformColumnTypes(RowToTable,{{"Origin", type text}, {"Destination", type text}, {"Airline", type text}, {"FlightID", type text}})
in
#"Changed Type"
Σημείωμα
Για να μάθετε περισσότερα σχετικά με τη γλώσσα τύπων Power Query M, μεταβείτε στο θέμα Power Query M formula language.
Στη συνέχεια, μπορείτε να μετατρέψετε αυτό το ερώτημα σε συνάρτηση κάνοντας δεξί κλικ στο ερώτημα και επιλέγοντας Δημιουργία συνάρτησης. Τέλος, μπορείτε να καλέσετε την προσαρμοσμένη συνάρτησή σας σε οποιοδήποτε από τα ερωτήματα ή τις τιμές σας, όπως φαίνεται στην επόμενη εικόνα.
Μετά από μερικούς ακόμα μετασχηματισμούς, μπορείτε να δείτε ότι έχετε επιτύχει το επιθυμητό αποτέλεσμα και εφαρμόσατε τη λογική για έναν τέτοιο μετασχηματισμό από μια προσαρμοσμένη συνάρτηση.