Excel Formulas, Data Analysis, Shortcuts, Word, PowerPoint, Google Sheets vs Excel, Data Visualization, Advanced Tips — complete Microsoft Office reference.
Master these formulas and you can handle 95% of real-world spreadsheet tasks. Functions are grouped by category below.
| Function | Syntax | Description |
|---|---|---|
| VLOOKUP | =VLOOKUP(value, range, col, FALSE) | Vertical lookup; FALSE = exact match |
| XLOOKUP | =XLOOKUP(lookup, return, if_not_found) | Modern replacement for VLOOKUP; works in any direction |
| INDEX | =INDEX(range, row_num, col_num) | Returns value at a specific position in a range |
| MATCH | =MATCH(lookup_val, range, 0) | Returns position of a value in a range (0=exact) |
| INDEX-MATCH | =INDEX(B:B, MATCH(val, A:A, 0)) | Flexible lookup; more powerful than VLOOKUP |
| INDIRECT | =INDIRECT("A" & B1) | Returns reference specified by a text string |
| OFFSET | =OFFSET(ref, rows, cols, height, width) | Returns a range offset from a starting reference |
| Function | Syntax | Description |
|---|---|---|
| IF | =IF(condition, true_val, false_val) | Basic conditional logic |
| IFS | =IFS(cond1, val1, cond2, val2, TRUE, default) | Multiple conditions without nesting |
| AND | =AND(cond1, cond2) | TRUE only if ALL conditions are TRUE |
| OR | =OR(cond1, cond2) | TRUE if ANY condition is TRUE |
| NOT | =NOT(condition) | Reverses the logical value |
| SWITCH | =SWITCH(expr, val1, result1, val2, result2) | Matches expression against list of values |
| IFERROR | =IFERROR(formula, value_if_error) | Catches any error and returns alternate value |
| IFNA | =IFNA(formula, value_if_na) | Catches only #N/A errors specifically |
| Function | Syntax | Description |
|---|---|---|
| SUMIF | =SUMIF(range, criteria, sum_range) | Sum cells that meet a single condition |
| SUMIFS | =SUMIFS(sum_range, crit_range1, crit1, ...) | Sum with multiple criteria |
| COUNTIF | =COUNTIF(range, criteria) | Count cells meeting a condition |
| COUNTIFS | =COUNTIFS(range1, crit1, range2, crit2) | Count with multiple criteria |
| AVERAGEIF | =AVERAGEIF(range, criteria, avg_range) | Average of cells meeting a condition |
| SUMPRODUCT | =SUMPRODUCT(array1, array2) | Multiply arrays then sum; powerful multi-criteria tool |
| ROUND | =ROUND(number, digits) | Round to specified decimal places |
| ROUNDUP / ROUNDDOWN | =ROUNDUP(number, digits) | Always rounds up or down |
| MOD | =MOD(number, divisor) | Returns the remainder after division |
| ABS | =ABS(number) | Returns absolute value |
| Function | Syntax | Description |
|---|---|---|
| CONCAT / CONCATENATE | =CONCAT(text1, text2) | Combine text from multiple cells |
| TEXTJOIN | =TEXTJOIN(",", TRUE, range) | Join with delimiter; TRUE ignores blanks |
| LEFT / RIGHT | =LEFT(text, num_chars) | Extract characters from left or right |
| MID | =MID(text, start_num, num_chars) | Extract characters from the middle |
| FIND | =FIND(search, within) | Find position of substring (case-sensitive) |
| SEARCH | =SEARCH(search, within) | Find position (case-insensitive; supports wildcards) |
| SUBSTITUTE | =SUBSTITUTE(text, old, new, instance) | Replace specific text occurrences |
| REPLACE | =REPLACE(old_text, start, num, new) | Replace text by position |
| TRIM | =TRIM(text) | Remove extra spaces (keeps single spaces) |
| LEN | =LEN(text) | Count characters in text |
| UPPER / LOWER / PROPER | =UPPER(text) | Change text case |
| TEXT | =TEXT(value, format) | Convert number to formatted text (e.g. "0.00%") |
| Function | Syntax | Description |
|---|---|---|
| TODAY() | =TODAY() | Returns current date (updates automatically) |
| NOW() | =NOW() | Returns current date and time |
| DATE | =DATE(year, month, day) | Create a date from individual components |
| DATEDIF | =DATEDIF(start, end, "Y") | Difference between dates ("Y", "M", "D", "YM", "MD") |
| EOMONTH | =EOMONTH(start, months) | End of month, offset by N months |
| EDATE | =EDATE(start, months) | Same day, offset by N months |
| NETWORKDAYS | =NETWORKDAYS(start, end, holidays) | Working days between dates (excludes weekends) |
| WORKDAY | =WORKDAY(start, days, holidays) | Date N working days from start |
| YEAR / MONTH / DAY | =YEAR(date) | Extract year, month, or day component |
| WEEKDAY | =WEEKDAY(date, type) | Day of week (1=Sun or 2=Mon with type 2) |
| Function | Syntax | Description |
|---|---|---|
| UNIQUE | =UNIQUE(range) | Returns unique values from a range (spills automatically) |
| FILTER | =FILTER(range, include, if_empty) | Filter data based on criteria; returns array |
| SORT | =SORT(range, sort_index, order) | Sort a range by column index |
| SORTBY | =SORTBY(range, by_range, order) | Sort by a different column |
| SEQUENCE | =SEQUENCE(rows, cols, start, step) | Generate a sequence of numbers |
| RANDARRAY | =RANDARRAY(rows, cols, min, max, integer) | Random number array |
-- Extract first name from full name
=LEFT(A2, FIND(" ", A2) - 1)
-- Extract last name from full name
=TRIM(MID(A2, FIND(" ", A2), LEN(A2)))
-- Age from date of birth
=DATEDIF(A2, TODAY(), "Y")
-- Running total (cumulative sum)
=SUM($B$2:B2)
-- Grade from score (nested IF)
=IF(A2>=90,"A",IF(A2>=80,"B",IF(A2>=70,"C",IF(A2>=60,"D","F"))))
-- Concatenate with line break
=A2 & CHAR(10) & B2
-- (enable Wrap Text on the cell)
-- Get domain from email address
=MID(A2, FIND("@", A2) + 1, LEN(A2) - FIND("@", A2))
-- Days remaining until deadline
=A2 - TODAY()
-- Percentage change vs previous month
=(B2 - A2) / ABS(A2)=LET(
tax_rate, 0.18,
amount, A2 * (1 + tax_rate),
discount, IF(amount > 1000, amount * 0.1, 0),
amount - discount
)
-- LET: assign names to intermediate values
=LAMBDA(price, qty, price * qty)
-- Reusable formula; assign via Name Manager
=LAMBDA(radius, PI() * radius ^ 2)
-- Calculate circle area from radiusExcel is a powerhouse for data analysis. This section covers the essential tools that transform raw data into insights.
| Step | Action |
|---|---|
| 1 | Select your data range (or press Ctrl+T to make it a Table) |
| 2 | Insert tab → PivotTable → choose location (new or existing worksheet) |
| 3 | Drag fields: Rows (categories), Columns (sub-categories), Values (sum/count) |
| 4 | Use Filters to slice data, Slicers for interactive buttons |
| 5 | Right-click a value → Show Values As → % of Grand Total or Rank |
| 6 | PivotTable Analyze → Refresh on open for live data connections |
| Rule Type | When to Use | Location |
|---|---|---|
| Highlight Cell Rules | Greater than, less than, between, text contains, duplicate values | Home → Conditional Formatting → Highlight Cells Rules |
| Top/Bottom Rules | Top 10, bottom 10%, above/below average | Home → Conditional Formatting → Top/Bottom Rules |
| Data Bars | Visual bar inside cells (in-cell bar chart) | Home → Conditional Formatting → Data Bars |
| Color Scales | 2-color or 3-color gradient (heat map) | Home → Conditional Formatting → Color Scales |
| Icon Sets | Traffic lights, arrows, ratings (3-5 icons) | Home → Conditional Formatting → Icon Sets |
| Formula-Based | Custom logic: =MOD(ROW(),2)=0 for zebra stripes | Home → Conditional Formatting → New Rule → Use a formula |
| Type | Use Case | Example |
|---|---|---|
| Whole Number | Restrict to integers within range | Between 1 and 100 |
| Decimal | Restrict to decimal values | Greater than 0 |
| List | Drop-down list of allowed values | Yes, No, Maybe |
| Date | Only dates within a range | Between today and 30 days ahead |
| Time | Only time values within range | Between 09:00 and 17:00 |
| Text Length | Restrict character count | Between 5 and 50 characters |
| Custom | Any formula that returns TRUE/FALSE | =ISNUMBER(A2) for numeric-only input |
| Tool | Purpose | Access |
|---|---|---|
| Goal Seek | Find input value that produces a desired result | Data → What-If Analysis → Goal Seek |
| Scenario Manager | Compare different sets of input values | Data → What-If Analysis → Scenario Manager |
| Data Tables | Show results for 1 or 2 variables across a range | Data → What-If Analysis → Data Table |
| Solver | Find optimal solution with constraints | Data → Solver (enable in Add-ins first) |
-- Sales for a specific product in a specific region
=SUMIFS(Sales[Amount], Sales[Product], "Widget", Sales[Region], "West")
-- Count of orders above $500 for a specific customer
=COUNTIFS(Orders[Customer], "Acme Corp", Orders[Amount], ">500")
-- Average order value for this month
=AVERAGEIFS(Orders[Amount], Orders[Date], ">="&DATE(2025,1,1),
Orders[Date], "<="&EOMONTH(TODAY(),0))
-- SUMPRODUCT for OR logic (either condition)
=SUMPRODUCT(((A2:A100="East")+(A2:A100="West"))*(B2:B100>1000))-- Remove extra spaces + convert to proper case
=TRIM(PROPER(A2))
-- Remove non-printable characters
=CLEAN(TRIM(A2))
-- Extract numbers only from mixed text
=VALUE(CONCAT(IFERROR(VALUE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)),"")))
-- Pad numbers with leading zeros
=TEXT(A2, "00000") -- 5-digit zero-padded
-- Standardize phone number format
=TEXT(SUBSTITUTE(SUBSTITUTE(A2,"-","")," ",""),"(###) ###-####")Learning keyboard shortcuts is the single highest-ROI activity for Excel users. These shortcuts work in Windows (replace Ctrl with Cmd on Mac).
| Shortcut | Action |
|---|---|
| Ctrl + Arrow Keys | Jump to edge of data region |
| Ctrl + Home | Go to cell A1 |
| Ctrl + End | Go to last used cell |
| Ctrl + G / F5 | Go To dialog (jump to specific cell) |
| Ctrl + Shift + End | Select from current cell to last used cell |
| Ctrl + Shift + Arrow | Select to edge of data region |
| Ctrl + Space | Select entire column |
| Shift + Space | Select entire row |
| Ctrl + A (twice) | Select entire sheet |
| Ctrl + PgUp / PgDn | Switch between worksheets |
| Ctrl + Tab | Switch between open workbooks |
| Alt + PgUp / PgDn | Scroll left/right one screen |
| Shortcut | Action |
|---|---|
| F2 | Edit cell (enter edit mode) |
| F4 | Toggle absolute/relative reference ($A$1, A$1, $A1, A1) |
| Ctrl + D | Fill down (copy from cell above) |
| Ctrl + R | Fill right (copy from cell left) |
| Ctrl + Enter | Enter same value in all selected cells |
| Alt + Enter | New line within the same cell |
| Delete | Clear cell contents (keeps formatting) |
| Ctrl + - | Delete cells/rows/columns with shift |
| Ctrl + Shift + + | Insert cells/rows/columns |
| Ctrl + 1 | Open Format Cells dialog |
| Ctrl + B / I / U | Bold / Italic / Underline |
| Ctrl + Shift + ~ | General number format |
| Ctrl + Shift + $ | Currency format |
| Ctrl + Shift + % | Percentage format |
| Ctrl + Shift + # | Date format |
| Ctrl + Shift + @ | Time format |
| Shortcut | Action |
|---|---|
| = (equals) | Start a formula |
| Tab | Autocomplete function name |
| Ctrl + Shift + U | Expand / collapse formula bar |
| F9 | Calculate selected portion of formula (in formula bar) |
| Ctrl + ` | Toggle formula view (show formulas instead of values) |
| Ctrl + Shift + Enter | Enter as array formula (legacy Excel) |
| Alt + = | AutoSum (SUM of range above) |
| Shift + F3 | Insert Function dialog |
| Ctrl + A | Show arguments for a function (after typing function name) |
| Shortcut | Action |
|---|---|
| Ctrl + T | Create Table from selected range |
| Ctrl + Shift + L | Toggle filter dropdowns |
| Alt + F1 | Insert chart on same sheet (instant chart) |
| F11 | Insert chart on new chart sheet |
| Ctrl + P | Print preview |
| Ctrl + S | Save workbook |
| F12 | Save As |
| Ctrl + Z / Y | Undo / Redo |
| Ctrl + K | Insert hyperlink |
| Ctrl + F / H | Find / Find and Replace |
| Ctrl + Shift + O | Select all cells with comments |
| Alt + ; | Select visible cells only (after filtering) |
| Scenario | Shortcut Combo |
|---|---|
| Quick sum a column | Click empty cell below → Alt + = → Enter |
| Copy formula down entire column | Select formula cell → Ctrl + Shift + End → Ctrl + D |
| Insert row without breaking formulas | Ctrl + Shift + + (with row selected) |
| Select non-contiguous cells | Hold Ctrl + click each cell |
| Freeze top row and first column | View → Freeze Panes → Freeze Panes (cell B2 selected) |
| Flash Fill pattern | Ctrl + E (auto-recognize pattern from examples) |
| Quick chart from data | Select data → Alt + F1 |
| Paste values only | Ctrl + C → Ctrl + Shift + V (or right-click → Paste Values) |
Word is the most widely used document editor. Master these features to create professional documents efficiently.
| Shortcut | Action |
|---|---|
| Ctrl + B / I / U | Bold / Italic / Underline |
| Ctrl + E / L / R / J | Center / Left / Right / Justify alignment |
| Ctrl + [ / ] | Decrease / Increase font size |
| Ctrl + Shift + > | Increase font size |
| Ctrl + Shift + < | Decrease font size |
| Ctrl + Shift + V | Copy formatting only (Format Painter shortcut) |
| Ctrl + Shift + S | Apply Styles (open Styles pane) |
| Ctrl + Enter | Insert page break |
| Ctrl + Shift + Enter | Insert section break |
| Ctrl + - | Insert optional hyphen |
| Ctrl + Shift + - | Insert non-breaking hyphen |
| Ctrl + Shift + Space | Insert non-breaking space |
| Feature | Details |
|---|---|
| Heading Styles | Use Heading 1-3 for structure; enables automatic TOC and navigation pane |
| Normal Style | Base style for body text; modify once to change all body text globally |
| Style Sets | Design tab → change overall look with one click (Font/Color combo) |
| Create Custom Style | Home → Styles → New Style; set font, paragraph, numbering, borders |
| Templates (.dotx) | File → New → search templates or create your own for repeated use |
| Save as Template | File → Save As → choose Word Template (.dotx) for reuse |
| Element | How To Insert |
|---|---|
| Header / Footer | Insert tab → Header & Footer → choose built-in or edit manually |
| Different First Page | Header & Footer → check "Different First Page" |
| Odd/Even Pages | Header & Footer → check "Different Odd & Even Pages" |
| Page Numbers | Insert tab → Page Number → choose position and format |
| Total Pages | Insert → Quick Parts → Field → NumPages (shows total page count) |
| Section Breaks | Layout → Breaks → Next Page (allows different headers per section) |
| Step | Action |
|---|---|
| 1 | Apply Heading 1, 2, 3 styles throughout your document |
| 2 | Click where you want the TOC (usually after the title page) |
| 3 | References → Table of Contents → choose a style |
| 4 | To update: right-click TOC → Update Field → Update entire table |
| 5 | For custom TOC: References → Table of Contents → Custom Table of Contents |
| Step | Action |
|---|---|
| 1 | Create a data source (Excel list, Outlook contacts, or CSV file) |
| 2 | Open Word → Mailings → Start Mail Merge → choose type (Letters, Labels, Emails) |
| 3 | Mailings → Select Recipients → Use Existing List → browse to your data |
| 4 | Insert Merge Fields (First Name, Last Name, Address, etc.) into your document |
| 5 | Preview Results to check each record |
| 6 | Finish & Merge → Print Documents or Edit Individual Documents |
| Feature | How To Use |
|---|---|
| Insert Table | Insert → Table → choose rows/columns; or Tab key to create quick table |
| Table Design | Table Design tab → style, borders, shading, header row options |
| Sort Table | Click column header arrow → Sort A-Z or Z-A; or Data → Sort |
| Repeat Header Row | Table Layout → Repeat Header Rows (shows header on each page) |
| Merge Cells | Select cells → Table Layout → Merge Cells (center text across) |
| Insert Image | Insert → Pictures → choose from file, online, or clipboard |
| Wrap Text Around Image | Right-click image → Wrap Text → Square or Tight |
| Captions | References → Insert Caption (auto-numbered: Figure 1, Table 1) |
| Cross-References | References → Cross-reference; link to headings, figures, tables |
| Bookmarks | Insert → Link → Bookmark; jump within long documents |
| Feature | How To Use |
|---|---|
| Track Changes | Review tab → Track Changes (shows all edits with author colors) |
| Accept/Reject | Review → Accept or Reject changes individually or all at once |
| Comments | Review → New Comment (or Ctrl+Alt+M); useful for feedback without editing |
| Compare Documents | Review → Compare → combine two versions into one marked-up document |
| Protect Document | Review → Protect Document → restrict editing, formatting, or enforce comments |
| Version History | File → Info → Version History (requires OneDrive/SharePoint auto-save) |
Great presentations combine clear structure with clean design. Here is how to master PowerPoint from layout to delivery.
| Feature | Details |
|---|---|
| Slide Master | View → Slide Master; edit master layout to apply changes to ALL slides at once |
| Layouts | Create custom layouts (title + content, 2-column, blank, image-focused) |
| Theme Colors | Design → Variants → Colors; define 6-color palette for consistency |
| Theme Fonts | Design → Variants → Fonts; set heading + body fonts globally |
| Slide Size | Design → Slide Size → Standard (4:3) or Widescreen (16:9) |
| Background | Design → Format Background; use gradient, picture, or solid fill |
| Category | Examples | Best Practice |
|---|---|---|
| Entrance Animations | Fade, Fly In, Appear, Zoom | Use subtle animations (Fade preferred); avoid distracting ones |
| Emphasis Animations | Pulse, Grow/Shrink, Color Change | Highlight specific elements without overwhelming |
| Exit Animations | Fade Out, Fly Out, Disappear | Use sparingly; only when content needs to clear |
| Motion Paths | Custom paths for object movement | Great for explaining processes or data flow |
| Slide Transitions | Fade, Push, Morph, Wipe | Pick ONE transition and use it throughout; Morph is modern favorite |
| Morph Transition | PowerPoint 365 feature: duplicates become smooth animations | Create animation-like effects without keyframing |
| Feature | How To Use |
|---|---|
| Speaker Notes | Click below slide → type notes; only visible in Presenter View |
| Presenter View | Slide Show → Use Presenter View; shows current, next slide, and notes |
| Rehearse Timings | Slide Show → Rehearse with Coach; tracks time per slide |
| Record Slideshow | Slide Show → Record; record narration, ink, and laser pointer |
| Export to PDF | File → Export → Create PDF/XPS; for sharing printable versions |
| Export Handouts | File → Export → Create Handouts (3 slides per page with notes) |
| Shortcut | Action |
|---|---|
| Ctrl + D | Duplicate selected object |
| Ctrl + G / Shift + Ctrl + G | Group / Ungroup objects |
| Ctrl + Shift + G | Ungroup objects |
| Shift + Drag | Draw perfect shapes (square, circle, straight line) |
| Ctrl + Shift + Drag | Copy object in a straight line (constrained) |
| Ctrl + Mouse Wheel | Zoom in/out |
| F5 | Start slideshow from beginning |
| Shift + F5 | Start slideshow from current slide |
| Esc | End slideshow |
| N / P | Next / Previous slide (during slideshow) |
| B | Black screen (blank out during presentation) |
| W | White screen |
| Ctrl + P | Pen tool during slideshow (draw on slides) |
| E | Erase ink annotations during slideshow |
| Feature | How To Use |
|---|---|
| Insert Video | Insert → Video → This Device or Online (YouTube, Vimeo) |
| Insert Audio | Insert → Audio → Record Audio or Audio on My PC |
| Playback Settings | Playback tab → start on click or automatically; set fade duration |
| Trim Media | Playback → Trim Audio/Video; set start and end points |
| Poster Frame | Playback → Poster Frame; choose thumbnail image for video |
| Compress Media | File → Compress Media; reduce file size for sharing |
| Save as Video | File → Export → Create a Video (MP4 or WMV); for sharing without PPT |
| Slide Type | Content | Approx Time |
|---|---|---|
| Title Slide | Title, subtitle, presenter name, date | 30 seconds |
| Agenda / Overview | What you will cover (3-5 bullet points) | 1 minute |
| Problem / Context | Why this topic matters; background | 1-2 minutes |
| Main Content (3-5 slides) | One idea per slide; data, visuals, examples | 3-5 min each |
| Data / Evidence | Charts, statistics, case studies | 2-3 minutes |
| Key Takeaway | Summary of the most important points | 1 minute |
| Q&A | Questions slide; contact info; thank you | Variable |
Google Sheets and Microsoft Excel are both powerful spreadsheet tools. Here is a feature comparison plus unique Google Sheets functions.
| Feature | Microsoft Excel | Google Sheets |
|---|---|---|
| Collaboration | OneDrive sharing; co-authoring (good) | Real-time collaboration; comments; sharing link (excellent) |
| Pricing | Paid (Office 365) or one-time purchase | Free with Google account |
| Offline Access | Desktop app (full features offline) | Chrome extension; limited offline via Google Drive |
| Max Rows | 1,048,576 rows (older); unlimited with Data Model | 10 million cells total limit |
| Macros / VBA | Full VBA support; robust macro recorder | Apps Script (JavaScript-based); limited recorder |
| Power Query | Built-in; powerful ETL | Limited (use Apps Script or add-ons) |
| Pivot Tables | Advanced; Power Pivot with DAX | Basic pivot tables; improving with updates |
| Advanced Charts | Extensive chart types, combo charts, sparklines | Basic charts; limited customization |
| Dynamic Arrays | Excel 365/2021+ (UNIQUE, FILTER, SORT) | Always had them (native to Sheets) |
| AI Features | Copilot (AI assistant, paid) | Explore (AI suggestions); Help me organize |
| Add-ins / Extensions | VSTO add-ins, Office Store | Google Workspace Marketplace |
| Version History | AutoSave with version history | Named versions; unlimited history |
| Formulas | = sign required | = sign required (same) |
| Named Ranges | Full support | Full support |
| Function | Syntax | Description |
|---|---|---|
| IMPORTRANGE | =IMPORTRANGE(url, "Sheet1!A1:Z100") | Import data from another spreadsheet (requires authorization) |
| QUERY | =QUERY(data, "SELECT A, B WHERE C > 100") | SQL-like queries within Google Sheets |
| GOOGLEFINANCE | =GOOGLEFINANCE("GOOGL", "price") | Real-time and historical stock/market data |
| GOOGLETRANSLATE | =GOOGLETRANSLATE(text, "en", "es") | Translate text between languages |
| IMPORTXML | =IMPORTXML(url, "//h1") | Scrape data from web pages using XPath |
| IMPORTHTML | =IMPORTHTML(url, "table", 1) | Import tables or lists from web pages |
| SPLIT | =SPLIT(A1, ",") | Split text by delimiter into multiple columns |
| JOIN | =JOIN(", ", A1:A10) | Join array values with a delimiter |
| ARRAYFORMULA | =ARRAYFORMULA(A1:A10 * B1:B10) | Apply formula to entire range (like Excel dynamic arrays) |
| REGEXEXTRACT | =REGEXEXTRACT(A1, "\d+") | Extract text matching a regex pattern |
| REGEXMATCH | =REGEXMATCH(A1, "pattern") | Check if text matches a regex pattern (TRUE/FALSE) |
| REGEXREPLACE | =REGEXREPLACE(A1, "old", "new") | Replace text using regex patterns |
| IMAGE | =IMAGE(url) | Insert an image from URL directly into a cell |
| SPARKLINE | =SPARKLINE(A1:A20) | Create a mini chart inside a single cell |
| COUNTUNIQUE | =COUNTUNIQUE(A1:A100) | Count unique values (no equivalent single function in older Excel) |
-- Basic SELECT
=QUERY(A1:D100, "SELECT A, B WHERE D > 1000")
-- ORDER BY and LIMIT
=QUERY(A1:D100, "SELECT * ORDER BY C DESC LIMIT 10")
-- GROUP BY and aggregate
=QUERY(A1:D100, "SELECT A, SUM(D) GROUP BY A")
-- LABEL (rename headers)
=QUERY(A1:D100, "SELECT A, SUM(D) GROUP BY A LABEL SUM(D) 'Total'")
-- Pivot
=QUERY(A1:D100, "SELECT A, SUM(D) PIVOT B")=GOOGLEFINANCE("AAPL", "price") -- Current price
=GOOGLEFINANCE("AAPL", "high", TODAY()-30, TODAY()) -- 30-day high
=GOOGLEFINANCE("GOOGL", "pe") -- P/E ratio
=GOOGLEFINANCE("MSFT", "marketcap") -- Market capitalization
=GOOGLEFINANCE("NSE:RELIANCE", "price") -- Indian stock (NSE)| Shortcut | Action |
|---|---|
| Ctrl + / | Show all keyboard shortcuts in Google Sheets |
| Ctrl + Alt + Shift + = | Insert row above (or open Insert menu) |
| Ctrl + H | Find and Replace |
| Ctrl + Enter | Fill selected range with current value |
| Ctrl + Shift + Enter | Fill down (opposite of Excel) |
| Ctrl + ; | Insert current date |
| Ctrl + Shift + ; | Insert current time |
| Ctrl + Shift + 2 | Apply format: time |
| Ctrl + Shift + 4 | Apply format: currency |
| Ctrl + Shift + 5 | Apply format: percentage |
| F2 | Edit cell (same as Excel) |
| Alt + Shift + 1 | View → Compact controls (minimal toolbar) |
The right chart type makes data instantly understandable. This section covers when to use each chart type and dashboard best practices.
| Chart Type | Best For | Example Use Case |
|---|---|---|
| Column Chart | Comparing categories; time-based comparison | Monthly sales by product; quarterly revenue comparison |
| Bar Chart | Comparing categories with long labels; ranking | Top 10 customers by revenue; survey results |
| Line Chart | Trends over continuous time periods | Stock price over 12 months; website traffic trend |
| Area Chart | Cumulative trends; volume over time | Revenue by region over time; cumulative users |
| Pie / Doughnut | Part-to-whole (max 5-6 slices) | Market share by company; budget allocation |
| Scatter Plot | Relationship between two variables | Height vs weight; ad spend vs revenue correlation |
| Combo Chart | Two different data types on same chart | Revenue (columns) + profit margin % (line) |
| Waterfall | Sequential positive/negative contributions | Profit bridge: start → additions → subtractions → end |
| Funnel | Stages of a process with decreasing values | Sales funnel: leads → qualified → proposals → closed |
| Treemap | Hierarchical data with proportional areas | Budget breakdown by department and sub-category |
| Sunburst | Multi-level hierarchical proportions | Organization structure; file system sizes |
| Sparkline | Mini trend chart in a single cell | Trend next to each product name in a table |
| Map Chart | Geographic / regional data comparison | Sales by state/country; population density |
| Histogram | Distribution of data across bins | Age distribution; exam score distribution |
| Box & Whisker | Statistical distribution and outliers | Salary ranges by department; performance scores |
| Rule | Details |
|---|---|
| Avoid 3D | 3D effects distort data perception; always use flat 2D charts |
| Consistent Colors | Use the same color for the same category across all charts |
| Sort Data | Sort bar/column charts by value (largest first) for easier reading |
| Start Y-Axis at 0 | For bar/column charts; starting at a non-zero value exaggerates differences |
| Use Gridlines Sparingly | Light gray horizontal gridlines only; remove vertical gridlines |
| Label Clearly | Axis labels, title, data labels on key values, legend if multiple series |
| Highlight Key Data | Use contrasting color for the data point you want to emphasize |
| Avoid Chart Junk | Remove unnecessary borders, backgrounds, shadows, and decorations |
| Choose the Right Chart | Do not force data into the wrong chart type (no pie for 10+ categories) |
| Accessible Colors | Use colorblind-friendly palettes; add patterns/labels, not just color |
| Principle | Implementation |
|---|---|
| Purpose-Driven | Define the dashboard objective first; every element must serve a question |
| Top-Left Hierarchy | Most important KPIs go in the top-left (natural reading direction) |
| Consistent Layout | Use a grid layout; align all charts and elements precisely |
| Interactive Filters | Slicers and dropdowns for user-driven filtering |
| Bento Box Style | Group related charts in bordered sections with clear headers |
| KPI Cards | Large numbers with trend indicators (arrows, sparklines) for quick scanning |
| Conditional Formatting | Color-code values (green/red) to highlight good/bad performance |
| Drill-Down Capability | Click a bar to see detailed breakdown (use PivotCharts or hyperlinks) |
| Mobile Responsive | Design for the smallest screen first; stack vertically on narrow viewports |
| Element | Best Practice |
|---|---|
| Icons | Use flat icons (insert online pictures); keep a consistent icon style throughout |
| Callout Boxes | Rounded rectangles with subtle shadow; contain key stat + one-line description |
| Progress Bars | Stacked bar charts or conditional formatting data bars for visual KPIs |
| Comparison | Side-by-side layouts with icon + 3 bullets per option |
| Timeline | SmartArt → Process → Accented Picture; or horizontal line with markers |
| Color Coding | Green = good/positive, Red = bad/negative, Amber = warning/attention |
| Data Labels | Only show labels on the most important data points to avoid clutter |
| Annotations | Use callout shapes with arrows pointing to key data in charts |
These techniques separate casual users from Excel power users. Master them to handle complex workbooks and large datasets efficiently.
| Feature | How To Use |
|---|---|
| Create | Select range → type name in Name Box (left of formula bar) → Enter |
| Name Manager | Formulas → Name Manager; view, edit, or delete all named ranges |
| Dynamic Range | Define name with formula: =OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),1) |
| In Formulas | Use =SUM(Revenue) instead of =SUM(Sheet1!B2:B500) |
| Table References | Use =SUM(Table1[Revenue]) for auto-expanding ranges with Tables |
| Scope | Workbook (default) or Worksheet-level; avoid same name at both scopes |
| Format Code | Result | Use Case |
|---|---|---|
| #,##0 | 1,234,567 | Number with thousands separator |
| #,##0.00 | 1,234,567.89 | Currency without symbol |
| $#,##0;[Red]($#,##0) | Positive green, negative red | Accounting format |
| 0.0% | 85.5% | Percentage with 1 decimal |
| MM/DD/YYYY | 01/15/2025 | Date format |
| DD-MMM-YYYY | 15-Jan-2025 | Date with month abbreviation |
| h:mm AM/PM | 2:30 PM | 12-hour time format |
| [h]:mm | 26:30 | Hours exceeding 24 (for time tracking) |
| #,##0, "K" | 1,235 K | Thousands with K suffix |
| #,##0,, "M" | 1 M | Millions with M suffix |
| #,##0 "↑";-#,##0 "↓";0 "—" | Arrow indicators | Show trend arrows with values |
| [>5]"High";[<-5]"Low";"OK" | Conditional text | Text based on value thresholds |
| Feature | Details |
|---|---|
| Record Macro | View → Macros → Record Macro; performs actions and generates VBA code |
| Run Macro | View → Macros → View Macros → select and Run (or Alt+F8) |
| Shortcut Key | Assign Ctrl+Shift+Letter when recording a macro |
| VBA Editor | Alt + F11 opens the VBA Editor to view/edit code |
| Personal Macro Workbook | Store macros in PERSONAL.xlsb to use across all workbooks |
| File Format | Save as .xlsm (Macro-Enabled Workbook) to keep macros |
| Security | File → Options → Trust Center → Macro Settings → enable/disable |
' Auto-format a selected range as a table
Sub FormatAsTable()
Dim rng As Range
Set rng = Selection
rng.Borders.LineStyle = xlContinuous
rng.Font.Name = "Calibri"
rng.Font.Size = 11
rng.EntireColumn.AutoFit
End Sub
' Loop through rows and highlight duplicates
Sub HighlightDuplicates()
Dim cell As Range
For Each cell In Selection
If WorksheetFunction.CountIf(Selection, cell.Value) > 1 Then
cell.Interior.Color = RGB(255, 200, 200)
End If
Next cell
End Sub
' Create a summary sheet from all sheets
Sub CreateSummary()
Dim ws As Worksheet
Sheets.Add Before:=Sheets(1)
ActiveSheet.Name = "Summary"
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Summary" Then
Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = ws.Name
End If
Next ws
End Sub| Feature | Details |
|---|---|
| Enable | File → Options → Add-ins → COM Add-ins → check Power Pivot |
| Data Model | Load data into Data Model (Power Query → Close & Load To → Data Model) |
| Relationships | Create relationships between tables (like a database) instead of VLOOKUP |
| DAX Measures | Calculated fields using DAX formula language (more powerful than Excel formulas) |
| Millions of Rows | Compresses data; handles 100M+ rows vs 1M worksheet limit |
-- Total Sales
Total Sales = SUM(Sales[Amount])
-- Sales Last Year (time intelligence)
Sales LY = CALCULATE([Total Sales], SAMEPERIODLASTYEAR(Calendar[Date]))
-- Year-over-Year Growth
YoY Growth = DIVIDE([Total Sales] - [Sales LY], [Sales LY])
-- Running Total
Running Total = CALCULATE(
[Total Sales],
FILTER(ALL(Calendar), Calendar[Date] <= MAX(Calendar[Date]))
)
-- Distinct Count of Customers
Unique Customers = DISTINCTCOUNT(Sales[CustomerID])| Error | Meaning | Common Cause | Fix |
|---|---|---|---|
| #N/A | Value not available | VLOOKUP/XLOOKUP cannot find the lookup value | Check for typos, use IFERROR, verify data exists |
| #REF! | Invalid cell reference | Deleted a cell/range that a formula references | Undo the deletion; update the formula reference |
| #VALUE! | Wrong type of argument | Text in a formula expecting numbers; wrong argument type | Check data types; use VALUE() to convert text to number |
| #DIV/0! | Division by zero | Denominator is zero or empty cell | Use =IF(denominator=0, 0, numerator/denominator) |
| #NAME? | Unrecognized name | Misspelled function name; undefined named range | Check spelling; verify named range exists |
| #NULL! | Incorrect range operator | Missing colon (:) between cell references | Change space to colon: A1:A10 not A1 A10 |
| #NUM! | Invalid numeric value | Number too large, or invalid argument for a function | Check input values; SQRT of negative number |
| #SPILL! | Spill range blocked | Dynamic array result is blocked by data in the way | Clear the blocking cells |
| #CALC! | Calculation error | Empty array in a function that expects values | Check for missing data in the calculation chain |
| Tip | Details |
|---|---|
| Use Excel Tables | Ctrl+T to convert range to Table; formulas auto-expand; faster calculation |
| Avoid Volatile Functions | INDIRECT, OFFSET, NOW, TODAY, RAND recalculate constantly; use INDEX instead |
| Turn Off Auto-Calc | Formulas → Calculation Options → Manual; press F9 to recalculate |
| Use Power Query | Load data via Power Query instead of pasting millions of rows directly |
| Filter Before Processing | Apply filters to work with subsets; copy filtered results to new sheet |
| Use Pivot Tables | Summarize data via Pivot Table instead of thousands of SUMIF formulas |
| Remove Unused Cells | Delete unused rows/columns beyond your data to reduce file size |
| Close Other Workbooks | Multiple open workbooks share calculation resources |
| Use 64-bit Excel | If you have 64-bit Office, it can address more RAM for large files |
| Save as .xlsx or .xlsb | .xlsb (Binary) is smaller and opens faster than .xlsx for large files |
| Feature | Details |
|---|---|
| Create Table | Select data → Ctrl+T → OK; auto-formats with banded rows and filters |
| Structured References | Use =SUM(Table1[Revenue]) instead of =SUM(B2:B1000); auto-expands |
| Auto-Expand | New rows/columns are automatically included in Table range and formulas |
| Total Row | Table Design → check Total Row; adds SUM/AVERAGE/COUNT dropdown at bottom |
| Slicers | Table Design → Insert Slicer; filter table visually with clickable buttons |
| Remove Duplicates | Table Design → Remove Duplicates; quick dedup on one or more columns |
| Export to Range | Table Design → Convert to Range; removes table features but keeps data |
| Table Styles | Table Design → choose from 60+ built-in styles; or create custom |
| Step | Action | Shortcut/Menu |
|---|---|---|
| 1 | Select data and convert to Table | Ctrl+T |
| 2 | Remove duplicates | Table Design → Remove Duplicates |
| 3 | Remove extra spaces | =TRIM() for text columns |
| 4 | Fix number formats (text-as-numbers) | Data → Text to Columns → Finish |
| 5 | Standardize date formats | Select dates → Data → Text to Columns → Date: MDY |
| 6 | Find and Replace errors | Ctrl+H → Find #N/A → Replace with blank |
| 7 | Handle blanks | Select → Home → Find & Select → Go To Special → Blanks → type 0 |
| 8 | Apply consistent capitalization | =PROPER() or =UPPER() for categorical data |