Power Query: Beyond the User Interface: Table.Split and More - Συμβουλές για το Excel

Σημείωση

Αυτό είναι ένα από μια σειρά άρθρων που περιγράφουν λεπτομερώς τις λύσεις που αποστέλλονται για την πρόκληση Podcast 2316.

Ενώ η διεπαφή Power Query είναι πολύ ισχυρή, όσοι μπορούν να υπερβούν τη διεπαφή έχουν σούπερ δυνάμεις. Ο Frank Tonsen έστειλε αυτήν τη λύση. Ας πάρουμε το σημείο όπου τα δεδομένα μοιάζουν με αυτό:

Δεδομένα στο Power Query

Στη συνέχεια, ο Frank κωδικοποιεί έναν πίνακα. Split, καθορίζοντας ότι κάθε 5 εγγραφές πρέπει να είναι ένας νέος πίνακας.

Πίνακας. Διάσπαση

Από εκεί, Table.FromList και άλλα. Σε αυτό το σημείο, μπορείτε να κάνετε κλικ σε οποιοδήποτε κελί πίνακα και να δείτε τα δεδομένα σε αυτόν τον πίνακα. Εδώ είναι το δεύτερο κελί πίνακα.

Πίνακας. Από τη λίστα

Εδώ είναι ο κωδικός του Φρανκ:

let Source = Excel.CurrentWorkbook()((Name="UglyData"))(Content), RemovedTotals = Table.RemoveColumns(Source,("Column2", "Column3", "Column4", "Column5", "Column6")), TransposedTable = Table.Transpose(RemovedTotals), PromotedHeaders = Table.PromoteHeaders(TransposedTable, (PromoteAllScalars=true)), SplittedTable = Table.Split(PromotedHeaders,5), TableFromList = Table.FromList(SplittedTable, Splitter.SplitByNothing(), null, null, ExtraValues.Error), AddedColumn1 = Table.AddColumn(TableFromList, "Column2", each Table.PromoteHeaders(Table.Transpose(Table.DemoteHeaders((Column1))))), AddedColumn2 = Table.AddColumn(AddedColumn1, "Column3", each Table.AddColumn((Column2), "Employee", (x) => Table.ColumnNames((Column2))(1))), AddedColumn3 = Table.AddColumn(AddedColumn2, "Column4", each Table.RenameColumns((Column3), (Table.ColumnNames((Column3))(1), "Total"))), Combined = Table.Combine(AddedColumn3(Column4)), ReorderedColumns = Table.ReorderColumns(Combined,("Category Description", "Employee", "Q1", "Q2", "Q3", "Q4", "Total")), ChangedType = Table.TransformColumnTypes(ReorderedColumns,(("Category Description", type text), ("Employee", type text), ("Q1", type number), ("Q2", type number), ("Q3", type number), ("Q4", type number), ("Total", type number))) in ChangedType

Καλά από το YouTube μοιράστηκε επίσης ένα βίντεο με μια προσαρμοσμένη λύση M για να προσδιορίσει δυναμικά όλες τις στήλες που ξεκινούν με "Υπάλληλος". Αν και αυτό δεν θα λειτουργούσε στην πραγματική ζωή όταν οι υπάλληλοι ονομάζονται Andy, Betty, Charlie, είναι ένα υπέροχο βίντεο: https://www.youtube.com/watch?v=xamU5QLNiew.

Επιστρέψτε στην κύρια σελίδα για την πρόκληση Podcast 2316.

Διαβάστε το επόμενο άρθρο σε αυτήν τη σειρά: Power Query: The World of Bill Szysz.

ενδιαφέροντα άρθρα...