Microsoft Excel is the world's most widely used spreadsheet software — a skill that appears in almost every job posting in finance, marketing, operations, HR, and data analysis. This tutorial takes you from opening Excel for the first time to building real dashboards and automating repetitive tasks.
What you'll learn
| Topic | What you'll be able to do |
|---|---|
| Interface | Navigate workbooks, sheets, cells, and ribbons |
| Data entry | Enter, edit, and format data efficiently |
| Formulas | Write SUM, AVERAGE, IF, and nested formulas |
| Functions | Use VLOOKUP, INDEX-MATCH, TEXT, DATE, and more |
| Charts | Build bar, line, and pie charts from data |
| Pivot tables | Summarize thousands of rows in seconds |
| Conditional formatting | Highlight cells automatically by rules |
| Real projects | Build a budget tracker, sales report, and dashboard |
Why learn Excel?
| Industry | How Excel is used |
|---|---|
| Finance & accounting | Budgets, forecasts, financial models |
| Marketing | Campaign tracking, metrics dashboards |
| HR | Headcount reports, payroll summaries |
| Operations | Inventory, scheduling, supply chain |
| Data analysis | Cleaning, exploring, and visualizing data |
| Sales | Pipeline tracking, commission calculations |
| Any office role | Reports, ad-hoc analysis, presentation prep |
Excel is used by over 750 million people worldwide. It's the #1 tool requested in non-technical job descriptions.
Setup: Getting Excel
| Option | Cost | Best for |
|---|---|---|
| Microsoft 365 (subscription) | ~$7/mo personal | Full features, always updated |
| Office 2021 (one-time) | ~$150 | No subscription needed |
| Excel Online | Free | Browser, basic features |
| Google Sheets | Free | Excel-compatible alternative |
For this tutorial, any version from Excel 2016 onward works. Excel Online (office.com) is free with a Microsoft account.
Part 1: The Excel Interface
Workbook vs worksheet
- Workbook — the
.xlsxfile itself - Worksheet (sheet) — one tab inside the workbook (Sheet1, Sheet2, etc.)
- You can have multiple sheets in one workbook
Key interface elements
| Element | Location | Purpose |
|---|---|---|
| Name Box | Top-left corner | Shows current cell address (e.g., A1) |
| Formula Bar | Below ribbon | Shows/edits cell content |
| Ribbon | Top toolbar | Organized tabs: Home, Insert, Formulas, Data, View |
| Column headers | A, B, C… | Identify columns |
| Row headers | 1, 2, 3… | Identify rows |
| Sheet tabs | Bottom | Navigate between worksheets |
| Scroll bars | Right + bottom | Navigate large sheets |
Cell addresses
Each cell has a unique address: column letter + row number.
| Address | Meaning |
|---|---|
A1 |
Column A, row 1 (top-left) |
C5 |
Column C, row 5 |
A1:D10 |
Range from A1 to D10 |
A:A |
Entire column A |
3:3 |
Entire row 3 |
Part 2: Entering and Editing Data
Basic data entry
- Click a cell
- Type your data
- Press Enter (move down) or Tab (move right) to confirm and move
Data types
| Type | Example | How Excel stores it |
|---|---|---|
| Text | Hello, Product A |
Left-aligned by default |
| Number | 42, 3.14 |
Right-aligned by default |
| Date | 7/16/2025 |
Number internally (days since Jan 1, 1900) |
| Time | 14:30 |
Decimal fraction of a day |
| Formula | =A1+B1 |
Starts with = |
| Boolean | TRUE, FALSE |
Used in logic formulas |
Keyboard shortcuts (essential)
| Shortcut | Action |
|---|---|
Ctrl+C |
Copy |
Ctrl+V |
Paste |
Ctrl+X |
Cut |
Ctrl+Z |
Undo |
Ctrl+Y |
Redo |
Ctrl+S |
Save |
Ctrl+Home |
Go to A1 |
Ctrl+End |
Go to last used cell |
Ctrl+Arrow |
Jump to edge of data |
Ctrl+Shift+Arrow |
Select to edge of data |
F2 |
Edit active cell |
Delete |
Clear cell contents |
Ctrl+D |
Fill down |
Ctrl+R |
Fill right |
AutoFill
Excel can predict series automatically:
- Type
1in A1,2in A2 - Select both cells
- Drag the small square at the bottom-right corner (fill handle) down
- Excel fills in 3, 4, 5, 6…
AutoFill also works for: days of the week, months, dates, custom lists.
Part 3: Formatting
Number formats
Select cells → Home tab → Number group → choose format:
| Format | Example | Use case |
|---|---|---|
| General | 1234.5 | Default — no formatting |
| Number | 1,234.50 | General numeric data |
| Currency | $1,234.50 | Money values |
| Accounting | $ 1,234.50 | Financial reports (aligned decimals) |
| Percentage | 85.00% | Rates, scores |
| Date | 7/16/2025 | Dates |
| Text | 00123 | Preserves leading zeros |
Shortcut: Ctrl+1 opens the Format Cells dialog for full control.
Cell formatting
| Button (Home tab) | Effect |
|---|---|
| B (Bold) | Ctrl+B |
| I (Italic) | Ctrl+I |
| U (Underline) | Ctrl+U |
| Fill Color | Highlight cell background |
| Font Color | Change text color |
| Borders | Add cell borders |
| Merge & Center | Combine multiple cells |
| Wrap Text | Show long text on multiple lines |
Column width and row height
- Double-click column border in header → auto-fit to content
- Right-click column/row header → Column Width / Row Height → enter value
- Select multiple columns → resize all at once
Part 4: Formulas and Functions
Every formula starts with =.
Basic arithmetic
=A1+B1 → add
=A1-B1 → subtract
=A1*B1 → multiply
=A1/B1 → divide
=A1^2 → power (A1 squared)
=SQRT(A1) → square root
SUM — add a range
=SUM(A1:A10) → sum of A1 through A10
=SUM(A1,B1,C1) → sum of three specific cells
=SUM(A:A) → sum of entire column A (use carefully)
AVERAGE, MIN, MAX, COUNT
=AVERAGE(B2:B100) → mean of range
=MIN(C2:C50) → smallest value
=MAX(C2:C50) → largest value
=COUNT(D2:D100) → count of numeric cells
=COUNTA(D2:D100) → count of non-empty cells
=COUNTBLANK(D2:D100) → count of empty cells
Cell references: relative vs absolute
| Reference | Syntax | Behavior when copied |
|---|---|---|
| Relative | A1 |
Adjusts to new position |
| Absolute | $A$1 |
Always refers to A1 |
| Mixed (column fixed) | $A1 |
Column A fixed, row adjusts |
| Mixed (row fixed) | A$1 |
Row 1 fixed, column adjusts |
Rule of thumb: Use $ when referencing a fixed value (like a tax rate or a total) that shouldn't change when you copy the formula.
Tip: Press F4 while editing a cell reference to cycle through reference types.
=B2*$C$1 → B2 adjusts, but C1 (tax rate) stays fixed
IF — logical test
=IF(condition, value_if_true, value_if_false)
=IF(A1>100, "High", "Low")
=IF(B2="", "Missing", B2)
=IF(C3>=0.9, "Pass", IF(C3>=0.7, "Review", "Fail")) → nested IF
Nested IF vs IFS (Excel 2016+)
=IFS(C3>=0.9, "A", C3>=0.8, "B", C3>=0.7, "C", TRUE, "F")
IFS is cleaner than deeply nested IF.
COUNTIF / COUNTIFS
=COUNTIF(A2:A100, "Apples") → count cells equal to "Apples"
=COUNTIF(B2:B100, ">1000") → count cells > 1000
=COUNTIF(C2:C100, "<>"&"") → count non-empty cells
=COUNTIFS(A2:A100, "Apples", B2:B100, ">1000") → multiple conditions
SUMIF / SUMIFS
=SUMIF(A2:A100, "Apples", C2:C100) → sum C where A = "Apples"
=SUMIFS(C2:C100, A2:A100, "Apples", B2:B100, ">1000")
Part 5: VLOOKUP and INDEX-MATCH
VLOOKUP
Look up a value in the first column of a table and return something from another column.
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
| Argument | Meaning |
|---|---|
lookup_value |
What you're searching for |
table_array |
The range containing your data |
col_index_num |
Which column number to return (1 = first column of range) |
range_lookup |
FALSE = exact match, TRUE = approximate match |
Example: Look up product price by ID:
=VLOOKUP(A2, $F$2:$H$100, 3, FALSE)
- Searches A2 value in column F
- Returns value from column H (3rd column of range F:H)
FALSE= exact match
VLOOKUP limitations
| Limitation | Workaround |
|---|---|
| Only looks left → right | Use INDEX-MATCH or XLOOKUP |
| Breaks if you insert columns | Use XLOOKUP or named ranges |
| Case-insensitive | No workaround in VLOOKUP |
| Slow on huge datasets | INDEX-MATCH is faster |
INDEX-MATCH — more powerful
=INDEX(return_range, MATCH(lookup_value, lookup_range, 0))
MATCHfinds the row number of the lookup valueINDEXreturns the value at that row from a different column
=INDEX(C2:C100, MATCH(A2, B2:B100, 0))
Can look left, right, or in any direction. Doesn't break when columns are inserted.
XLOOKUP (Excel 2019+, Microsoft 365)
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found])
=XLOOKUP(A2, F2:F100, H2:H100, "Not found")
Simpler syntax than VLOOKUP + handles errors gracefully.
Part 6: Text Functions
| Function | Syntax | Example | Result |
|---|---|---|---|
LEN |
=LEN(A1) |
"Hello" | 5 |
UPPER |
=UPPER(A1) |
"hello" | "HELLO" |
LOWER |
=LOWER(A1) |
"HELLO" | "hello" |
PROPER |
=PROPER(A1) |
"john doe" | "John Doe" |
TRIM |
=TRIM(A1) |
" hello " | "hello" |
LEFT |
=LEFT(A1,3) |
"Excel" | "Exc" |
RIGHT |
=RIGHT(A1,3) |
"Excel" | "cel" |
MID |
=MID(A1,2,3) |
"Excel" | "xce" |
FIND |
=FIND("@",A1) |
"a@b.com" | 2 |
SUBSTITUTE |
=SUBSTITUTE(A1,"a","o") |
"cat" | "cot" |
CONCATENATE |
=CONCATENATE(A1," ",B1) |
"John","Doe" | "John Doe" |
& operator |
=A1&" "&B1 |
"John","Doe" | "John Doe" |
TEXT |
=TEXT(A1,"dd/mm/yyyy") |
date serial | "16/07/2025" |
Part 7: Date and Time Functions
| Function | Result |
|---|---|
=TODAY() |
Today's date |
=NOW() |
Current date and time |
=DATE(2025,7,16) |
Date from year/month/day |
=YEAR(A1) |
Year from date |
=MONTH(A1) |
Month number |
=DAY(A1) |
Day number |
=WEEKDAY(A1,2) |
Day of week (1=Monday with type 2) |
=EDATE(A1,3) |
Date 3 months after A1 |
=EOMONTH(A1,0) |
Last day of A1's month |
=DATEDIF(A1,B1,"D") |
Days between two dates |
=NETWORKDAYS(A1,B1) |
Working days between dates |
Calculate age:
=DATEDIF(B2, TODAY(), "Y") → complete years
Days until deadline:
=A1-TODAY() → format result as Number
Part 8: Conditional Formatting
Automatically highlight cells based on rules.
How to apply:
- Select your data range
- Home → Conditional Formatting → choose a rule type
Common rule types
| Rule type | Example use |
|---|---|
| Highlight Cell Rules → Greater Than | Flag sales > $10,000 |
| Highlight Cell Rules → Between | Mark scores between 70-90 |
| Top/Bottom Rules → Top 10 | Highlight best performers |
| Data Bars | Visual bars inside cells |
| Color Scales | Green-yellow-red heat map |
| Icon Sets | Traffic lights, arrows |
| New Rule → Use a formula | Custom logic (=A1<TODAY()) |
Formula-based rule example
Highlight entire row if status is "Overdue":
- Select data range (e.g., A2:E100)
- Home → Conditional Formatting → New Rule
- Choose Use a formula to determine which cells to format
- Formula:
=$D2="Overdue"($ locks column D, not row) - Set fill color → OK
Part 9: Charts
Create a chart
- Select your data (include headers)
- Insert tab → Charts group
- Choose chart type
- Use Chart Design / Format tabs to customize
Chart types
| Chart | Best for |
|---|---|
| Column/Bar | Comparing categories |
| Line | Trends over time |
| Pie/Donut | Parts of a whole (≤6 slices) |
| Scatter | Correlation between two variables |
| Area | Cumulative trend |
| Combo | Two metrics on same chart (e.g., bars + line) |
| Histogram | Distribution of values |
| Box and Whisker | Statistical spread |
| Waterfall | Running total (financial) |
Chart best practices
- Give every chart a clear title
- Label axes with units
- Remove unnecessary gridlines and borders
- Use color intentionally (highlight one key bar)
- Don't use 3D charts — they distort perception
- Pie charts: max 5–6 slices, always sorted largest to smallest
Part 10: Pivot Tables
Pivot tables summarize large datasets without formulas.
Create a pivot table
- Click anywhere inside your data
- Insert → PivotTable → OK (puts it on new sheet)
- Drag fields from the field list into areas:
| Area | Purpose |
|---|---|
| Rows | Group data by categories (e.g., Region, Product) |
| Columns | Cross-tabulate by another category |
| Values | What to aggregate (Sum, Count, Average, etc.) |
| Filters | Filter the entire pivot table |
Example: Sales by Region and Product
Raw data columns: Date, Region, Product, Units, Revenue
Drag:
- Region → Rows
- Product → Columns
- Revenue → Values (Sum)
Result: a cross-tab showing total revenue per region × product.
Value field settings
Right-click a value in the pivot → Value Field Settings:
| Aggregation | Use case |
|---|---|
| Sum | Total revenue, total units |
| Count | Number of transactions |
| Average | Average order value |
| Min / Max | Highest/lowest sale |
| % of Grand Total | Share of total |
| % of Row Total | Share within each row |
Refresh a pivot table
When source data changes: PivotTable Analyze → Refresh (or Alt+F5).
Slicers
Visual filter buttons for pivot tables: PivotTable Analyze → Insert Slicer → choose field → click buttons to filter.
Part 11: Data Tools
Sort
- Click anywhere in your data
- Data → Sort
- Choose column + order (A→Z, Z→A, or custom)
Multiple-level sort: sort by Region first, then by Revenue descending.
Filter
- Select header row
- Data → Filter (or
Ctrl+Shift+L) - Click dropdown arrows on headers to filter
Advanced filter tricks:
- Filter by color
- Number filters: Top 10, Above Average, Between
- Text filters: Contains, Begins With
- Clear filter:
Alt+D+F+For Data → Clear
Remove Duplicates
Data → Remove Duplicates → select columns → OK
Text to Columns
Split one column into multiple (e.g., "John Doe" → "John" | "Doe"): Data → Text to Columns → Delimited (space) or Fixed Width
Flash Fill (Excel 2013+)
Excel learns your pattern:
- In column B, type the first transformed value (e.g., extract first name from "John Doe" → "John")
- Start typing the second
- Press
Ctrl+E— Excel fills the rest automatically
Data Validation
Restrict what users can enter in a cell:
- Select cells
- Data → Data Validation
- Settings → Allow: List → Source:
Yes,No(or a range)
Creates a dropdown. Also works for: whole numbers only, dates in range, text length limits.
Part 12: Real-World Projects
Project 1: Personal Budget Tracker
Columns: Date | Category | Description | Amount | Type (Income/Expense)
Key formulas:
Total Income: =SUMIF(E2:E100, "Income", D2:D100)
Total Expenses: =SUMIF(E2:E100, "Expense", D2:D100)
Balance: =Income - Expenses
By category: =SUMIF(B2:B100, "Food", D2:D100)
Add a Pivot Table: Category → Rows, Amount → Values (Sum) for instant spending breakdown.
Project 2: Sales Report with Dashboard
Sheet 1 — Raw data: Date | Rep | Region | Product | Units | Price | Revenue
Sheet 2 — Summary:
Total revenue: =SUM(Sheet1!G2:G1000)
Revenue this month: =SUMIFS(Sheet1!G:G, Sheet1!A:A, ">="&DATE(YEAR(TODAY()),MONTH(TODAY()),1))
Top product: =INDEX(Sheet1!D:D, MATCH(MAX(Sheet1!G:G), Sheet1!G:G, 0))
Add:
- Pivot table: Revenue by Region and Product
- Bar chart: Revenue by Rep
- Line chart: Revenue over time
- Slicer: filter by Region
Project 3: Employee Roster with Lookup
Sheet 1 (Employee DB): ID | Name | Department | Manager | Start Date | Salary
Sheet 2 (Search tool):
A1: Enter Employee ID
B1: =XLOOKUP(A1, Sheet1!A:A, Sheet1!B:B, "Not found") → Name
B2: =XLOOKUP(A1, Sheet1!A:A, Sheet1!C:C, "") → Department
B3: =XLOOKUP(A1, Sheet1!A:A, Sheet1!E:E, "") → Start Date
B4: =DATEDIF(B3, TODAY(), "Y")&" years" → Tenure
Common Excel Mistakes
| Mistake | Problem | Fix |
|---|---|---|
| Storing numbers as text | SUM returns 0 | Data → Text to Columns or VALUE() function |
| Hard-coding values in formulas | Breaks when data changes | Reference cells, not literals |
| Inconsistent date formats | Sorting fails | Use one format + Data Validation |
| Merging cells | Breaks sorting and filtering | Use Center Across Selection instead |
No $ in VLOOKUP table range |
Formula breaks when copied | Use $F$2:$H$100 |
| Giant formulas in one cell | Unreadable | Break into helper columns |
| No data validation | Users enter garbage | Add dropdowns + restrictions |
| Deleting instead of hiding rows | Permanent data loss | Filter and hide; archive on another sheet |
Excel vs Google Sheets
| Feature | Excel | Google Sheets |
|---|---|---|
| Speed on large data | Faster | Slower >100k rows |
| Collaboration | Requires 365 | Real-time, free |
| Offline | Full | Limited |
| XLOOKUP / LAMBDA | Yes | Partial |
| Power Query | Built-in | Add-on |
| Macros / VBA | Full VBA | Apps Script (JS) |
| Free tier | Excel Online (limited) | Full Sheets (free) |
| File format | .xlsx (industry standard) | .gsheet (exports to xlsx) |
Rule of thumb: Excel for serious data work and finance; Google Sheets for collaboration and automation via Sheets API.
Learning Path
| Stage | Topics | Time |
|---|---|---|
| Beginner | Interface, data entry, SUM/AVERAGE/IF, basic charts | 1–2 weeks |
| Intermediate | VLOOKUP/XLOOKUP, Pivot Tables, Conditional Formatting, Data Validation | 2–4 weeks |
| Advanced | INDEX-MATCH, SUMIFS/COUNTIFS, Power Query, dynamic arrays | 1–2 months |
| Expert | LAMBDA, Power Pivot, DAX, VBA macros | 3–6 months |
Next steps
Once you're comfortable with Excel basics:
- Excel Formulas Cheat Sheet — complete formula reference
- Excel Interview Questions — prepare for Excel-heavy job interviews
- Excel to CSV Converter — convert Excel files instantly
FAQ
Do I need to pay for Excel to follow this tutorial? No. Excel Online is free at office.com. Google Sheets is also free and supports nearly all the formulas covered here.
What's the difference between a formula and a function?
A formula is any expression starting with =. A function is a built-in named operation (SUM, VLOOKUP, IF). Most formulas use functions.
Should I learn VLOOKUP or XLOOKUP? If you have Excel 2019 or Microsoft 365, learn XLOOKUP — it's simpler and more powerful. Learn VLOOKUP too since you'll encounter it in older workbooks.
How do I protect a sheet so others can't edit it? Review → Protect Sheet → set a password and choose what's allowed. To protect the entire file: File → Info → Protect Workbook.
What's the fastest way to learn Excel? Practice on real data. Import a CSV of your actual expenses, sales, or work data and build something useful. Passive tutorials don't stick — building a real tracker does.
What's Power Query? Power Query (Data → Get & Transform) lets you import, clean, and reshape data from files, databases, and web sources without writing formulas. It's Excel's built-in ETL tool and one of the most valuable skills for data-heavy roles.