Data Analytics Hands-on Using MS Excel
Data Analytics Hands-on Using MS Excel
To begin your assignment, download the start file from the eMOD5 course page:
eMOD 5 - Final Assignment Submission Sheet.xlsx
Task 1 Excel file contains Statistical Analysis for Descriptive statistics and statistical
Punggol 4-room flat 2023 resale prices analysis with extracted dataset
(Steps 11 to 13)
Task 2 Excel file contains a completed Dashboard Development of data visualisation charts
that has the instructed 4 charts + 3 filters and dashboard (Steps 14 to 21)
Task 3 Excel file contains all answers (Part a-d) Application of interactive dashboard for
for Dashboard Questions data analysis (Steps 22 to 23)
Task 4 Excel file contains Predictive Regression Development of regression model for
Model Results predictive analysis (Steps 24 to 29)
Task 5 Excel file contains all answers (Part a&b) Application of regression model for
for Predictive Analysis predictive analysis (Steps 30 to 31)
Academic Integrity
Submitting work that is not your own is a serious violation of academic integrity. You are required
to ensure your submissions are original. Students who are found to have submissions that are
similar will be asked to provide an explanation, and their passing grade will be withheld until the
issue is clarified.
Page 1 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
Practical Worksheet
Learning Outcome
After successfully completing this topic, learners will be able to:
• Perform data preparation, data analysis using descriptive statistics, create visualisations and
interactive dashboard, and predictive analysis/ forecasting in MS Excel.
Lesson Overview
In this guided practical, we will be covering the following data analytics phases/steps:
Page 2 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
Task 0: Data transformation with Topic7 Resale Price Dataset (Steps 1 to 10)
A) Data Collection
1. We will be using the Resale Flat Prices dataset from data.gov.sg (a Singapore’s public data
source) in this practical. To learn more: https://beta.data.gov.sg/collections/189/view
2. Most public data portals typically offer their datasets in the form of CSV files. Similarly,
data.gov.sg provides the Resale Flat Price dataset in the CSV file format. For our practical, we
have downloaded the dataset file as a CSV file and converted it into an Excel file. In addition,
we have added the Resale Flat Price dataset into our start file: eMOD 5 - Final Assignment
Submission Sheet.xlsx
Converting a CSV to Excel is essential for data analytics because it provides a platform with rich
functionalities for data manipulation, analysis, and visualization. While CSV files are lightweight and
easily readable, they lack the advanced capabilities required for comprehensive data analysis and
reporting.
Excel offers a wide range of tools for data analysis and visualization. You can perform calculations
using formulas, create pivot tables to summarize and aggregate data, and generate charts and
graphs to visualize trends and patterns in the data.
The Resale Flat Prices data, originally sourced from data.gov.sg, is in CSV format. This data file needs
to be converted to Excel workbook format to perform data analysis. For this assignment, the data
has been converted to an Excel workbook format for you.
Page 3 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
B) Data Understanding
3. Open the start file: eMOD 5 - Final Assignment Submission Sheet.xlsx. Next, view the
worksheet, Topic 7 Resale Price Dataset. Notice that there are 11 columns, and 147,137
records in this dataset:
a) Month
b) Town
c) Flat Type
d) Block
e) Street Name
f) Storey Range
g) Floor Area
h) Flat Model
i) Lease Commencement Date
j) Remaining Lease
k) Resale Price
Page 4 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
C) Data Preparation
Convert Data Type
4. Notice that in the “Block” column (column D), some of the data is left-aligned (data
type/format: text) whereas some of the data is right-aligned (data type/format: number).
This is because the data are in different data type/format. To resolve this, we are going to
convert all the data in the “Block” column to Text data type/format.
a) Select the “Block” column (column D).
Page 5 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
b) Enter the formula =LEFT(B2, 4) into Cell A2 to extract the first 4 characters of Cell B2
into Cell A2.
As shown below, Cell A2 will display “2017” which is the first 4 characters of Cell B2.
c) Drag the fill handle to apply the formula to all the cells in Column A.
(Hint: To auto-fill the column quickly, place the cursor over the small green square
until you notice a cursor changes to a plus sign. Double-click the left mouse key.)
Page 6 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
Notice that Excel will automatically update the formula such that Cell Ax will always
display the first 4 characters of Cell Bx.
6. Next, we will be extracting the “Remaining Years” information from the “Remaining Lease”
column to find out the number of years remaining on the lease. For simplicity, we will only
be taking the years (i.e., the first 2 characters in the Remaining Lease data) and ignoring the
months.
a) Create a new column “Remaining Years” after the “Remaining Lease” column.
• Select the “Resale Price” column (column L), then right-click, then select
“Insert”. Excel will automatically create a new column on the left of the
selected column.
• Enter “Remaining Years” into Cell L1, the header (1st row) of column L.
Similar as Step 5. Enter the formula =LEFT(K2, 2) into Cell L2 to extract the first 2
characters of Cell K2 into Cell L2.
As shown below, Cell L2 will display “61” which is the first 2 characters of Cell K2.
Page 7 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
Drag the fill handle to apply the formula to all the cells in Column L.
(Hint: To auto-fill the column quickly, place the cursor over the small green square
until you notice a cursor changes to a plus sign. Double-click the left mouse key.)
Notice that Excel will automatically update the formula such that Cell Lx will always
display the first 2 characters of Cell Kx.
Instead of using a formula, we’ll make use of Excel’s Flash Fill feature to auto-
populate the “Remaining Years” column.
Excel can sense a pattern in the data provided and automatically fill the remaining
cells in the column.
Page 8 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
Click on the header of Column L to select the entire column. Click on the “Data” tab,
then click on the “Flash Fill” button.
2
3
As shown, Excel will automatically detect a pattern based on the populated cells L2-
L4 and fill in the remaining cells in column L.
7. Next, we want to create a new column “Storey Category” to categorise the “Storey Range”
into the below 4 categories:
• VERY LOW – flats located between 01-03 storey
• LOW – flats located between 04-06 storey
• MID – flats located between 07-09 storey
• HIGH – flats located from 10 storey onwards
We will be using multiple IF conditions (also known as nested IFs) to do so. The multiple IF
conditions in Excel are IF statements contained within another IF statement. They are used
to test multiple conditions simultaneously and return distinct values.
a) Create a new column “Storey Category” after the “Storey Range” column.
• Select the “Floor Area” column (column H), then right-click, then select
“Insert”. Excel will automatically create a new column on the left of the
selected column.
• Enter “Storey Category” into Cell H1, the header (1st row) of column H.
Page 9 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
b) Enter the formula =IF(G2="01 TO 03", "VERY LOW", IF(G2="04 TO 06", "LOW",
IF(G2="07 To 09", "MID", "HIGH"))) into Cell H2 to categorise the Storey Range (Cell
G2) into the appropriate category.
As shown below, Cell H2 will display “HIGH” because the Storey Range (Cell G2) is
“10 TO 12”.
c) Drag the fill handle to apply the formula to all the cells in Column H.
(Hint: To auto-fill the column quickly, place the cursor over the small green square
until you notice a cursor changes to a plus sign. Double-click the left mouse key.)
Notice that Excel will automatically update the formula such that Cell Hx will always
retrieve and categorise the data in Cell Gx.
Page 10 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
Data Aggregation
8. We will be creating a Pivot Table to show what’s the average resale price for each town.
a) Click on “Insert” tab, click on the “PivotTable” button.
c) Drag and drop the “Town” field into the Rows section, and the “Resale Price” field
into the Values section.
Page 11 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
Notice that the values are currently showing sum of the resale price for each town.
d) Click on the drop-down arrow beside “Sum of Resale Price” and click on “Value Field
Settings”. (Hint: Click on the PivotTable if you can’t see the PivotTable Fields
window.)
Page 12 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
The PivotTable will automatically update to show the average resale price for each
town.
Page 13 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
Data Merging
9. Next, we will be merging the average resale price by town (in Sheet1) back to the main
table (in Topic7 Resale Price Dataset).
a) In the “Topic7 Resale Price Dataset” tab, enter “Average Price” into Cell O1 in the
header (1st row) of column O.
As shown below, Cell O2 will display “436672.2503” because that is the average
resale price for “ANG MO KIO” town.
c) Drag the fill handle to apply the formula to all the cells in Column O.
(Hint: To auto-fill the column quickly, place the cursor over the small green square
until you notice a cursor changes to a plus sign. Double-click the left mouse key.)
Page 14 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
Notice that Excel will automatically update the formula such that Cell Ox will always
retrieve average prices based on the town information in Cell Cx.
Data Rounding
10. Notice that the Average Price is in 4 decimal places. We can remove the decimal places by
using the ROUND() formula.
a) Enter the formula =ROUND(VLOOKUP(C2, Sheet1!$A$4:$B$29, 2, FALSE), 0) into
Cell O2 to round off the average price and remove the decimal places
• “0” means no decimal places
As shown below, Cell O2 will display “436672” instead of “436672.2503” for “ANG
MO KIO” town.
b) Drag the fill handle to apply the formula to all the cells in Column O.
(Hint: To auto-fill the column quickly, place the cursor over the small green square
until you notice a cursor changes to a plus sign. Double-click the left mouse key.)
Notice that Excel will automatically update the formula such that Cell Ox will always
retrieve average prices based on the town information in Cell Cx.
Page 15 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
b) In the “Year” drop-down list, select only “2023”, and click “OK”. In the “Town” drop-
down list, select only “Punggol”, and click “OK”. In the “Flat Type” drop-down list,
select only “4 ROOM”, and click “OK”.
The spreadsheet will only display all the 2023 Punggol 4-room flat data.
Page 16 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
c) We will copy this set of data to a new spreadsheet for our analysis. Hover your
cursor over the bottom tabs, right-click and select “Insert” follow by “Worksheet”.
Next, highlight the data that you want to copy, right-click and select “Copy”. Paste
the new data onto your new worksheet. Double-click the worksheet tab to rename
your new worksheet with your own Student ID number. For instance, if your
Student ID is “2012345”, rename the new worksheet as “2012345”.
d) When copying values onto a new spreadsheet, Excel may store a numerical value as
a text value instead. For example, when you click on cell M2, you may encounter an
error alert similar to the screenshot below.
To resolve this issue, highlight all cells with the error alerts under “Remaining Years”
field in column M. Click on the error icon and select “Convert to Number”. After you
have taken action on an error alert, the cell will stop showing it.
Tip 1: Instead of selecting the cells by highlighting them with your mouse cursor, you
can use the keyboard shortcut Ctrl+Shift+Down to select all cells under the
"Remaining Years" field (excluding the Header Row "remaining years").
Tip 2: If you received a similar error alert for the "Year" field in column A, you can
repeat the above steps to convert the cell values stored as text to number.
Page 17 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
You can check that there should be 157 records in the new spreadsheet.
12. We will be finding out the count, sum, min, max, average, median, mode, standard
deviation, variance for the Punggol 4-room flat 2023 resale prices.
Remember that you had renamed your worksheet containing the extracted dataset with
your own Student ID number. In the examples below, our worksheet name is Student ID,
“2012345”. For your formula, replace <Student ID> with your own Student ID number.
Page 18 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
13. Next, we want to find out if there is any correlation between the Punggol 4-room flat 2023
resale prices and the flat’s remaining lease.
To do so, we use the Correlation formula CORREL() to find the correlation between the
resale price (in column N, row 2 to 158, N2:N158) and remaining lease (in column M, row 2
to 158, M2:M158).
Statistical Analysis
CORRELATION (This shows the correlation between the Punggol 4-room flat 2023
resale prices and the flat’s remaining lease.)
Excel Formula Value
=CORREL('<Student ID>'!N2:N158,'<Student ID>'!M2:M158) 0.505365807
Example:
=CORREL('2012345'!N2:N158,'2012345'!M2:M158)
You should get a value of 0.505365807. This show that there is a moderate positive
correlation between the resale price and the remaining lease of the flat.
Page 19 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
14. Remove all filter selection to display the full set of data in the spreadsheet “Topic7 Resale
Price Dataset”. In the “Year” drop-down list, select “Select All”, and click “OK”. In the
“Town” drop-down list, select “Select All”, and click “OK”. In the “Flat Type” drop-down list,
select “Select All”, and click “OK”.
Alternatively, to clear all filters, select Data and click “Clear” from the “Sort & Filter” group.
15. We will be creating 4 Pivot Charts. The first chart is a Line Chart to show the Average Price
Resale Price by Year. We want to allow filtering the data by Town and Flat Type.
Page 20 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
c) Rename this new worksheet as “Sheet2”. In the PivotChart Fields menu, drag and
drop the “Year” field into the Axis (Categories) section, the “Resale Price” field into
the Values section, and the “Town” and “Flat Type” fields into the Filters section.
Next, click on the drop-down arrow beside “Sum of Resale Price” and click on “Value
Field Settings”. Select “Average” and click “OK”.
Page 21 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
Page 22 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
e) Click on the + icon beside the chart to display the Chart Elements. Select to show
Axes, Chart Title, Data Labels, Gridlines, Legend and Trendline. To improve the
chart aesthetics, you can place the Legend at the bottom and drag the corners of the
chart to resize it.
f) Double-click on the chart title and change it to “Average Resale Price By Year”.
g) Your line chart is done. Notice the trend line is moving upwards, meaning that resale
prices are on an upwards trend over the years.
Page 23 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
16. The second chart we will be creating is a Stacked Bar Chart to show the Number of Sales
Transaction by Flat Type by Town. We want to allow filtering the data by Year.
c) Rename this new worksheet as “Sheet3”. Drag and drop the “Town” field into the
Axis (Categories) section, the “Town” field into the Values section (it will
automatically set the value to COUNT of town), “Flat Type” into the Legend (Series)
section, and the “Year” into the Filters section.
Page 24 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
Page 25 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
Select “Stacked Column” (for vertical bars) or “Stacked Bar” (for horizontal bars)
and click “OK”.
Page 26 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
e) Click on the + icon beside the chart to display the Chart Elements. Select to show
Axes, Chart Title, Gridlines and Legend.
Page 27 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
17. The third chart we will be creating is a Pie Chart to show the Proportion of Flat Type
Transacted. We want to allow filtering the data by Year and Town.
c) Rename this new worksheet as “Sheet4”. Drag and drop the “Flat Type” field into
the Axis (Categories) section, the “Flat Type” field into the Values section (it will
automatically set the value to COUNT of Flat Type), and the “Year” and “Town”
fields into the Filters section.
Page 28 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
Page 29 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
Page 30 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
e) Click on the + icon beside the chart to display the Chart Elements. Select to show
Chart Title, Data Labels, and Legend.
f) Click on “Chart Elements” > “Data Labels” > “More Options” to open the
“Format Data Labels” panel. Select “Category Name” and “Percentage” and
unselect “Value”.
Page 31 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
18. Lastly, the fourth chart we will be creating is a Pie Chart to show the Proportion of Storey
Category Transacted. We want to allow filtering the data by Year and Town.
c) Rename this new worksheet as “Sheet5”. Drag and drop the “Storey Category” field
into the Axis (Categories) section, the “Storey Category” field into the Values
section (it will automatically set the value to COUNT of Storey Category), and the
“Year” and “Town” fields into the Filters section.
Page 32 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
Page 33 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
Page 34 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
e) Click on the + icon beside the chart to display the Chart Elements. Select to show
Chart Title, Data Labels, and Legend.
f) Click on “Chart Elements” > “Data Labels” > “More Options” to open the
“Format Data Labels” panel. Select “Category Name” and “Percentage” and
unselect “Value”.
Page 35 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
19. We are going to put all the 4 charts together into 1 Dashboard.
b) Add a Dashboard title, “Dashboard for Resale Flat Prices (Based on Registration
Date from Jan 2017 onwards)”
Copy and paste all 4 PivotCharts onto the spreadsheet and arrange them in the
order shown in the screenshot. We will reserve space on the right side of our
dashboard for the three slicers that we will build in the next step.
20. We are going to create 3 slicers/filters “Year”, “Town” and “Flat Type” to control the charts.
a) Click on 1 of the charts, then click on the “Insert” tab, and click the “Slicer” button.
(Note: To insert slicer, you first need to click on 1 of the charts BEFORE clicking on
the “Slicer” button.)
Page 36 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
b) Select “Year”, “Town” and “Flat Type” from the “Insert Slicers” pop-up window and
click “OK”.
c) The 3 slicers “Year”, “Town” and “Flat Type” will be displayed. Arrange them
properly as shown.
Page 37 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
d) Click on the “Year” slicer, then click on the “Slicer” tab, then click on the “Report
Connection” button.
Page 38 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
f) Click on the “Town” slicer, then click on the “Slicer” tab, then click on the “Report
Connection” button.
g) We are going to use the “Town” slicer to control/filter all 4 charts. Select all 4 charts
and click “OK”.
h) Click on the “Flat Type” slicer, then click on the “Slicer” tab, then click on the
“Report Connection” button.
i) We are going to use the “Flat Type” slicer to control/filter all 4 charts. Select all 4
charts and click “OK”.
Page 39 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
21. Now you are ready to play with your Dashboard and charts.
Select Year “2023”, Town “Punggol” and Flat Type “4 ROOM” in the slicers/ filters.
From your Dashboard, you can see that the prices for Punggol 4-ROOM flats is on the
upward trend from 2017 (Average Price of $444,900) to 2023 (Average Price of $582,685),
also there are 157 number of transactions in 2023, and most (50%) of the resale flats are on
the HIGH floor.
22. Click on the icon on the top-right of the slicers/filters to clear the selection. Clear all 3
slicers/filters.
23. Now see if you can use your Dashboard to answer the following questions:
Page 40 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
F) Predictive Analysis
We will use MS Excel to predict the Resale Prices for Punggol flats. Since the target variable
(Resale Price) is a numerical value, we will use a regression algorithm for the prediction.
24. As the dataset is very large, we will only be focusing on data for Punggol flats for this
section. We need to filter the data to display only Town “Punggol”. Do the following steps
within the spreadsheet “Topic7 Resale Price Dataset”.
a) Select the header row (1st row). Click on the “Data” tab and click on the “Filter”
button. There will be drop-down buttons created for each individual header column.
b) In the “Town” drop-down list, select only “Punggol”, and click “OK”.
The spreadsheet will only display all the Punggol flat data.
Page 41 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
c) We will copy this filtered dataset onto to a new spreadsheet for our analysis. Insert a
new worksheet and rename it as “Sheet 6”. Copy and paste the filtered dataset onto
the new worksheet.
You may see cells with error alerts on your new worksheet. Recall in Step 11, the
reason for this is that Excel stored the numerical values as text. To resolve this issue,
we convert text into numbers.
Finally, you can check that there should be 10817 records (still a pretty big dataset!)
25. We will only use the “Year”, “Storey Category”, “Floor Area” and “Remaining Years” fields
(spreadsheet “Punggol-All”) to predict the “Resale Price” value.
a) Target variable: “Resale Price”
b) Predictive variables: “Year”, “Storey Category”, “Floor Area” and “Remaining Years”
Delete/remove the unnecessary fields (Right-click on a selected header & select “Delete”)
so that the spreadsheet looks as follow:
Page 42 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
26. Linear regression only accepts numerical values for the target/predictive variables. As such,
we will need to encode (i.e., assign numeric values to categorical data) the “Storey
Category” field. We will use Excel’s Find-and-Replace function to do so.
b) Press Ctrl+H or go to Home > Find & Select > Replace to open the Find and Replace
dialog
c) Find “VERY LOW” in column B and replace it with value “1”. Click “Replace All”.
d) Find “LOW” in column B and replace it with value “2”. Click “Replace All”.
e) Find “MID” in column B and replace it with value “3”. Click “Replace All”.
Page 43 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
f) Find “HIGH” in column B and replace it with value “4”. Click “Replace All”.
g) When all the categorical values are replaced, the dataset will look as follow:
Page 44 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
27. Excel has an add-in called “Data Analysis ToolPak” that allows you to perform various
statistical operations, including Regression just with the click of a button. To perform a
regression analysis in Excel, we first need to enable Excel’s Analysis ToolPak Add-in.
Page 45 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
Once successfully added, you will see a “Data Analysis” button at the Data bar in the ribbon.
28. Click the “Data” > “Data Analysis” button. Select “Regression” and click “OK”.
29. Once you have performed the Regression, your result page should look as follow. Rename
this new worksheet containing the Summary Output as “Sheet7”. We will now look at how
to interpret the results.
Page 46 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
The R-squared statistic is the indicator of goodness of fit which tells us how much
variance is explained by the line of best fit. R-squared value ranges from 0 to 1. In
our case, we have the R-squared value of 0.806 which means that our line is able to
explain 81% of the variance - a good sign.
The Coefficients column gives the values of the coefficient of each variable in the
multiple linear regression equation. Hence,
The multiple linear regression equation is the predictive model function where if we
enter the values of the independent variables, we can get the predicted value of
Resale Price.
The residual table reflects how much the predicted value varies from the actual
value. It consists of the values predicted by our model.
Page 47 of 48
SIT Internal
DiCE: Data Analytics Fundamentals
30. Now we are going to make use of our predictive model function to make some predictions.
Using the mathematical equation for our multiple linear regression model, we can input
values for the independent variables to predict the resale price.
a) Open worksheet, “Task 5”. Copy the Coefficients values for Intercept, Year, Storey
Category, floor_area_sqm, Remaining Years from the Regression Coefficient Table
onto this worksheet.
c) Copy the formula =E6+ (E7*F7) + (E8*F8) + (E9*F9) + (E10*F10) in cell F12 to
calculate the Predicted Resale Price.
The Predicted Resale Price for a Punggol flat in 2023 with High Floor, 93 sqm, 94 years
remaining lease should be $617885.08.
31. On the “Task 5” worksheet, make use of your predictive model to predict the price of the
same Punggol flat 2 years later.
• Year: ?
• Storey Category: High (4)
• Floor Area Sqm: 93 sqm
• Remaining Years: ? years
Congratulations! You have reached the end of your guided hands-on lesson.
Page 48 of 48