Logan's Analytics Bootcamp
Dashboard β€Ί Phase 1: Advanced Excel
M1.1

Tables, Structured References, and XLOOKUP

⏱ 5 hoursπŸ“… Weeks 1–2❓ 4 quiz questions
Phase 1 goal

Turn Excel from a calculation grid into a repeatable data pipeline: clean data with Power Query, look up and reshape with modern functions, wrap logic in LET/LAMBDA, and summarize with PivotTables on a Data Model.

🎯 Learning objectives

Tick each one when you can actually do it.

πŸ’‘ Key concepts

  • Excel Tables (Ctrl+T): Auto-expanding ranges, named columns (Milestones[ForecastDate]), calculated columns, total rows. This is the foundation for everything that follows, including Power Query and Power Automate (the Excel connector in Power Automate requires tables).
  • XLOOKUP syntax: =XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
    • if_not_found: "Not in contract list" instead of #N/A
    • match_mode -1/1: next smaller/larger. Useful for threshold bands (e.g., CPI β†’ rating).
    • search_mode -1: search from the bottom, returning the latest record for a key
    • Returning multiple columns: =XLOOKUP([@ProgramID], Programs[ProgramID], Programs[[ProgramName]:[Portfolio]])
  • Two-way lookup: nest XLOOKUP in XLOOKUP, or use INDEX/XMATCH.
  • Data hygiene: TRIM, CLEAN, VALUE, TEXT, DATEVALUE. Watch out for numbers stored as text.
  • Fiscal year formula: =YEAR([@Date]) + (MONTH([@Date])>=10) gives the federal FY.

πŸ›  Hands-on exercise: Enrich the Milestone Tracker

⬇ Practice data for this module
D1 programsProgram dimension (12 rows)CSVXLSX
D2 milestonesMilestones (~150 rows)CSVXLSX
D4 contractsContracts (30 rows)CSVXLSX

Data: milestones (MilestoneID, ProgramID, MilestoneName, BaselineDate, ForecastDate, ActualDate, Owner) and programs (ProgramID, ProgramName, Portfolio, ProgramManager).

  1. Convert both to Tables named Milestones and Programs.
  2. Add calculated columns:
    • ProgramName and Portfolio via one XLOOKUP returning 2 columns (use a spill-friendly layout or two XLOOKUPs inside the table)
    • SlipDays = [@ForecastDate] - [@BaselineDate]
    • FY_Baseline using the fiscal-year formula
    • Status = "Complete" if ActualDate is filled, "Late" if ForecastDate < TODAY() and not complete, "At Risk" if SlipDays > 30, otherwise "On Track"
  3. Build a lookup cell where you type a ProgramID and get its most recent completed milestone (XLOOKUP with search_mode -1 on a sorted table, or use MAXIFS + XLOOKUP).
  4. Build a CPI rating band table (0, 0.90, 0.95, 1.05) β†’ (Red, Amber, Green, Blue) and look it up with match_mode -1.

πŸ“¦ Mini-project: Contract Lookup Card

Build a one-screen "Contract Card" sheet. Pick a ContractNumber from a data validation dropdown, and XLOOKUP fills in Vendor, ContractType, PoP dates, CeilingValue, ObligatedToDate, % obligated, and days remaining in PoP, with conditional formatting when PoP ends within 90 days. Data: contracts.

🧠 Self-check quiz

Answer in your own words, then check. Grade yourself honestly; your score is saved.

Q1.1.1
What does search_mode = -1 do in XLOOKUP, and when is it useful for program data?
Write at least a few words to unlock.
Q1.1.2
Why are Excel Tables important for later Power Automate work?
Write at least a few words to unlock.
Q1.1.3
A lookup returns #N/A even though the ID visibly exists. What are two likely causes?
Write at least a few words to unlock.
Q1.1.4
Write the formula for the federal fiscal year of a date in A2.
Write at least a few words to unlock.