Μερικές φορές υπάρχουν περιπτώσεις όπου δεν είναι γνωστό εκ των προτέρων πόσες ακριβώς και ποιες σειρές πρέπει να εισαχθούν από τα δεδομένα προέλευσης. Ας υποθέσουμε ότι πρέπει να φορτώσουμε δεδομένα από ένα αρχείο κειμένου στο Power Query, το οποίο, με την πρώτη ματιά, δεν παρουσιάζει μεγάλο πρόβλημα. Η δυσκολία είναι ότι το αρχείο ενημερώνεται τακτικά και αύριο μπορεί να έχει διαφορετικό αριθμό γραμμών με δεδομένα, κεφαλίδα τριών, όχι δύο γραμμών κ.λπ.:
Δηλαδή, δεν μπορούμε να πούμε εκ των προτέρων με βεβαιότητα, ξεκινώντας από ποια γραμμή και πόσες ακριβώς γραμμές πρέπει να εισαχθούν. Και αυτό είναι ένα πρόβλημα, επειδή αυτές οι παράμετροι είναι κωδικοποιημένες στον κώδικα M του αιτήματος. Και αν κάνετε αίτημα για το πρώτο αρχείο (εισαγωγή 5 γραμμών ξεκινώντας από την 4η), τότε δεν θα λειτουργεί πλέον σωστά με το δεύτερο.
Θα ήταν υπέροχο εάν το ερώτημά μας μπορούσε να προσδιορίσει από μόνο του την αρχή και το τέλος του "κινούμενου" μπλοκ κειμένου για εισαγωγή.
Η λύση που θέλω να προτείνω βασίζεται στην ιδέα ότι τα δεδομένα μας περιέχουν κάποιες λέξεις-κλειδιά ή τιμές που μπορούν να χρησιμοποιηθούν ως δείκτες (χαρακτηριστικά) της αρχής και του τέλους του μπλοκ δεδομένων που χρειαζόμαστε. Στο παράδειγμά μας, η αρχή θα είναι μια γραμμή που αρχίζει με τη λέξη Κωδικός, και το τέλος είναι μια γραμμή με τη λέξη Σύνολο. Αυτή η επικύρωση σειράς είναι εύκολο να εφαρμοστεί στο Power Query χρησιμοποιώντας μια στήλη υπό όρους - ένα ανάλογο της συνάρτησης IF (ΑΝ) στο Microsoft Excel.
Ας δούμε πώς να το κάνουμε.
Αρχικά, ας φορτώσουμε τα περιεχόμενα του αρχείου κειμένου μας στο Power Query με τον τυπικό τρόπο – μέσω της εντολής Δεδομένα – Λήψη δεδομένων – Από αρχείο – Από αρχείο κειμένου/CSV (Δεδομένα – Λήψη δεδομένων – Από αρχείο – Από αρχείο κειμένου/CSV). Εάν έχετε εγκαταστήσει το Power Query ως ξεχωριστό πρόσθετο, τότε οι αντίστοιχες εντολές θα βρίσκονται στην καρτέλα Ερώτημα ισχύος:
Όπως πάντα, κατά την εισαγωγή, μπορείτε να επιλέξετε τον χαρακτήρα διαχωρισμού στηλών (στην περίπτωσή μας, αυτό είναι μια καρτέλα) και μετά την εισαγωγή, μπορείτε να αφαιρέσετε το βήμα που προστέθηκε αυτόματα τροποποιημένου τύπου (Αλλαγμένος τύπος), επειδή είναι πολύ νωρίς για να εκχωρήσουμε τύπους δεδομένων σε στήλες:
Τώρα με την εντολή Προσθήκη στήλης – Στήλη υπό όρους (Προσθήκη στήλης — Στήλη υπό όρους)Ας προσθέσουμε μια στήλη με τον έλεγχο δύο συνθηκών – στην αρχή και στο τέλος του μπλοκ – και την εμφάνιση τυχόν διαφορετικών τιμώνσε κάθε περίπτωση (για παράδειγμα, αριθμοί 1 и 2). Εάν δεν πληρούται καμία από τις προϋποθέσεις, τότε η έξοδος μηδέν:
Μετά το κλικ OK παίρνουμε την παρακάτω εικόνα:
Τώρα ας πάμε στην καρτέλα. Μεταμόρφωση και διάλεξε ομάδα Συμπλήρωση – Κάτω (Μεταμόρφωση – Συμπλήρωση – Κάτω) – οι ένα και οι δύο μας θα τεντωθούν στη στήλη:
Λοιπόν, όπως μπορείτε να μαντέψετε, μπορείτε απλώς να φιλτράρετε τις μονάδες στη στήλη υπό όρους – και εδώ είναι το πολυπόθητο κομμάτι των δεδομένων μας:
Το μόνο που μένει είναι να ανεβάσουμε την πρώτη γραμμή στην κεφαλίδα με την εντολή Χρησιμοποιήστε την πρώτη γραμμή ως κεφαλίδες αυτί Αρχική (Αρχική σελίδα – Χρήση πρώτης σειράς ως κεφαλίδες) και αφαιρέστε την περιττή πιο υπό όρους στήλη κάνοντας δεξί κλικ στην κεφαλίδα της και επιλέγοντας την εντολή Διαγραφή στήλης (Διαγραφή στήλης):
Το πρόβλημα λύθηκε. Τώρα, όταν αλλάζετε τα δεδομένα στο αρχείο κειμένου προέλευσης, το ερώτημα θα προσδιορίζει πλέον ανεξάρτητα την αρχή και το τέλος του «αιωρούμενου» τμήματος των δεδομένων που χρειαζόμαστε και θα εισάγει τον σωστό αριθμό γραμμών κάθε φορά. Φυσικά, αυτή η προσέγγιση λειτουργεί επίσης στην περίπτωση εισαγωγής αρχείων XLSX, όχι TXT, καθώς και κατά την εισαγωγή όλων των αρχείων από έναν φάκελο ταυτόχρονα με την εντολή Δεδομένα – Λήψη δεδομένων – Από αρχείο – Από φάκελο (Δεδομένα — Λήψη δεδομένων — Από αρχείο — Από φάκελο).
- Συναρμολόγηση πινάκων από διαφορετικά αρχεία χρησιμοποιώντας το Power Query
- Επανασχεδιασμός διασταύρωσης σε επίπεδη καρτέλα με μακροεντολές και Power Query
- Δημιουργία γραφήματος Project Gantt στο Power Query