Professional guide with copy-paste ready formulas and shortcuts
Jump to the edge of data regions instantly:
Go to beginning/end of worksheet:
Select entire column or row quickly:
Quickly insert today's date or current time:
Copy format or formula from cell above/left:
Add up numbers in a range:
=SUM(number1, [number2], ...)
=SUM(A1:A10) - Sum all values from A1 to A10
=SUM(B2:B50) - Calculate total sales for the month
Count non-empty cells in a range:
=COUNTA(value1, [value2], ...)
=COUNTA(A1:A100) - Count how many cells have data
=COUNTA(C2:C100) - Count number of responses in survey
Make decisions based on conditions:
=IF(condition, value_if_true, value_if_false)
=IF(A1>100, "High", "Low")
=IF(B2>=60, "Pass", "Fail") - Check if student passed (60+ score)
=IF(A1>90, "A", IF(A1>80, "B", IF(A1>70, "C", "F"))) - Grade calculator
Sum or count based on specific criteria:
=SUMIF(range, criteria, [sum_range])
=COUNTIF(range, criteria)
=SUMIF(A2:A100, ">100", B2:B100) - Sum values in B where A > 100
=SUMIF(C2:C50, "Completed", D2:D50) - Total revenue from completed orders
=COUNTIF(B2:B100, "Yes") - Count how many "Yes" responses
Find and retrieve data from a table:
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
=VLOOKUP(A2, B2:D100, 3, FALSE) - Find value in column A, return from 3rd column
=VLOOKUP(E2, Products!A:C, 3, FALSE) - Look up product ID, get price
Multiply numbers in a range:
=PRODUCT(number1, [number2], ...)
=PRODUCT(A1:A5) - Multiply all values from A1 to A5
=PRODUCT(B2, C2, D2) - Calculate total price (quantity × unit price × tax rate)
Combine text from multiple cells:
=CONCATENATE(text1, [text2], ...)
=CONCAT(text1, [text2], ...)
(Modern version)
=CONCATENATE(A2, " ", B2) - Combine first and last name
=CONCATENATE(A2, " - ", B2, " (", C2, ")") - Create product label "Name - Code (Category)"
=A2&" "&B2 for simpler concatenation
Return value from specific position in array:
=INDEX(array, row_num, [column_num])
=INDEX(A1:C10, 5, 2) - Get value from 5th row, 2nd column
=INDEX(Products!B:B, 10) - Get 10th product name from column B
More powerful than VLOOKUP - can look left, right, up, down!
=INDEX(return_range, MATCH(lookup_value, lookup_range, 0))
=INDEX(C2:C100, MATCH(E2, A2:A100, 0)) - Find E2 in column A, return from column C
=INDEX(Prices!B:B, MATCH(A2, Prices!A:A, 0)) - Look up product ID, get price (works left!)
Modern replacement for VLOOKUP - more powerful and flexible:
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found])
=XLOOKUP(A2, B2:B100, D2:D100, "Not Found") - Look in B, return from D
=XLOOKUP(E2, Products!A:A, Products!C:C, "Item not in stock") - Get stock status by product ID
Handle errors gracefully in your formulas:
=IFERROR(formula, value_if_error)
=IFERROR(A2/B2, 0) - Divide, return 0 if error (e.g., divide by zero)
=IFERROR(VLOOKUP(A2, Products!A:C, 3, FALSE), "Not found") - Clean VLOOKUP without #N/A errors
Replace specific text within a string:
=SUBSTITUTE(text, old_text, new_text, [instance_num])
=SUBSTITUTE(A2, "old", "new") - Replace "old" with "new"
=SUBSTITUTE(B2, "-", "") - Remove hyphens from phone number (555-1234 → 5551234)
=SUBSTITUTE(A2, " ", "-", 2) - Replace only 2nd space with hyphen
Display only rows that meet your criteria (Excel 365):
=FILTER(array, include, [if_empty])
=FILTER(A2:C100, B2:B100>1000) - Show all rows where column B > 1000
=FILTER(Orders!A:D, Orders!C:C="Pending", "No pending orders") - Show only pending orders
=FILTER(A2:D100, (B2:B100="USA") * (C2:C100>500)) - USA AND sales > 500
Automatically sort data in ascending or descending order (Excel 365):
=SORT(array, [sort_index], [sort_order], [by_col])
=SORT(A2:C100, 2, -1) - Sort by 2nd column, descending (-1)
=SORT(Sales!A:D, 4, -1) - Show sales data, highest revenue first
Extract only unique values from a list (Excel 365):
=UNIQUE(array, [by_col], [occurs_once])
=UNIQUE(A2:A100) - Get list of unique values from column A
=UNIQUE(Customers!B:B) - Create dropdown of unique customer names
=SORT(UNIQUE(A2:A100)) - Unique values, alphabetically sorted
Apply multiple conditions at once:
=SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2]...)
=SUMIFS(Sales, Region, "East", Quarter, "Q1") - Sum sales for East region in Q1
Extract and manipulate text data:
=LEFT(text, num_chars)
First N characters
=RIGHT(text, num_chars)
Last N characters
=MID(text, start_num, num_chars)
Middle characters
=TRIM(text)
Remove extra spaces
=TEXTJOIN(delimiter, ignore_empty, text1, [text2]...)
Join text with delimiter
=LEFT(A2, FIND(" ", A2)-1) - Extract first name
Advanced date calculations for business and analytics:
=DATEDIF(start_date, end_date, "D")
Days between dates
=WORKDAY(start_date, days, [holidays])
Add business days
=NETWORKDAYS(start_date, end_date, [holidays])
Count business days
=EOMONTH(start_date, months)
End of month
Remove unwanted characters and clean messy data:
=CLEAN(text)
Remove non-printable characters
=SUBSTITUTE(text, old_text, new_text)
Replace text
=UPPER(text) / =LOWER(text) / =PROPER(text)
Change case
=TRIM(CLEAN(A2)) - Remove extra spaces and non-printable chars
Create powerful data summaries in seconds:
Add dropdown filters to headers instantly:
Click the dropdown arrows to filter or sort your data.
Create dropdown lists or restrict input:
Keep headers visible while scrolling:
Get row or column number of a cell:
=ROW([reference])
Returns row number
=COLUMN([reference])
Returns column number
=ROW() - Returns current row number (e.g., 5 if in row 5)
=ROW()-1 - Auto-numbering (1, 2, 3...) starting from row 2
Insert current date that auto-updates:
=TODAY()
=TODAY() - Shows today's date (updates daily)
=TODAY()+30 - Date 30 days from today
=DATEDIF(B2, TODAY(), "Y") - Age in years from birth date in B2
Ctrl + ; to insert today's date (doesn't update)
Convert between characters and their codes:
=CHAR(number)
Number to character
=CODE(text)
Character to number (also called ASC)
=CHAR(65) - Returns "A" (65 is ASCII code for A)
=CHAR(10) - Line break in cell (use with ALT+ENTER or in formula)
=CHAR(ROW()+64) - A, B, C... (drag down from row 1)
Use wildcards in formulas for flexible matching:
=COUNTIF(A:A, "John*") - Count cells starting with "John" (John, Johnny, Johnson)
=SUMIF(B:B, "*pending*", C:C) - Sum where B contains "pending" anywhere
=COUNTIF(A:A, "????") - Count cells with exactly 4 characters
=COUNTIF(A:A, "A*n") - Starts with "A", ends with "n" (Alan, Aaron, Amazon, etc.)
Excel detects patterns and fills data automatically:
Create custom formats (Right-click → Format Cells → Custom):
#,##0
Thousands separator
$#,##0.00
Currency with 2 decimals
0.00%
Percentage
Perform calculations on multiple values at once:
=SUM(A1:A10*B1:B10)