EXERCISE TOPIC▼
- Access exercises (91)
- C# exercises (79)
- Excel exercises (278)
- Power Apps exercises (13)
- Power Automate exercises (18)
- Power BI exercises (139)
- Power Platform exercises ()
- Python exercises (28)
- Report Builder exercises (141)
- SQL exercises (198)
- SSAS exercises (51)
- SSIS exercises (46)
- SSRS exercises (99)
- VBA exercises (85)
- Visual Basic exercises (46)
POWER BI EXERCISES▼
POWER BI EXERCISES▼
- Basic reports (10)
- Data sources (2)
- Query editor (8)
- Filtering data (9)
- Drill-through (1)
- Charts (10)
- Matrices (1)
- Basic maps (6)
- Calculated columns (8)
- Roles and security (1)
- Drill-through and bookmarks (3)
- Report themes (2)
- Power BI mobile (1)
- Advanced tables (3)
- Conditional formatting (5)
- Analytics (2)
- Decomposition tree (1)
- Other visuals (1)
- Tooltips (2)
- Bookmarks (4)
- Quick measures (3)
- Dynamic display (1)
- Custom visuals (3)
- Advanced data sources (4)
- Basic parameters (1)
- Column transforms (2)
- Combining queries (2)
- Manipulation transforms (1)
- Normalising tables (2)
- Simple parameters (1)
- Dropdown parameters (1)
- Stored procedures (1)
- Dynamic connections (2)
- Custom functions (3)
- APIs (3)
- Power BI Templates (1)
Power BI | Normalising tables exercise | Normalise a table of dinosaurs into 3 separate tables
This exercise is provided to allow potential course delegates to choose the correct Wise Owl Microsoft training course, and may not be reproduced in whole or in part in any format without the prior written consent of Wise Owl.
Software ==> | Power BI (111 exercises) |
Version ==> | Latest update |
Topic ==> | Normalising tables (2 exercises) |
Level ==> | Relatively easy |
Subject ==> | Power BI training |
You need a minimum screen resolution of about 700 pixels width to see our exercises. This is because they contain diagrams and tables which would not be viewable easily on a mobile phone or small laptop. Please use a larger tablet, notebook or desktop computer, or change your screen resolution settings.
Create a new Power BI Desktop report, and load the data from the above workbook.
The aim of this exercise is to normalise this set of data into 3 separate tables, then join them together again to get this:

The aim is to get 3 tables joined together by relationships.
Start by duplicating the original query in Query Editor twice, and renaming the results, to get three identical queries:

If you choose Reference rather than Duplicate it will be slightly more efficient, as Power Query won't have to repeat the same steps 3 times.
For the Periods and Diets queries, remove all but one column, remove duplicate rows and sort the results to get these two queries:
![]() |
![]() |
Diets query | Periods query |
Add an index column to each of the two tables (call this DietId and PeriodId respectively) to number the rows for each query from 1.
Create two merge queries in succession, to link the dinosaurs table:
- to the Diets query by the Diet column; and
- to the Periods query by the Period column.
Delete the diet and period columns for your final query, and expand the linked tables to show the diet id and period id from these instead:

Expand the diets to show the diet id for each dinosaur, for example.
You could now if you like create a quick pair of slicers and a table, to show that your data is working:

You should now have a sense of fulfilment!
Save your report as Normality restored, then close it down.