Top
Best
New

Posted by 1659447091 12/20/2025

Ireland’s Diarmuid Early wins world Microsoft Excel title(www.bbc.com)
310 points | 124 comments
mndgs 12/20/2025|
Watch this, where he goes through the questions and explains how he did it: https://www.youtube.com/watch?v=1Mx_xhiIRpw

I'm pretty good with Excel, my main tool at the job for over 20 years. I understand how he did it, but it's just really humbling...

I still think quality of what you do with Excel (idea) is more important than how you do it (skill).

INTPenis 12/21/2025|
I'll never forget a past job where they used a lot of Excel in ways I did not know was possible.

First of all they had an invoicing system in Excel, that pulled in data using VBS, into Excel templates, and at the press of a button in the UI generated invoices from these templates.

And the craziest part was their server inventory system made in Excel, where they had drawn all the rack cabinets, you could click on each, to drill down and show all the servers in that rack. Also a ton of VBS, you could even get monitoring status of each rack.

Excel has been OP for a long time, long before its Python capabilities.

KellyCriterion 12/21/2025|||
nowadays, you can even use =WEBSERVICE(...) to access some web apis, if I understand correctly.
not_kurt_godel 12/21/2025|||
Did either of those systems have unit or integration tests?
NetMageSCW 12/21/2025||
Do any of the competitive solutions?
mmooss 12/21/2025||
My best Excel trick, which reveals how little I know, and yet Early [0] doesn't use it (or maybe doesn't need it, but that's hard to believe):

1. You can drag down the bottom of the formula bar/field and make it multi-line

2. You can insert arbitrary[*] newlines in an Excel formula

Combining those, you can turn the absurd default format of single-line-of-code functions into something readable and manageable. Here's a simple one from a spreadsheet I have open:

  =INDEX(
  $C$17:$S$24,
  MATCH(A6,$A$17:$A$24,0),
  MATCH(C6,$C$15:$S$15,0)
  )
And just think of highly nested functions. Once you know it, writing single-line functions of any complexity is absurd, as absurd as writing 'real' code that way.

[0] Early shows how it was done: https://news.ycombinator.com/item?id=46340638

[*] I think you can do it anywhere but I haven't tested anything crazy; mostly I just use them between expressions.

Terr_ 12/21/2025||
> You can drag down the bottom of the formula bar/field and make it multi-line

For folks on LibreOffice (currently v24.2):

* There's an downward-pointing "expand" triangle to the far-right of the formula input line.

* That button toggles the formula input area between 1-line vs 6-lines with scrolling.

* Newlines can inserted by shift-enter.

* If there are additional formula lines lines outside the viewable line(s), then a dashed line on the relevant border will be shown. (Plus the regular scrollbar, in expanded mode.)

mmooss 12/21/2025|||
Terr_'s comment reminds me and I'm too late to edit the parent: In Excel's formula bar/field, insert newlines by pressing Alt+Enter.
simonh 12/21/2025|||
It could be that in a competitive context fussing with formatting would cost precious seconds. Great general tip for us mortals though.
mmooss 12/21/2025||
Imagine a coding competition: Would you forgo newlines and write everything on one long line? Would that save time?

Perfect style guide format does consume time, but pressing Alt+Enter a few times would seem to reduce errors at essentially no cost.

simonh 12/22/2025||
I think they would also have to resize the field every time using the mouse.
mmooss 12/22/2025||
The setting sticks: If you resize it, it stays in the new size when you move to other cells.
stevesimmons 12/21/2025|||
You can also use the =LET(...) formula to define named variables:

    =LET(
        filterCriteria, "Fred",
        filteredRange, FILTER(A2:D8,A2:A8=filterCriteria),
        IF(ISBLANK(filteredRange),"-", filteredRange)
    )
There must be an odd number 2D + 1 of arguments. The first 2D are D name-expression pairs and the final one is the expression whose value is returned.

The end result - as you see - is quite readable.

