Section 1: Lab: Understanding M in Depth
- Queries, steps and lazy evaluation: how Power Query runs
- The let ... in structure and editing code in the Advanced Editor
- Primitive values, lists, records and tables, and converting between them
- each, _ and lambda functions (=>) hidden inside every step
- Staging queries, Reference versus Duplicate, and turning off Enable load
- Lab: rework click-built queries so they are readable and maintainable
Section 2: Lab: Standard Functions, Custom Functions and Parameters
- Table.TransformColumns, Table.AddColumn and Group By with All Rows
- List.Accumulate and List.Generate for iterative work
- Write custom functions and turn queries into reusable functions
- Parameters for file paths, server names and Dev or Prod environments
- Lab: a function that cleans ERP report exports and Thai Buddhist years, reusable in any query
Section 3: Lab: Combining Files from Folders and SharePoint
- Automatic Combine Files, and writing your own version that survives change
- Files with different headers, sheet names or column counts
- Bring file names and dates from metadata in as columns
- Connect to a SharePoint or OneDrive folder instead of a local one
- Lab: combine branch Excel files with mismatched layouts into one table
Section 4: Lab: Web APIs and JSON
- Web.Contents with query strings, headers and RelativePath
- Turn deeply nested JSON into tables with records and lists
- Pagination: fetch many pages with List.Generate
- Keeping API keys safe, and dynamic data source limits when refreshing in the service
- Lab: pull a paged public API and combine it into one table
Section 5: Lab: Error Handling and Data Quality
- Step-level errors versus cell-level errors
- try ... otherwise and try ... catch to handle bad values
- Column quality, column distribution and column profile
- A data quality query that separates problem rows from the main data
- Lab: report problem rows with their causes without failing the refresh