Advanced Excel Test: Online Practice
True / False
True / False
True / False
True / False
Put in order
True / False
Put in order
Put in order
Put in order
Put in order
True / False
Advanced Excel Errors That Break Workbooks Under Change (and How to Prevent Them)
Most “advanced Excel” failures aren’t syntax errors—they’re silent logic shifts that show up after data grows, refreshes, or gets re-sorted. Use the patterns below as a checklist while you review your answers.
XLOOKUP/XMATCH: match behavior and shape control
- Unstated match assumptions: using approximate or wildcard matching without confirming sort order and intent. Avoid: choose
match_modedeliberately and document whether you expect exact, wildcard, or nearest-match behavior. - Return array dimensions drift: lookup arrays and return arrays don’t align (different heights/widths), or you return a multi-column range and trigger an unexpected spill. Avoid: validate ranges are the same shape; constrain the return range or wrap with
INDEXwhen you need a scalar.
Dynamic arrays: spill hygiene and downstream references
- #SPILL! due to blocked output: a single value, merged cell, or table boundary blocks the spill range. Avoid: reserve a dedicated output area; don’t place spill formulas inside tables unless you intend structured expansion.
- Copying formulas without stable inputs: relative references shift across copies and your spill changes meaning. Avoid: anchor with
$where appropriate or use structured references (e.g.,Sales[Amount]).
SUMPRODUCT-style multi-criteria logic: boolean algebra mistakes
- AND/OR precedence bugs: mixing
*(AND) and+(OR) without parentheses changes the filter logic. Avoid: group each condition explicitly, then combine. - Type mismatches: criteria stored as text ("5000") compared to numbers yields unexpected zeros. Avoid: standardize types at the source or coerce intentionally (e.g.,
VALUE()).
Power Query + Power Pivot/DAX: refresh and context surprises
- Breaking M step dependencies: editing a step name or referencing the wrong prior step causes refresh failures. Avoid: rename steps meaningfully and confirm each step’s input/output.
- Confusing measures with row-by-row formulas: a DAX measure evaluates in filter context, not per-row like an Excel formula. Avoid: decide whether the problem requires a calculated column (row context) or a measure (aggregation under filters).
Authoritative References for XLOOKUP, Dynamic Arrays, SUMPRODUCT, Power Query M, and DAX
Use these primary references to verify function signatures, edge-case behavior, and the evaluation rules that show up in advanced scenarios.
- XLOOKUP function (Microsoft Support) — Official syntax and examples, including
match_mode/search_modebehaviors that commonly drive wrong-match results. ([support.microsoft.com](https://support.microsoft.com/office/xlookup-function-b7fd680e-6d10-43e6-84f9-88eae8bf5929?utm_source=openai)) - Dynamic array formulas and spilled array behavior (Microsoft Support) — How spills work, what triggers
#SPILL!, and how spill ranges behave when referenced downstream. ([support.microsoft.com](https://support.microsoft.com/en-us/office/dynamic-array-formulas-and-spilled-array-behavior-205c6b06-03ba-4151-89a1-87a7eb36e531?utm_source=openai)) - SUMPRODUCT function (Microsoft Support) — Definition, syntax, and performance considerations (including why full-column references can become expensive). ([support.microsoft.com](https://support.microsoft.com/en-gb/office/sumproduct-function-16753e75-9f68-4874-94ac-4d2145a2fd2e?utm_source=openai))
- Power Query M formula language reference (Microsoft Learn) — Entry point for M language concepts and function reference used when you go beyond the UI steps. ([learn.microsoft.com](https://learn.microsoft.com/ms-my/powerquery-m/?utm_source=openai))
- CALCULATE function (DAX) (Microsoft Learn) — Core reference for how
CALCULATEmodifies filter context (a frequent source of “why did my measure change?” mistakes). ([learn.microsoft.com](https://learn.microsoft.com/en-us/dax/calculate-function-dax?utm_source=openai))
Advanced Excel Practice FAQ: Spills, Lookups, SUMPRODUCT Logic, and Data Model Context
When should I prefer XLOOKUP over INDEX+XMATCH in advanced models?
Use XLOOKUP when you want a readable, single-function lookup with explicit not-found handling and controlled match/search modes. Use INDEX+XMATCH when you need a two-way lookup (row and column), or when separating “find position” from “return value” makes the model easier to audit and test.
Why did my XLOOKUP “suddenly spill” into multiple cells?
A spill usually means your return_array is more than one cell wide or tall, so Excel correctly returns an array instead of a scalar. If you only want one value, constrain the return range to a single column/row, or wrap the result with INDEX( … , 1) (or a specific row/column) to force a single-cell output.
What’s the fastest way to diagnose a #SPILL! error?
First, select the formula cell and look for the outlined spill area; something inside that area is blocking the output (a value, a merged cell, or a table boundary). Clear the obstruction or relocate the formula to a clean output zone. If the spill is intentional, reference it downstream with the spill operator (e.g., A1#) so dependent formulas resize automatically.
My SUMPRODUCT multi-criteria formula returns 0, but I’m sure matches exist—what should I check?
Check data types first: a numeric column compared to a text criterion (or vice versa) often yields no matches. Next, check parentheses: * (AND) and + (OR) need explicit grouping to reflect your intended logic. Finally, validate each condition separately (return the boolean array) before multiplying conditions together.
Why do DAX measures behave differently from Excel formulas in tables?
Excel formulas in a row behave like “calculate for this row.” A DAX measure is evaluated under the current filter context (slicers, rows/columns in a PivotTable, report filters), so the same measure can return different results depending on where it’s placed. Treat measures as reusable aggregations whose inputs are defined by the current filters, not by a single row.
Power Query refresh changed my results—what are the usual root causes?
Most refresh surprises come from type changes (text vs number vs date), locale-dependent parsing (especially dates), or a step order change that affects grouping/filtering. Review the Applied Steps from top to bottom and confirm the column types after merges, appends, and custom columns. If a step references an earlier step by name, renaming or deleting steps can also alter behavior.
What to Master for Reliable Advanced Excel Workbooks
- Declare lookup intent: choose XLOOKUP/XMATCH match and search modes intentionally, and design your lookup arrays so exact vs. nearest-match can’t be confused.
- Control output shape: know when a formula returns a scalar vs. an array, and constrain the return range (or use
INDEX) when a spill would be unsafe. - Design for spills: reserve clean output space for dynamic arrays and reference spill results with
#so downstream calculations resize automatically. - Write readable boolean math: in SUMPRODUCT-style logic, parenthesize every condition and validate each boolean array before combining AND/OR logic.
- Separate transform from calc: use Power Query for repeatable shaping/typing, and use DAX measures for filter-aware aggregation—don’t mix roles casually.
Advanced Excel Terms Used in This Practice (with Mini Examples)
- Spill range
- The set of cells populated by a dynamic array formula. Example: if
B2contains a formula that spills, reference the full result withB2#. - #SPILL!
- An error indicating Excel can’t place the spilled results. Example: a value in the intended spill area blocks
=SORT(A2:A100)from expanding. - match_mode (XLOOKUP/XMATCH)
- An argument controlling exact vs. approximate vs. wildcard matching. Example: use exact match when looking up IDs; use wildcard only when the lookup value intentionally contains patterns.
- Return array (XLOOKUP)
- The range/array returned from a match. Example: returning a 5-column range produces a 5-column spill; returning a single column produces a single-column result.
- Structured reference
- A table-based reference that expands with new rows. Example:
Orders[Amount]remains correct after inserts that would shift$E$2:$E$500. - Boolean coercion
- Converting TRUE/FALSE arrays into 1/0 for arithmetic filtering. Example: in SUMPRODUCT logic,
(Region="West")*(Sales>5000)multiplies two 1/0 masks. - Applied Steps (Power Query)
- The ordered transformations that define a query. Example: changing the order of “Changed Type” and “Removed Errors” can alter which rows survive refresh.
- Filter context (DAX)
- The active set of filters affecting a measure’s evaluation. Example: a Total Sales measure returns different values by Year in a PivotTable because each row imposes a different filter context.