303uru 12/21/2025|||
Oh yes indeed. For example, here's something I was just working on:

=LET(

  h, ROWS(A2#),

  names, A2#,

  vals, K2:INDEX(K:K, h+1),

  denoms, J2:INDEX(J:J, h+1),

  k, 20,

  groupAvg, SUMPRODUCT(vals, denoms) / SUM(denoms),

  adj, (denoms/(denoms + k))*vals + (k/(denoms + 
k))groupAvg,

  inc, (names <> "") \* ISNUMBER(vals),

  namesF, FILTER(names, inc),

  valsF, FILTER(vals, inc),

  denomsF, FILTER(denoms, inc),

  adjF, FILTER(adj, inc),

  r, ROWS(namesF),

  nShow, MIN(10, r),

  sorted, SORTBY(HSTACK(namesF, valsF, denomsF), adjF, -1),

  TAKE(sorted, nShow)
)
mmooss 12/21/2025||
fyi: if you indent a couple of spaces, you get a <code> block.
Dumblydorr 12/21/2025||
No need to drag the bottom of the cell to expand function down. Just double click the bottom of the function cell, it’ll expand down automatically.
orev 12/21/2025||
They’re referring to the formula bar at the top of the screen (under the ribbon), not the cell itself (which are located within the grid).
two-sandwich 12/20/2025||
It's interesting that the challenges are not business or accounting centred, as is the expectation when using Excel. If this is now general problem solving, are we watching language-specific competitive programming through the lens of a more broadly accessible platform like MS Excel?

I enjoy the idea, and love watching it grow.

medell 12/20/2025||
It used to be financial modeling but they realized they’d get more attention with the esports audience this way.

It’s gone quite far now - one of the many challenges was a mock terrain map where you’d calculate distances to hike while considering the weight of your pack. Even the way they walk through the tunnel is done for show.

paulcole 12/21/2025||
> Even the way they walk through the tunnel is done for show.

Huh, interesting. I thought I’d been working remote so long that offices had done this to make people more excited for work.

stackghost 12/20/2025||
Excel is a general purpose computing environment and has been for quite some time.

When I was in the air force we had a complete aircraft maintenance planning and performance management system entirely in Excel. It can connect to remote workbooks on a shared drive/SharePoint too, so the higher headquarters would tie into our dashboard for their own operational readiness tracking.

It was a total shit show of undocumented pseudo APIs with zero change management or version control but it worked somehow.

eastbound 12/21/2025|||
Glad to see not only our financial infrastructure relies on wealth management agents’ skills at writing formulas, but our army also relies on our general commanders’ skills in Excel.

Funnily Excel is the tool of adults born in 1980; The next generation will only know Canva, so I guess we’ll have great infographics about battle fronts.

walthamstow 12/21/2025||
Spreadsheets aren't going anywhere, Google Sheets is widely used by 20-something people at my work.
firefax 12/21/2025|||
Was it truly "in excel" or was it also using powershell?
stackghost 12/21/2025||
It was entirely in Excel, no powershell.
ewoodrich 12/21/2025||
Any VBA? I help out with an extremely complex 15+ yr old Excel workbook designed for managing school debate tournaments that's still in active use in the PNW debate world but the complexity is 90% from VBA.

It does inject Excel formulas when creating worksheets but also heavily uses UI controls/dialogs made with the VB6 era WYSIWYG designer built into Excel, plus some COM extensions for SMTP emails, with spreadsheets used both as a pseudo database mostly hidden from the user and as the output for rendering data but the actual logic is mostly VBA.

Excel's VBA IDE feels like a time capsule from 2002, and not in a good way (with some of the most comically unhelpful error messages I've ever seen and extremely aggressive syntax checking that constantly interrupts typing in code). Microsoft increasingly makes it very clear they don't want people using VBA but it still works fine in the latest PC versions from O365 after turning off a few security features/approving some prompts.

stackghost 12/21/2025||
I wrote some VBA to try to reduce the size of the workbooks (dozens of MB) but originally it was just massive nested lookups and conditionals written by the people who had been there before me.

