A data analyst turns raw data into answers people can act on. The work follows a repeatable process, and it starts with a question, not with a spreadsheet.
🧭 Six steps of an analysis
Ask: agree the business question. “Why did online sales fall in March?” is answerable; “look at the data” is not.
Prepare: find the data and check where it came from and whether you are allowed to use it.
Process: clean it (Lesson 3).
Analyse: summarise, compare, look for patterns (Lessons 4, 5 and 7).
Share: charts, dashboards and a short story (Lesson 6).
Act: the decision makers use it, and you measure what happens next.
🖼️ See it
🖼️ See it
🗂️ Rows, columns and data types
Most business data is structured: a table where each row is one record (an order, a customer) and each column is one field (date, price, region). Emails, images and free-text reviews are unstructured and need extra work before you can count them.
Categorical data puts things in groups. Nominal: no order (city, product colour). Ordinal: a natural order (satisfaction: poor, fair, good, excellent).
Numerical data is measured or counted. Discrete: whole counts (items in a basket). Continuous: any value in a range (weight, delivery time).
order_id date region items delivery_min rating
1001 2026-03-02 North 3 42.5 good
1002 2026-03-02 South 1 18.0 excellent
region = nominal · rating = ordinal · items = discrete · delivery_min = continuous
💡 On the job
Write the question down and agree it with the person asking before you open the data. It decides which data you need and stops weeks of analysis nobody uses.
Common mistakes. Averaging categories stored as numbers (region code 1, 2, 3 is a label, not a quantity). Using personal data for a purpose it was not collected for: check privacy rules such as GDPR first.
✏️ Quick check · 1 of 8
Data type
Customer satisfaction recorded as poor, fair, good, excellent is:
Is there an order to the groups?
✏️ Quick check · 2 of 8
Data type
The number of support tickets a customer opened is:
Can it be 2.37?
✏️ Quick check · 3 of 8
Data type
A product’s weight in kilograms is:
Measured, not counted.
✏️ Quick check · 4 of 8
Process
Which is a good analysis question?
Specific, measurable, tied to a decision.
✏️ Quick check · 5 of 8
Process
Removing duplicate rows belongs to which step?
It happens before analysis.
✍️ Type your answer · 6 of 8
A table has 500 rows and 12 columns.
How many cells (values) does it hold?
Enter a whole number.
Rows × columns.
✍️ Type your answer · 7 of 8
A survey table has one row per answer. 250 people each answered 8 questions.
How many rows are there?
Enter a whole number.
One row for every answer.
✏️ Quick check · 8 of 8
Structure
In a sales table, each row should usually be:
Records go down, fields go across.
📝 Lesson quiz · 5 questions
0 / 5
Re-read the lesson, then give it another go.
Question 1 of 5
The first step of an analysis is to:
Question 2 of 5
City name is an example of:
Question 3 of 5
In a structured table, a column is:
Question 4 of 5
Customer reviews written in free text are:
Question 5 of 5
Region codes 1, 2 and 3 should be treated as:
Lesson 2 · Tools
🧮 Spreadsheets: Formulas & Pivot Tables
Spreadsheets (Excel, Google Sheets) are still the tool analysts open most often. A handful of functions and the pivot table cover most everyday questions.
Common mistake. Forgetting the $ signs: copied down, =E2*H1 becomes =E3*H2, which points at an empty cell and quietly returns 0.
🔄 Pivot tables
A pivot table summarises thousands of rows in a few clicks: drag a field to Rows (for example Region), another to Values (Sum of Revenue), and optionally one to Columns (Month) or Filters.
It answers “total by group” questions without a single formula, and updates when you refresh it.
Keep raw data tidy: one header row, one record per row, no blank rows or merged cells. Then formulas, pivots and charts all just work.
✍️ Type your answer · 1 of 8
Using the sales sheet: Units are 4, 2, 6, 1, 3.
What does =SUM(C2:C6) return?
Enter a whole number.
Add the five values.
✍️ Type your answer · 2 of 8
Using the sales sheet: Region is North, South, South, North, North.
What does =COUNTIF(B2:B6,"North") return?
Enter a whole number.
Count the rows that match.
✍️ Type your answer · 3 of 8
Using the sales sheet: Revenue is 100, 120, 150, 300, 180 and Region is North, South, South, North, North.
What does =SUMIF(B2:B6,"South",E2:E6) return?
Enter a whole number.
Add revenue only on South rows.
✍️ Type your answer · 4 of 8
Cells A1:A4 hold 10, 20, 30 and 40.
What does =AVERAGE(A1:A4) return?
Enter a number, such as 24 or 19.5.
Sum ÷ count.
✏️ Quick check · 5 of 8
IF
E2 is 1,500. What does =IF(E2>1000,"Large","Small") show?
IF(test, value if true, value if false).
✏️ Quick check · 6 of 8
References
You want every row to multiply by the tax rate in H1. Which formula copies down correctly?
Fix the cell that must not move.
✏️ Quick check · 7 of 8
Lookup
You have a product code in each order row and a separate product list with prices. Which function brings the price into the order sheet?
Find a match, return a value.
✏️ Quick check · 8 of 8
Pivot
To see total revenue for each month, in a pivot table you put Month in:
What is the group, what is the number?
📝 Lesson quiz · 5 questions
0 / 5
Re-read the lesson, then give it another go.
Question 1 of 5
=COUNTA counts:
Question 2 of 5
$B$2 is a:
Question 3 of 5
SUMIF adds values that:
Question 4 of 5
A pivot table is best for:
Question 5 of 5
Tidy raw data has:
Lesson 3 · Data quality
🧹 Cleaning Data
Analysts often say most of the job is cleaning. Wrong data gives confident, wrong answers, so checking quality comes before any chart.
🧹 The usual problems
Duplicates: the same order imported twice.
Missing values: blank emails, unknown ages.
Inconsistent formats: “north”, “North ”, “N.”; dates as 03/04/2026 (is that March or April?).
Wrong types: numbers stored as text, so they do not add up.
Impossible values: age 230, a negative quantity, a delivery date before the order date.
Outliers: real but extreme values (one huge corporate order) that need a decision.
🖼️ See it
🖼️ See it
🛠️ How to fix them
Duplicates: remove using a unique ID (order_id), not by eye.
Missing values: leave blank and report the count, fill from another source, or exclude the rows from that one calculation. Never invent values silently.
Text: TRIM spaces, PROPER/UPPER case, map variants to one spelling.
Dates: store as real dates in one format, ideally YYYY-MM-DD.
Impossible values: check the source; correct or exclude, and note it.
Raw rows 1,200
− exact duplicates 45
− test orders 15
Clean rows 1,140
Missing email: 57 of 1,140 = 5% → kept, flagged in the report
📝 Keep a cleaning log
Write down every change and why (“removed 45 duplicate order_ids”, “excluded 15 test orders from staff accounts”). Never overwrite the raw file: keep the original and work on a copy, or do the cleaning in a repeatable script or query.
Check totals before and after. If revenue changes by 30% after cleaning, find out exactly why before you go on.
Common mistakes. Deleting outliers just because they spoil the chart. Replacing blanks with 0 (a missing price is not a free product). Fixing the data by hand so nobody can repeat it next month.
✍️ Type your answer · 1 of 8
A file has 2,400 rows. 120 are duplicates and 30 are test orders.
How many rows remain after removing both?
Enter a whole number.
Subtract both groups.
✍️ Type your answer · 2 of 8
In 600 survey answers, 30 have no age.
What percentage of ages is missing?
Enter a number without the % sign.
%
Missing ÷ total × 100.
✍️ Type your answer · 3 of 8
Prices are 10, 20, (blank), 30. A colleague replaced the blank with 0 and took the average.
What is the correct average of the known prices?
Enter a number, such as 24 or 19.5.
Leave the blank out of the count.
✏️ Quick check · 4 of 8
Fix
Region values include "North", "north" and " North". The best fix is to:
Make them identical text.
✏️ Quick check · 5 of 8
Fix
A column of prices will not add up because the values are stored as text. You should:
It is a data type problem.
✏️ Quick check · 6 of 8
Judgement
A customer’s age is recorded as 230. You should:
Impossible ≠ outlier.
✏️ Quick check · 7 of 8
Judgement
One genuine corporate order is 50 times larger than all others. You should:
Real outliers need a stated decision.
✏️ Quick check · 8 of 8
Practice
Why should you keep the raw file untouched?
Think about mistakes and audits.
📝 Lesson quiz · 5 questions
0 / 5
Re-read the lesson, then give it another go.
Question 1 of 5
The safest way to remove duplicates is by:
Question 2 of 5
A missing price should usually be:
Question 3 of 5
TRIM is used to:
Question 4 of 5
A cleaning log records:
Question 5 of 5
The clearest date format for data is:
Lesson 4 · Analysis
📐 Descriptive Statistics
Descriptive statistics sum up a whole column in a few numbers: where the middle is, how spread out the values are, and which values are unusual.
📐 The centre: mean, median, mode
Mean (average) = sum ÷ count. Pulled by extreme values.
Median = the middle value when sorted (the average of the two middle values if the count is even). Not pulled by extremes.
Mode = the most common value. Useful for categories.
Delivery times (minutes), sorted: 12, 15, 15, 18, 20, 22, 25, 29, 60
Mean = 216 ÷ 9 = 24
Median = 20 (the 5th of 9 values)
Mode = 15
Range = 60 − 12 = 48
Without the 60: mean = 156 ÷ 8 = 19.5 → one value moved the mean by 4.5
When data is skewed (incomes, house prices, delivery times) the median usually describes a typical case better.
🖼️ See it
🖼️ See it
📏 The spread: range, IQR, standard deviation
Range = max − min.
Quartiles: Q1 is the median of the lower half, Q3 the median of the upper half. IQR = Q3 − Q1, the spread of the middle 50%.
Standard deviation: the typical distance of values from the mean. Small = values close together.
Report the centre and the spread together. “Average delivery 24 minutes” hides that some orders take an hour; “median 20 minutes, 1 in 9 over 45 minutes” tells the manager what to fix.
Common mistakes. Taking the median without sorting first. Averaging percentages from groups of different sizes. Reporting the mean of skewed data as “typical”.
Above what value is a data point an outlier (upper fence)?
Enter a number, such as 24 or 19.5.
Q3 + 1.5 × IQR.
✏️ Quick check · 7 of 8
Choose
House prices in a town include a few mansions. The best “typical price” is the:
Which measure ignores extremes?
✏️ Quick check · 8 of 8
Spread
Two teams both average 30 minutes to answer a ticket. Team A’s standard deviation is 2, team B’s is 15. This means:
SD measures spread.
📝 Lesson quiz · 5 questions
0 / 5
Re-read the lesson, then give it another go.
Question 1 of 5
The median is:
Question 2 of 5
Which measure is most affected by an extreme value?
Question 3 of 5
The IQR covers:
Question 4 of 5
A common outlier rule flags values above:
Question 5 of 5
A small standard deviation means values are:
Lesson 5 · Tools
🗄️ SQL for Analysts
Company data lives in databases, and SQL is the language for asking them questions. A few clauses answer most business questions.
🗄️ The core of a query
SELECT region, SUM(amount) AS revenue -- which columns (and totals) to show
FROM orders -- which table
WHERE order_date >= '2026-01-01' -- filter rows first
GROUP BY region -- one result row per region
HAVING SUM(amount) > 200 -- filter the groups
ORDER BY revenue DESC -- sort, biggest first
LIMIT 10; -- only the top 10
Aggregate functions: COUNT(*), SUM(), AVG(), MIN(), MAX(). With GROUP BY they work per group.
WHERE filters single rows before grouping; HAVING filters groups after totals are calculated.
🖼️ See it
🖼️ See it
🔗 Joining tables
Databases split data into tables linked by keys: orders.customer_id points to customers.id.
SELECT c.name, o.amount
FROM orders o
JOIN customers c ON o.customer_id = c.id;
INNER JOIN (plain JOIN): only rows that match in both tables.
LEFT JOIN: every row from the left table, with blanks (NULL) where there is no match. Use it to find, for example, customers with no orders.
📋 A worked example
Table orders:
order_id region amount
1 North 120
2 South 80
3 North 200
4 East 50
5 South 150
6 North 30
SELECT region, COUNT(*) AS orders, SUM(amount) AS revenue
FROM orders GROUP BY region ORDER BY revenue DESC;
region orders revenue
North 3 350
South 2 230
East 1 50
Check row counts. After a join, compare the number of rows with what you expected. A join on the wrong key can multiply rows and inflate every total.
Common mistakes. Putting an aggregate in WHERE (use HAVING). Forgetting that NULL is not 0 and is skipped by AVG. Running an UPDATE or DELETE on a live database: analysts normally only need SELECT.
✍️ Type your answer · 1 of 8
Using the orders table in the worked example.
What does SELECT SUM(amount) FROM orders WHERE region = 'North'; return?
Enter a whole number.
Only the North rows.
✍️ Type your answer · 2 of 8
Using the orders table in the worked example.
What does SELECT COUNT(*) FROM orders WHERE amount > 100; return?
Enter a whole number.
Count rows that pass the filter.
✍️ Type your answer · 3 of 8
Using the orders table in the worked example.
What does SELECT AVG(amount) FROM orders WHERE region = 'South'; return?
Enter a number, such as 24 or 19.5.
Average of the South rows.
✍️ Type your answer · 4 of 8
Using the orders table in the worked example.
How many rows does SELECT region, SUM(amount) FROM orders GROUP BY region; return?
Enter a whole number.
Count the distinct regions.
✏️ Quick check · 5 of 8
Clause
To keep only regions whose total revenue is over 200, use:
Filtering groups, not rows.
✏️ Quick check · 6 of 8
Clause
To show the biggest orders first, use:
Descending = big to small.
✏️ Quick check · 7 of 8
Join
You want a list of all customers, including those who have never ordered. Use:
Which join keeps unmatched rows?
✏️ Quick check · 8 of 8
Safety
An analyst exploring the sales database should normally use:
Read, do not write.
📝 Lesson quiz · 5 questions
0 / 5
Re-read the lesson, then give it another go.
Question 1 of 5
WHERE filters:
Question 2 of 5
COUNT(*) returns:
Question 3 of 5
A JOIN combines tables using:
Question 4 of 5
ORDER BY revenue DESC LIMIT 5 shows:
Question 5 of 5
AVG() treats NULL values by:
Lesson 6 · Sharing
📈 Charts & Dashboards
A good chart answers one question at a glance. A good dashboard shows the few numbers a team checks every day, and nothing else.
📈 Pick the chart from the question
Compare categories (sales by region): bar chart, sorted.
Change over time (monthly revenue): line chart.
Relationship between two numbers (ad spend vs sales): scatter plot.
Distribution (delivery times): histogram or box plot.
Parts of a whole with 2–4 parts: stacked bar or, sparingly, a pie chart.
One headline number: a KPI tile with the change from last period.
🖼️ See it
🖼️ See it
🎨 Make it honest and clear
Start bar charts at zero: a cut-off axis makes small differences look huge.
Use a title that states the finding (“North sales doubled since January”), not just “Sales by month”.
Label axes and units; remove gridlines, 3D effects and decoration that carry no information.
Use colour on purpose: grey for context, one strong colour for the thing that matters.
Store A sold 80 units, store B 100.
True difference: (100 − 80) ÷ 80 × 100 = 25% more.
With the y-axis starting at 75, B’s bar is 25 tall and A’s is 5: it looks 5 times bigger.
🖥️ Dashboards
Build a dashboard (Power BI, Tableau, Looker Studio, or a spreadsheet) around the decisions its users make. A common layout: KPI tiles across the top, trends in the middle, detail tables and filters at the bottom.
Revenue this month $56,000 ▲ 12% vs last month ($50,000)
Orders 1,400 ▲ 8%
Average order value $40 ▲ 4%
Five to seven KPIs is plenty. If a number never changes a decision, take it off the dashboard.
Common mistakes. Pie charts with ten slices. Two y-axes that invite false comparisons. A dashboard nobody refreshes, so the numbers go stale.
✏️ Quick check · 1 of 8
Chart
You want to show how website visits changed each week this year. Use a:
Time on the x-axis.
✏️ Quick check · 2 of 8
Chart
You want to see whether higher discounts go with bigger orders. Use a:
Two numerical variables.
✏️ Quick check · 3 of 8
Chart
You want to compare revenue across 8 product categories. Use a:
Comparing groups.
✏️ Quick check · 4 of 8
Honesty
A bar chart’s y-axis starts at 95 instead of 0. The risk is that it:
Compare bar heights with the real values.
✍️ Type your answer · 5 of 8
Store A sold 80 units and store B sold 100.
By what percentage did B outsell A?
Enter a number without the % sign.
%
Difference ÷ the smaller (A) × 100.
✍️ Type your answer · 6 of 8
Revenue rose from $50,000 last month to $56,000 this month.
What % change should the KPI tile show?
Enter a number without the % sign.
%
Change ÷ old value × 100.
✍️ Type your answer · 7 of 8
A pie chart has slices of 40%, 25% and 20%, plus an “Other” slice.
What percentage is “Other”?
Enter a number without the % sign.
%
The slices add to 100%.
✏️ Quick check · 8 of 8
Title
Which chart title is most useful to a manager?
Say what the chart shows.
📝 Lesson quiz · 5 questions
0 / 5
Re-read the lesson, then give it another go.
Question 1 of 5
The best chart for change over time is usually a:
Question 2 of 5
Bar charts should normally start the axis at:
Question 3 of 5
A KPI tile shows:
Question 4 of 5
Pie charts work best with:
Question 5 of 5
A good dashboard includes:
Lesson 7 · Insight
🔮 Trends, Correlation & Telling the Story
The last step is turning patterns into a recommendation people trust: measure the trend, be careful about cause and effect, and tell a short, clear story.
📉 Growth and trends
Percentage change = (new − old) ÷ old × 100. Compare like with like: this March with last March, not March with December, when sales are seasonal.
A trend line (linear regression) fits y = mx + c through the points: m is the change per period, c the starting level. Use it for a rough forecast.
Trend fitted to monthly sign-ups: y = 200x + 1,000 (x = month number)
Month 6: 200 × 6 + 1,000 = 2,200
Forecast month 12: 200 × 12 + 1,000 = 3,400
Forecasts further ahead are less reliable: say so, and give a range.
🖼️ See it
🖼️ See it
🔗 Correlation is not causation
The correlation coefficient r runs from −1 to +1: near +1 a strong positive relationship, near −1 a strong negative one, near 0 no straight-line relationship.
Even a strong r does not prove one thing causes the other. Ice-cream sales and sunburn cases rise together because both are driven by hot weather (a confounding variable). To show cause, run an experiment such as an A/B test, or rule out the other explanations.
Ask “what else changed?” A price rise, a holiday, a new competitor, or a tracking change can all create a pattern that looks like your cause.
🗣️ Tell the story
Busy people read the first lines only. Structure findings as:
Headline: the answer to the question, in one sentence.
Evidence: two or three numbers and one chart.
So what: why it matters (money, customers, risk).
Recommendation: what to do next, and how you will measure it.
Headline: Repeat orders fell 18% in March, almost all in the South region.
Evidence: South repeat rate 31% → 19%; other regions steady. Late deliveries in the South tripled after the courier change on 1 March.
So what: about $12,000 of lost revenue a month.
Recommendation: test the old courier in half of the South for four weeks and compare repeat rates.
State your limits: missing data, small samples, and what you could not check. It builds trust instead of weakening the message.
✍️ Type your answer · 1 of 8
Monthly active users rose from 400 to 500.
What is the percentage change?
Enter a number without the % sign.
%
(New − old) ÷ old × 100.
✍️ Type your answer · 2 of 8
Sales fell from 2,000 to 1,700 units.
What is the percentage change? (Enter a negative number for a fall.)
Enter a number without the % sign.
%
The change is negative.
✍️ Type your answer · 3 of 8
A trend line is y = 200x + 1,000, where x is the month number.
What does it forecast for month 12?
Enter a whole number.
Substitute x = 12.
✍️ Type your answer · 4 of 8
A trend line is y = −50x + 900 for weekly complaints.
What does it predict for week 10?
Enter a whole number.
Substitute x = 10.
✏️ Quick check · 5 of 8
Correlation
An r of −0.9 between price and units sold means:
Sign gives the direction, size the strength.
✏️ Quick check · 6 of 8
Causation
Stores with more staff have higher sales (r = 0.8). The safest conclusion is:
What else could drive both?
✏️ Quick check · 7 of 8
Seasonality
December sales are 40% above November every year. To judge this December, compare it with:
Compare like with like.
✏️ Quick check · 8 of 8
Story
Which should come first in a summary for a busy manager?
What do they read first?
📝 Lesson quiz · 5 questions
0 / 5
Re-read the lesson, then give it another go.
Question 1 of 5
A correlation coefficient near 0 means:
Question 2 of 5
Correlation does not prove causation because:
Question 3 of 5
In y = mx + c, m is:
Question 4 of 5
A forecast 3 years ahead is:
Question 5 of 5
A strong findings summary ends with:
Final Exam
🏆 14-Question Final Exam
Questions from every lesson in this course. Pick an answer for each one, then hit Check My Answers.
0 / 14
💪 Keep practicing — go back through the lessons and retake the quiz!
Q1 · The Analyst’s Workflow & Types of Data
Shoe size (5, 6, 7…) counted in whole sizes is best described as:
Q2 · The Analyst’s Workflow & Types of Data
Which step comes before analysing the data?
Q3 · Spreadsheets: Formulas & Pivot Tables
=COUNTIF(B2:B9,"Yes") returns:
Q4 · Spreadsheets: Formulas & Pivot Tables
Copying =A2*$C$1 down one row gives:
Q5 · Cleaning Data
A column of quantities includes −4. The best first step is to:
Q6 · Cleaning Data
Replacing missing prices with 0 will:
Q7 · Descriptive Statistics
Values 2, 3, 3, 4, 38. The best typical value is:
Q8 · Descriptive Statistics
Q1 = 10, Q3 = 18. The upper outlier fence is:
Q9 · SQL for Analysts
Which clause filters groups after GROUP BY?
Q10 · SQL for Analysts
To find products that have never been ordered, join products to orders with:
Q11 · Charts & Dashboards
To show the share of 3 payment methods in total sales, an acceptable chart is a:
Q12 · Charts & Dashboards
Revenue went from $80,000 to $72,000. The KPI tile should show:
Q13 · Trends, Correlation & Telling the Story
Trend y = 30x + 500. The forecast for x = 20 is:
Q14 · Trends, Correlation & Telling the Story
Umbrella sales and car accidents rise together. The likely explanation is: