The library
Every topic the skills test can ask about, ranked within its area, with a difficulty rating on the same 500–2500 scale as the test and the number of practice questions behind it — 3,131 in all. Search, filter by category or difficulty band, and page through.
Functions · 520
Ranked by how often a finance operator reaches for them.
| # | Topic | What it does | Difficulty | Practice |
|---|---|---|---|---|
| 1 | SUMMath | Adds up numbers, ranges, or both. | 905 | 27 → |
| 2 | IFLogical | Returns one value if a test is true and another if it is false. | 1041 | 31 → |
| 3 | AVERAGEStatistical | Returns the arithmetic mean, ignoring blanks and text. | 905 | 19 → |
| 4 | VLOOKUPLookup | Finds a value in the first column of a table and returns a value from a column to the right. | 1382 | 27 → |
| 5 | COUNTStatistical | Counts cells that contain numbers; text and blanks are skipped. | 973 | 5 → |
| 6 | COUNTAStatistical | Counts cells that are not empty, whatever they contain. | 973 | 7 → |
| 7 | SUMIFMath | Adds the cells in a range that meet one condition. | 1314 | 56 → |
| 8 | SUMIFSMath | Adds cells that meet several conditions at once. | 1450 | 28 → |
| 9 | COUNTIFStatistical | Counts cells that meet one condition, with wildcards allowed in text. | 1245 | 76 → |
| 10 | COUNTIFSStatistical | Counts rows that meet several conditions at once. | 1382 | 26 → |
| 11 | XLOOKUPLookup | Finds a value in one range and returns the matching item from another, in any direction, exact by default. | 1450 | 18 → |
| 12 | ROUNDMath | Rounds a number to a given number of digits; negative digits round to tens, hundreds, and so on. | 1041 | 48 → |
| 13 | MAXStatistical | Returns the largest number. | 905 | 35 → |
| 14 | MINStatistical | Returns the smallest number. | 905 | 15 → |
| 15 | IFERRORLogical | Returns an alternative value if a formula produces any error. | 1177 | 42 → |
| 16 | INDEXLookup | Returns the value at a given row and column position in a range. | 1450 | 55 → |
| 17 | MATCHLookup | Returns the position of a value in a range, not the value itself. | 1450 | 6 → |
| 18 | CONCATText | Joins text from several cells or ranges with no delimiter. | 1041 | 21 → |
| 19 | TEXTText | Formats a number or date as text using a format code. | 1314 | 56 → |
| 20 | LEFTText | Returns the first characters of a text string. | 1041 | 38 → |
| 21 | RIGHTText | Returns the last characters of a text string. | 1041 | 25 → |
| 22 | MIDText | Returns characters from the middle of a string, starting at a position. | 1177 | 25 → |
| 23 | LENText | Returns the number of characters in a string, spaces included. | 973 | 23 → |
| 24 | TRIMText | Removes leading, trailing, and repeated spaces. | 1041 | 10 → |
| 25 | TODAYDate | Returns the current date, updated on every recalculation. | 973 | 3 → |
Shortcuts · 140
Windows keys; the catalog page has the Mac equivalent.
| # | Topic | What it does | Difficulty | Practice |
|---|---|---|---|---|
| 1 | Ctrl + BFormatting | Bold | 768 | 2 → |
| 2 | Ctrl + CEditing | Copy | 768 | 2 → |
| 3 | Ctrl + XEditing | Cut | 768 | 2 → |
| 4 | Ctrl + VEditing | Paste | 768 | 2 → |
| 5 | Ctrl + SWorkbook | Save | 700 | 2 → |
| 6 | Ctrl + ZEditing | Undo | 768 | 2 → |
| 7 | EscEditing | Cancel the entry or exit edit mode | 836 | 2 → |
| 8 | DeleteEditing | Clear the contents of the selection | 836 | 2 → |
| 9 | EnterNavigation | Confirm the entry and move down | 836 | 4 → |
| 10 | TabNavigation | Move one cell to the right | 836 | 3 → |
| 11 | F2Editing | Edit the active cell | 905 | 2 → |
| 12 | Ctrl + FNavigation | Open Find | 905 | 2 → |
| 13 | Ctrl + ASelection | Select the current region, then the whole sheet on a second press | 905 | 3 → |
| 14 | Ctrl + DEditing | Fill down from the top cell of the selection | 973 | 4 → |
| 15 | Alt + =Formulas | Insert an AutoSum formula | 973 | 3 → |
| 16 | Ctrl + ;Editing | Insert today's date as a fixed value | 973 | 3 → |
| 17 | Ctrl + ArrowNavigation | Jump to the edge of the current data region | 973 | 2 → |
| 18 | Ctrl + HEditing | Open Find and Replace | 973 | 2 → |
| 19 | Ctrl + 1Formatting | Open the Format Cells dialog | 973 | 3 → |
| 20 | Alt + EnterEditing | Start a new line inside the cell | 973 | 2 → |
| 21 | Ctrl + TData | Create a Table from the selection | 1041 | 2 → |
| 22 | Ctrl + Shift + ArrowSelection | Extend the selection to the edge of the data region | 1041 | 2 → |
| 23 | F4Formulas | Toggle absolute and relative references while editing | 1041 | 2 → |
| 24 | Ctrl + Shift + LData | Toggle AutoFilter | 1041 | 3 → |
| 25 | Ctrl + IFormatting | Italic | 768 | 2 → |
Pivot tables · 40
The features, from the first pivot to calculated fields.
| # | Topic | What it does | Difficulty | Practice |
|---|---|---|---|---|
| 1 | Creating a pivot tableBasics | Summarizes a table of rows into totals by any combination of fields, without formulas. | 1041 | 5 → |
| 2 | RefreshingData & refresh | Re-reads the source data; pivots do not update on their own. | 1041 | 2 → |
| 3 | The four areasBasics | Rows and Columns define the grid, Values are what gets summarized, Filters limit the whole table. | 1041 | 2 → |
| 4 | Changing the summary functionCalculations | Switches a value field between Sum, Count, Average, Max, Min, and others. | 1109 | 2 → |
| 5 | Grouping datesGrouping | Rolls daily dates up into months, quarters, and years. | 1245 | 2 → |
| 6 | SlicersFiltering | Clickable buttons that filter one or more pivots at once and show what is filtered. | 1245 | 2 → |
| 7 | The fields paneBasics | The panel where fields are dragged into areas; it disappears when the pivot is not selected. | 973 | 2 → |
| 8 | Drilling to detailsBasics | Shows the source rows behind any total. | 1109 | 2 → |
| 9 | Multiple value fieldsCalculations | Shows several summaries side by side, like Sum of Revenue and Count of Orders. | 1109 | 2 → |
| 10 | Report filtersFiltering | Limits the entire pivot to chosen items of a field placed in the Filters area. | 1109 | 2 → |
| 11 | Sorting a pivotLayout | Orders row or column items by label or by their values. | 1109 | 2 → |
| 12 | Subtotals and grand totalsLayout | Turns the automatic subtotal rows and grand total row and column on or off. | 1109 | 2 → |
| 13 | Changing the data sourceData & refresh | Points the pivot at a bigger or different range when the source grows. | 1177 | 2 → |
| 14 | Number formatting a value fieldLayout | Formats every cell of a value field at once, and the format survives refresh. | 1177 | 2 → |
| 15 | Report layout: compact, outline, tabularLayout | Controls whether nested row fields stack in one column (compact) or spread across columns (outline, tabular). | 1245 | 2 → |
| 16 | Source data shapeBasics | Pivots need one header row and one record per row: no merged cells, no subtotals, no blank header cells. | 1314 | 2 → |
| 17 | Show Values AsCalculations | Displays a value field as a percentage of the total, running total, difference from, or rank instead of the raw number. | 1450 | 2 → |
| 18 | Pivot chartsAdvanced | A chart wired to the pivot that changes as you filter, group, or rearrange it. | 1245 | 2 → |
| 19 | Preserving formatting on refreshLayout | Keeps column widths and cell formats from resetting every time you refresh. | 1245 | 2 → |
| 20 | Repeat item labelsLayout | Fills the row labels on every row instead of only the first of each group, so the output can be used as flat data. | 1245 | 2 → |
| 21 | Label and value filtersFiltering | Filters row items by their name (contains, begins with) or by their totals (top 10, greater than). | 1314 | 2 → |
| 22 | TimelinesFiltering | A slicer built for dates that lets you pick years, quarters, months, or days by dragging. | 1314 | 2 → |
| 23 | Top 10 filterFiltering | Shows only the largest or smallest N items, or the items that make up a percentage of the total. | 1314 | 2 → |
| 24 | Flattening a pivot to a tableAdvanced | Turns pivot output into a plain table that formulas can reference. | 1382 | 2 → |
| 25 | Grouping numbers into binsGrouping | Turns a numeric field into ranges like 0-99, 100-199. | 1382 | 2 → |
VBA · 72
The language, not the macros — those are on the VBA snippets page.
| # | Topic | What it does | Difficulty | Practice |
|---|---|---|---|---|
| 1 | Macro-enabled workbooksGetting started | Macros only survive in .xlsm (or .xlsb) files; saving as .xlsx strips them. | 973 | 2 → |
| 2 | MsgBoxUser interaction | Shows a message and optionally asks Yes/No. | 973 | 2 → |
| 3 | Declaring variables with DimVariables | Declares a variable and its type before use. | 1041 | 2 → |
| 4 | If ... Then ... ElseControl flow | Runs code when a condition is true, with optional ElseIf and Else branches. | 1041 | 2 → |
| 5 | RangeRanges | Refers to a cell or block by address, name, or as an intersection. | 1041 | 2 → |
| 6 | Recording a macroGetting started | Excel writes the code for whatever you do, a good way to learn object names. | 1041 | 2 → |
| 7 | Sub proceduresSyntax | A block of code that performs actions and returns nothing; every macro is a Sub. | 1041 | 2 → |
| 8 | The VBA editorGetting started | Where macros are written and run; opened with Alt + F11. | 1041 | 2 → |
| 9 | Cells(row, column)Ranges | Refers to a cell by numbers, which makes looping easy. | 1109 | 1 → |
| 10 | For ... NextControl flow | Repeats a block a set number of times with a counter. | 1109 | 2 → |
| 11 | For Each ... NextControl flow | Loops over every item in a collection: cells in a range, sheets in a workbook. | 1177 | 2 → |
| 12 | Set for objectsVariables | Object variables (ranges, sheets, workbooks) must be assigned with Set. | 1177 | 2 → |
| 13 | Application.ScreenUpdatingPerformance | Stops the screen redrawing while code runs, a large speedup for anything that touches many cells. | 1245 | 2 → |
| 14 | Finding the last rowRanges | The standard way to find the last used row in a column, mimicking Ctrl + Up from the bottom. | 1314 | 2 → |
| 15 | CommentsSyntax | An apostrophe starts a comment that VBA ignores. | 905 | 1 → |
| 16 | Assigning a macro to a buttonUser interaction | Runs a macro from a shape or form control on the sheet. | 1041 | 2 → |
| 17 | Clear methodsRanges | ClearContents removes values, ClearFormats removes formatting, Clear removes both. | 1041 | 2 → |
| 18 | InputBoxUser interaction | Asks the user to type a value. | 1041 | 2 → |
| 19 | String concatenationSyntax | Ampersand joins text; & is safer than + because + tries to add numbers. | 1041 | 2 → |
| 20 | Breakpoints and steppingErrors & debugging | Pause code at a line (F9) and run it one line at a time (F8) while watching variables. | 1177 | 2 → |
| 21 | Copy and PasteSpecialRanges | Copies a range and pastes values, formats, or formulas. | 1177 | 2 → |
| 22 | Data typesVariables | Long for whole numbers, Double for decimals, String for text, Boolean for True/False, Date, Variant for anything. | 1177 | 2 → |
| 23 | Debug.Print and the Immediate windowErrors & debugging | Writes values to the Immediate window (Ctrl + G) while code runs. | 1177 | 2 → |
| 24 | Option ExplicitVariables | Forces every variable to be declared, so typos become errors instead of silent new variables. | 1177 | 1 → |
| 25 | Avoiding Select and ActivatePerformance | Working with ranges directly is faster and more reliable than selecting them first. | 1245 | 2 → |
Concepts · 26
The things that aren't one function: errors, references, dates, tables.
| # | Topic | What it does | Difficulty | Practice |
|---|---|---|---|---|
| 1 | Error values | Each error tells you what went wrong: #N/A not found, #REF! deleted reference, #NAME? unknown name, #VALUE! wrong type, #DIV/0! divided by zero, #NUM! bad number, #SPILL! blocked array, ##### too narrow. | 1109 | 21 → |
| 2 | Relative, absolute, and mixed references | A1 shifts when copied; $A$1 never moves; A$1 locks the row and $A1 locks the column. | 1109 | 5 → |
| 3 | Numbers stored as text | Text that looks like a number is skipped by SUM and sorts wrongly; a green triangle flags it. | 1177 | 2 → |
| 4 | How dates and times work | A date is a serial day count from January 1, 1900; a time is a fraction of a day. Formatting only changes the display. | 1177 | 6 → |
| 5 | Excel Tables | A range converted with Ctrl + T that auto-expands, keeps formats and formulas consistent, and lets formulas use column names. | 1177 | 1 → |
| 6 | Pivot tables | A drag-and-drop summary of raw rows by any fields, with no formulas. | 1177 | 0 → |
| 7 | Choosing a lookup function | VLOOKUP looks right only and breaks when columns move; INDEX/MATCH looks anywhere; XLOOKUP does both with exact match by default. | 1450 | 0 → |
| 8 | File types | xlsx has no macros, xlsm keeps them, xlsb is compact binary, csv is plain text with values only. | 973 | 2 → |
| 9 | Number formats and custom formats | Formats change how a value displays, not what it is. Custom codes handle thousands, decimals, percent, dates, and conditional colors. | 1109 | 5 → |
| 10 | Data validation | Restricts what a cell accepts: a list, a number range, a date, or a custom formula. | 1109 | 1 → |
| 11 | Data tools | Text to Columns, Remove Duplicates, Flash Fill, Sort, Filter, and Goal Seek handle most cleanup without formulas. | 1109 | 5 → |
| 12 | Conditional formatting | Cell appearance driven by rules: value ranges, top/bottom, duplicates, data bars, or a formula. | 1177 | 0 → |
| 13 | Charts | Visuals bound to ranges or tables; combo, waterfall, and pivot charts cover most reporting. | 1177 | 1 → |
| 14 | Order of operations | Excel evaluates parentheses, then percent, then exponents, then multiply and divide, then add and subtract, then & and comparisons. A leading minus binds tighter than ^. | 1245 | 11 → |
| 15 | Error handling in formulas | IFERROR catches every error, IFNA only #N/A; catching too much hides real bugs. | 1245 | 0 → |
| 16 | Criteria strings | COUNTIF-family criteria are text: ">10", "<>West", "app*". Comparisons against cells are built with &. | 1314 | 0 → |
| 17 | Dynamic arrays and spilling | A formula that returns several values writes them into neighboring cells automatically; A1# refers to the whole spill. | 1518 | 4 → |
| 18 | Power Query | A tool for importing and reshaping data with recorded, repeatable steps. | 1518 | 1 → |
| 19 | Named ranges | A readable name for a cell or range, used in formulas and as list sources. | 1177 | 1 → |
| 20 | Protecting sheets and workbooks | Locks cells against editing and hides formulas once the sheet is protected. | 1245 | 1 → |
| 21 | Formula auditing | Tools that show what feeds a formula, what depends on it, and how it evaluates step by step. | 1314 | 3 → |
| 22 | Precision and display | 15 significant digits are stored; display rounding does not change the value, ROUND does. | 1314 | 1 → |
| 23 | What-If Analysis | Goal Seek changes one input to hit a target; Data Tables show a formula across many inputs; Scenario Manager stores sets of inputs. | 1450 | 1 → |
| 24 | Calculation and performance | Volatile functions, whole-column array math, and too many lookups slow recalculation. | 1586 | 0 → |
| 25 | Boolean math and SUMPRODUCT | Comparisons return TRUE/FALSE; multiplying or double-negating turns them into 1/0 so they can be summed. | 1723 | 1 → |
Learn the moves here — or let Wauvel run them on your numbers.
$99/mo, everything included. Free for 14 days, no card.
One CFO-grade Excel tip a week
A short, practical email for finance operators — functions, shortcuts, and the moves that save an afternoon. Free, unsubscribe anytime.