The problem with VBA or PS is that you'll be posted out in 2-3 years and your successor might not even know what VBA is or how to access it much less how to write it.

I ended up writing a lot of documentation based on my XLSX archaeology.

ewoodrich 12/21/2025||
Nice, that makes sense. I'm always curious when I hear about other giant Excel monoliths still in use if they're truly a huge tangled web of formulas, or more like a VB6 program stapled to some worksheets that can be distributed as a single .xlsm file like ours.

You're definitely right that 99% of Excel users have no idea that an entire IDE is lurking in the background with Alt-F11 and wouldn't even know where to begin to do a simple fix/tweak. Whereas even a complex formula can at least be mentally parsed as a math equation with some strange ALLCAPS() names scattered throughout, or copy/pasted into Google/an LLM to get started, so much more discoverable than VBA.

Not to mention that the VBA IDE is a horrible dev experience in pretty much every way and frozen in time while regular Excel is actively maintained.

I've explored pulling out all the critical business logic currently in VBA and having Claude Code rewrite to VB.NET that can be called from Excel to gradually phase out VBA for maintainability. But unfortunately despite VBA essentially driving everything, it's tightly coupled to the Excel spreadsheet data model. So I'd have to use a .NET library to emulate the Excel worksheet functions, or pretty much do a full rewrite to use modern .NET methods for the in-memory data manipulation stuff.

Without good visibility into the Excel side of the VBA, Claude Code/Gemini CLI were just flailing so I abandoned that idea for now until I can find a solid conversion path.

buybackoff 12/20/2025||
I could do half-screen nested array formulas when Excel was before the ribbon (and screen resolutions were smaller), out of necessity and because I could. It was in quite demanding uni home calculations and then mostly when working as intern in IB. But then having a life is also important...

The only thing I still enjoy is that any data smaller than 1M rows is sliced and diced almost without thinking. I am sometimes really grateful that MS did not break the shortcuts, while almost breaking the product overall. The muscle memory works perfectly.

yoan9224 12/21/2025||
I watched the walkthrough video of the solutions and it's genuinely impressive. These aren't just "use VLOOKUP fast" challenges - they're algorithmic puzzles where Excel is the constraint.

What struck me is how similar it is to code golf or competitive programming, just with a different medium. The winner uses array formulas, INDEX/MATCH combinations, and nested functions in ways that most Excel power users would never think of.

The real insight though: Excel is probably the most widely-deployed functional programming environment in the world. Most "business users" are doing functional composition daily without realizing it.

Makes me wonder if we should be teaching programming concepts through Excel first, then moving to traditional languages. The immediate visual feedback is unmatched.

kranke155 12/21/2025|
I think you should. But my own experience when learning programming was there were few ways of learning programming that seemed properly tested or pipelined to actually teach programming. You had to hodgepodge your own materials if you were like me and doing self learning, from half a dozen books and online courses and workshops. I felt like programming needs a Montessori - someone who deeply understands human learning and makes it easy for multiple personalities to learn at their own pace. IMO.
3eb7988a1663 12/21/2025||
Can anyone find the actual challenge files? Not that I would be competitive at all, but the description of last year's World of Warcraft themed one is interesting, and I want to walk through it.
abra0 12/21/2025|
Here: https://excel-esports.com/product/world-of-warcraft-mewc-202...

You're supposed to do a $0 checkout for some reason and then download them

3eb7988a1663 12/21/2025||
What a garbage way to gate visibility to the sport. You are already looking at a niche audience who would be interested in the idea, and you hope to collect some emails for marketing as well?
3eb7988a1663 12/20/2025||
There is also the mocumentary flick of the Excel eTournament scene with "Makro"

https://www.youtube.com/watch?v=xubbVvKbUfY

Apocryphon 12/20/2025||
Don’t forget part two

https://youtu.be/ICp2-EUKQAI

Yossarrian22 12/21/2025|||
I’ll always think of my fellow excel wizards as sheet heads thanks to this video
abrenuntio 12/21/2025|||
Because of Krazam it took me a minute or two to accept that this now exists for real
HPsquared 12/20/2025|||
Life imitates art.
beasthacker 12/20/2025||
This is too good.
machros 12/20/2025||
Not unlikely it inspired the whole pro excel scene to exist.
Sniffnoy 12/21/2025||
I'm really wondering whether this is true, but haven't found anything definitive on the matter...
donsupreme 12/20/2025||
Should be 'Michael Jordan of spreadsheets'
littlestymaar 12/20/2025||
Did he retired spreadsheets to become a professional baseball player?
buybackoff 12/20/2025||
The Spiderman would be better. If anyone used formulas' precedents/dependents that would be instantly visual.
anthk 12/21/2025||
People praise MS Word and Excel there, shitting down on Markdown and proper languages.

The thing is, you have RTF covering a 99% of actual office cases. For the rest, a DTP would be far better, or Texmacs which is far superior for academics. The old WordPad with tables (and Ted for Unix once it's properly setup) would enough to do most boring documentation.

On Excel, just look what happened with Genomics. Also, overabusing Access for management (or worse, to handle Covid cases in a shitty XLS table) it's a nightmare.

For tons of cases TCL/Tk + a Sqlite3 backend would perfectly work and it would be accesible to any platform, from GNU/Linux to MacOS, BSD, Windows. You can stick an HTML5 frontend with ease without even needing JS to access the data (plain HTML forms would work really well).

Ah, yes, graphs, charts. Gnuplot would help you in that case, or a fast Tk package. Reports? TkHTML with some easy CSS. It would cost far more initially? The potential risks on compatibility would be nil in a future. And, as a plus, yo don't have to worry about Macro viruses and whatever.

NetMageSCW 12/21/2025||
Now only the fifty people who know TCL/Tk and SQL can maintain your system. Not an improvement.
anthk 12/22/2025||
SQlite it's much easier than Access at the backend. Also, you have tons of experts today everywhere. If you can't properly normalize a database under Access, your company will collapse sooner or later. You can't depend on unstable solutions forever.

On TCL/Tk, it was the quickest and multiplatform example to do a RAD application (or prototyping). You have sqlite3 bindings everywhere.

doikor 12/21/2025||
And now you need to install and learn 10 different programs instead of one. Excel is used a lot because you can do so much with it which is also one of its downsides when people build things with it they really shouldn’t.
anthk 12/21/2025||
RTF works with anything. On XLS and the rest. it should be a common ground like RTF for word processing. And I don't mean CSV/TSV, but a truly open core standard. No, nothing like HTML5 where it grew up organically like a disease, with bloat on top.

Also, input and output shouldn't be allowed to be mixed by design. Data in one sheet, and formulae output in another. And no automatic parsing should be done, ever. Remember Excel with Genomics, or the issues mangling dates. Or worse, locales, which are another issue under Unix.

jasonthorsness 12/20/2025|
The descriptions of the problems make it sound a little like algorithmic puzzles but your only tool is Excel instead of some programming language… Excel is pretty amazing in what you can do; I’ve regretted having to use Google Sheets for the last few years.
shagie 12/20/2025||
> but your only tool is Excel instead of some programming language

There is little difference between (if (> a b) c d) and =IF((A1 > B1), C1, D1)

Excel is the most widely installed functional programming language IDE.

OoooooooO 12/20/2025|||
Change the language of your Windows system to anything but English and then open your Excel file with formulas again.
hidd 12/21/2025|||
When I worked at a university's tech support, this was a recurring problem. People made grade lists in Excel, then imported them into the digital learning environment, which occasionally was set to a different language. This meant that the decimal point would be disregarded, and e.g. an 8.5/10 would be imported as an 85 (which got clamped to 10). Maximum grades for everyone, confused students and teachers :')
tstenner 12/21/2025||
Even better: grades range from 1.0 (best) to 5.0 (failed) with partial grades (.3, .7) in-between. Caused a few problems when a 1.3 got interpreted as the first May and converted to the number of days between the epoch and the first ofay of that year.
NooneAtAll3 12/20/2025||||
I don't get your point

