Your business, as a function.
Excel LAMBDA programming that captures your rules in documented, reusable functions, so your spreadsheet becomes the custom software your organization deserves.
Where do your business rules live right now?
Scattered across dozens of formulas in dozens of places. Chained together so tightly only an AI assistant can figure it out. Locked in the head of the one person who knows why the numbers come out the way they do.
Change a rate, and you’re hunting for every place it hides. Copy the workbook for a new year, and the rules start to drift.
The bottom line: Your rules are the most valuable thing in your spreadsheet. They’re also the least protected.
Two bookends. One library.
Every spreadsheet I build answers three questions. Two tools answer the questions on the ends, and they hold your data between them like bookends on a shelf.
Query
Power Query
Imports, cleans, and moves your data, putting it exactly where it needs to be.
Your Excel database
Structured tables holding every record, every list, and every rule. The books on the shelf.
LAMBDA
Turns that data into decisions, reports, and exports, by your rules, every time.
Your logic, respected and protected.
Every organization has its own way of doing things. Its own pricing. Its own exceptions. Its own judgment calls. Its own data flow. That’s the first thing I use LAMBDA for: capturing that logic in one place, so it’s applied the same way every time.
Written down, inside the formula
Every long LAMBDA carries plain-English notes in the formula itself. You can confirm the logic matches your business. Next year, whoever edits it can see exactly what it does and why.
Every decision, in one place
Dozens of variables and long decision trees fit in a single function. Every rule, exception, and pathway is defined once, not scattered across a workbook.
A black box you can open
To most users it’s a black box: inputs go in, the right answer comes out, and nothing gets in the way. But it’s never locked. Anyone can open it and follow every step.
A simplified excerpt from a curtain pricing tool. The note at the top states the rule in plain English. The client can confirm it. Whoever maintains it next year can follow it.
One formula. The whole report.
The second thing I use LAMBDA for is reporting. Not a pivot table. Not a template someone fills in by hand. One formula that builds the entire report, then rebuilds it every time the data changes.
| Prior Actual |
Current Expected |
Current Budget |
Next Budget |
Notes | |
| North Region | |||||
| Income | |||||
| Primary Revenue | |||||
| 4010Sales | 1,240,000 | 1,315,000 | 1,300,000 | 1,380,000 | |
| 4020Subscriptions | 186,000 | 214,000 | 205,000 | 236,000 | Price increase in March |
| Total Primary Revenue | 1,426,000 | 1,529,000 | 1,505,000 | 1,616,000 | |
| Other Income | |||||
| 4210Advertising | 42,500 | 47,800 | 45,000 | 49,000 | |
| 4500Interest Income | 3,900 | 5,200 | 4,500 | 4,800 | |
| Total Other Income | 46,400 | 53,000 | 49,500 | 53,800 | |
| Total Income | 1,472,400 | 1,582,000 | 1,554,500 | 1,669,800 | |
| Expense | |||||
| Contracted Services | |||||
| 5510Landscape Contract | 66,000 | 66,000 | 66,000 | 61,000 | New vendor, 3-year contract |
| 5530Security Contract | 58,400 | 64,400 | 66,000 | 66,000 | |
| Total Contracted Services | 124,400 | 130,400 | 132,000 | 127,000 | |
| Utilities | |||||
| 5205Electricity | 284,000 | 278,000 | 240,000 | 289,000 | Rate up 4% in July |
| 5225Water and Sewer | 168,000 | 171,000 | 165,000 | 176,000 | |
| Total Utilities | 452,000 | 449,000 | 405,000 | 465,000 | |
| Total Expense | 576,400 | 579,400 | 537,000 | 592,000 | |
| Surplus / (Deficit) | 896,000 | 1,002,600 | 1,017,500 | 1,077,800 | |
| South Region … | |||||
Any number of regions. Recursive LAMBDAs loop through every region, category, and sub-category you have. Add one next year, and the report grows to fit.
Line-by-line control. A total for every category, totals for income and expense, the surplus line where it belongs, and blank rows that make it easy to read.
Notes where they matter. An explanation right beside the line it explains. PIVOTBY and GROUPBY can’t do that.
New reports, fast. Point the same function at a new dataset with the same structure, or take a different slice of this one. No new logic to write.
Built to change without breaking.
Modular
Large LAMBDAs call smaller ones: a loop for subcategories, one step of a calculation, a piece shared by several reports, special pricing for a single item. Rewrite how one piece calculates its answer, and as long as it returns the same shape, everything that calls it keeps working.
├── fxTotalWidths
│ ├── fxRequiredWidth
│ └── fxUsableWidth
├── fxLaborCost_Curtains
│ └── fxTrimCost_Curtains
├── fxPoleCost
└── fxRingCost
Off the grid
Inputs are parameters. A LAMBDA doesn’t care where its data lives or where its answer lands.
Same function. Same answer. Wherever your data lives.
Mark Proctor calls it taking Excel “off the grid.” Christopher Fennell calls it going “beyond the CELL.” Either way, the worksheet stops being the point. The logic and the data are.
LAMBDA at work.
A holiday lighting company sees every booked job and man-hour by day or week. Two LAMBDAs build and stack the whole calendar. Read how it works
A main LAMBDA and its smaller functions value a portfolio of more than 1,000 properties, passing encoded results between sheets. Read how it works
One LAMBDA forecasts every editable cell in a property management budget, and recursive LAMBDAs build every report. Read the case study
Fourteen named LAMBDAs price custom curtains: fabric yardage, labor, trim, installation, and hardware, each in its own documented function.
What it returns for you.
LAMBDA isn’t a separate service. It’s how I build every service. Here’s what that gives you.
Your spreadsheet, as your software
Your business logic, captured in documented functions you own
Reports that build themselves from a single formula
A workbook that grows with you, without breaking
VBA user-defined functions replaced with LAMBDA, where possible
Training and mentoring, if your team wants to maintain it themselves
Retrofit or rebuild?
I’ll add LAMBDA to an existing workbook when that’s what the job requires. But I almost always recommend a rebuild. A rebuild can keep the look and feel your team already knows, which helps adoption, while putting a solid structure underneath.
Still curious?
What is Excel LAMBDA programming?
LAMBDA lets you write your own Excel functions, with names, inputs, and logic you define. Excel LAMBDA programming means building those functions around your business, so they work like native functions, right alongside SUM and XLOOKUP.
Can LAMBDA replace VBA?
For custom worksheet functions, usually yes, which often means your file can be a regular .xlsx instead of a macro-enabled one. VBA still has a place for automating actions, like importing files or sending email. I use each for what it does best.
Which versions of Excel support LAMBDA?
Excel for Microsoft 365 (Windows and Mac) and Excel 2024 (Windows and Mac). Excel 2019 and earlier can't run them. And with all the innovation Microsoft is bringing to Excel, Microsoft 365 is the only version I recommend.
When should I use Power Query instead?
Use Power Query to bring data in and shape it. Use LAMBDA to calculate and report on it. Most of my workbooks use both: one bookend each.
Do you offer LAMBDA training?
Yes. If your team wants to maintain or extend its own LAMBDAs, I'm happy to train or mentor them.
It's time to turn your spreadsheet into your software))
Tell me how your business works. I’ll write it down, in a function, and build the spreadsheet around it.

