Please note javascript is required for full website functionality.


Power Query: Revision Time – Part 1

10 April 2024

Welcome to our Power Query blog.  Today, I begin to create a refreshable revision timetable by extracting the inputs.


As my salespeople take a well-earned break, many students here in the UK are preparing for exams in the summer.  To help my own offspring get organised, I volunteered to create a refreshable printable revision timetable.  This is the result:

Let’s have a look at what I put together.  I started off with the inputs.  I needed a list of topics, and to begin with, I created extra entries for topics that required more timeslots:

We agreed on half-hourly slots, and I created a grid so that my daughter could indicate the slots that she wouldn’t be able to revise. 

When I first designed the solution, I included some Excel functions, but since this is a Power Query blog, I will ensure that I only use Power Query functions (apart from some formatting at the end!).

Before I extract my data, I am going to convert it into two [2] Tables, which will allow me to name the Tables before I extract them.  I may use ‘Convert to Table’ from the Insert tab, or CTRL + T.  In each case, I check the regions and indicate that my Tables will have headers.

I name the Tables  Subjects and Availability respectively. 

Next, I click somewhere in the Subjects table, and on the ‘Get & Transform Data’ section of the Data tab, I choose to extract data ‘From Table/Range’.  I use the icon indicated in my version of Excel: yours might look slightly different.

In the Power Query editor, I see the query Subjects.  Note that another benefit of converting the data to a Table before I extracted it, is that it is extracted as a Table and not a list.

I could go back to the workbook and repeat this process for the other Table, but instead I will take a duplicate copy of the Subjects query:

I call the new query Availability:

I delete the ‘Changed Type’ step, and look at the Source step:

The M code is:

= Excel.CurrentWorkbook(){[Name="Subjects"]}[Content]

If I change the Name parameter to ‘Availability’, I will pick up the second Table:

Since I have chosen to detect types in the settings, another ‘Changed Type’ step has been generated, but I clearly need to change Column1:

Since I know this is a time, I change the data type to time by clicking on the number icon in the heading:

I am prompted to include this transformation in the existing ‘Changed Type’ step:

I click ‘Replace current’ and rename Column1.  My data is ready to be transformed next week:

Come back next time for more ways to use Power Query!