programming languages aren't allowed to be in non-english somehow?

mmooss 12/20/2025||||
ok, what happens? (I'm not messing around on my system right now ...)
shrx 12/20/2025||
Localization of formulas. On my system, all parameter-separating commas have to be replaced with semicolons.
mmooss 12/21/2025||
That is shocking. Excel is used by every international organization, probably. How do they manage the localization?
phinnaeus 12/21/2025||
Maybe the files store the formulas in an intermediate format that can be localized by the client
shagie 12/21/2025|||
That sounds correct. This issue would be when the decimal separator matches the argument separator. In that situation =IF(A1 > 42.1, B1, C1) would be equivalent to =IF(A1 > 42,1; B1; C1)

The possibility of incorrect parsing of equation with a variadic function that contains a decimal number in the equation.

However, this is a localization as even the functions change names.

https://www.reddit.com/r/excel/comments/1flsvyu/separator_co...

    It’s just a locale setting as to which is applied. If you use English (US or UK) then your argument separator will be a comma. If you use other languages, then a semi colon will apply. You’ll find most guidance online referring to English language functions and comma separators, but ultimately it doesn’t really matter. If you ship a spreadsheet to me that you wrote in German functions and syntax that contains:

    =SVERWEIS(X2;A:C;3;0)
    I’ll open that and find

    =VLOOKUP(X2,A:C,3,0)
This suggests client localization that is rendered differently with different language settings.
mmooss 12/21/2025|||
The GGP says,

> On my system, all parameter-separating commas have to be replaced with semicolons.

That implies the user has to manually change the syntax.

ygra 12/21/2025||
The formulae are indeed stored in the same format, regardless of language. For rendering and parsing in the UI they use translated function names and the field separator (commma in English, but semicolon in many other languages because decimal numbers use a comma there).

It does irk me a bit (though not as much as the translated VBA back in the day). But that's probably because I know English, I often look for solutions to my problems in English, not in my native language, and then would have to mentally translate that back. But that's perhaps a burden for programmers more than for typical users.

A few thoughts:

• it's been that way for decades, at this point. So changing it would annoy a lot of users

• the problem with comma and semicolon would remain unless you want entering numbers normally and within a formula to be different. I'm not sure that's good in a product built around numbers (and often numbers that should be written and formatted like any other number in that country).

• making it configurable might work, but that then requires more testing, although sometimes it's not clear how much testing Microsoft is still doing, so that might not be much of a point. But adding options also has UX limits and not just in the length of the settings screen.

demetrius 12/21/2025||
LibreOffice Calc has an option to force English function names regardless of the current localization. I guess Excel should have something similar, too¹.

Fun fact: in European and Brazilian Portuguese, the same function names can refer to different things. European SUBSTITUIR² is REPLACE (Brazilian MUDAR), Brazilian SUBSTITUIR³ is SUBSTITUTE (European SUBST).

¹ I've found this solution https://superuser.com/questions/1908516/how-to-change-the-la... but I haven't tested it since I don't have MS Excel at hand to check

² https://support.microsoft.com/pt-pt/office/fun%C3%A7%C3%A3o-...

³ https://support.microsoft.com/pt-br/office/substituir-fun%C3...

KellyCriterion 12/21/2025|||
Classic one++ (-:
lmz 12/21/2025|||
It even has LAMBDA now: https://support.microsoft.com/en-us/office/lambda-function-b...
Bridged7756 12/20/2025||
Yup. Not too long ago they added Python scripting. Definitely beats the weird cloud scripting you have to do with Google Sheets.
HPsquared 12/20/2025||
Excel Python runs in the cloud. It is nicely integrated though.
NetMageSCW 12/21/2025||
I wish they had gone for embedding .Net locally instead.
More comments...