← All quirks & gotchas

Excel's LAMBDA helpers return errors when opened in LibreOffice

Modern Excel workbooks lean on LAMBDA and its array helpers (MAP, BYROW, BYCOL, SCAN, REDUCE, MAKEARRAY, ARRAYTOTEXT). Open one of those workbooks in LibreOffice Calc and the formulas do not just return different numbers, they stop computing. An inline call such as =LAMBDA(x,x*2)(5) returns #VALUE!, and every helper function returns #NAME? because the name is not recognised at all.

The surprise

LibreOffice parses the word LAMBDA but will not evaluate a lambda you invoke in place, so =LAMBDA(x,x*2)(5) becomes #VALUE! rather than 10. The helper functions that consume a lambda (MAP, BYROW, BYCOL, SCAN, REDUCE, MAKEARRAY) are not implemented, so they resolve to #NAME? — the same error you would get from a misspelled function.

Executed results

Ranges below use A1:A3 = 1, 2, 3 and A1:B2 = 1, 2, 3, 4.

FormulaExcel (documented)Google SheetsLibreOffice Calc 25.8.7.3 (executed)
=LAMBDA(x,x*2)(5)10Not yet executed#VALUE!
=LAMBDA(x,y,x+y)(3,4)7Not yet executed#VALUE!
=MAP(A1:A3,LAMBDA(x,x*2))2, 4, 6Not yet executed#NAME?
=BYROW(A1:B2,LAMBDA(r,SUM(r)))3, 7Not yet executed#NAME?
=BYCOL(A1:B2,LAMBDA(c,SUM(c)))4, 6Not yet executed#NAME?
=SCAN(0,A1:A3,LAMBDA(a,b,a+b))1, 3, 6Not yet executed#NAME?
=REDUCE(0,A1:A3,LAMBDA(a,b,a+b))6Not yet executed#NAME?
=MAKEARRAY(2,2,LAMBDA(r,c,r*c))1, 2 / 2, 4Not yet executed#NAME?
=ARRAYTOTEXT({1,2,3})1, 2, 3Not yet executed#NAME?

The Excel column holds the documented-expected values recorded in our test corpus; we did not run Excel. The LibreOffice column is what our harness computed by recalculating each workbook in LibreOffice Calc 25.8.7.3. We have not executed these in Google Sheets, so that column stays honest.

Consistent across LibreOffice versions

We ran the same cases through four builds — 24.2.0.3, 24.8.7.2, 25.2.0.3 and 25.8.7.3. The helper functions returned #NAME? in every build; none of these releases implements MAP, BYROW, BYCOL, SCAN, REDUCE or MAKEARRAY. The inline lambda call returned #VALUE! in every build too. One small wrinkle: =LET(f,LAMBDA(x,x^2),f(4)) returned #NAME? in 24.2.0.3 but #VALUE! from 24.8.7.2 onward — still broken, just a different error label. There is no version in this range where the lambda helpers start working.

Why it happens

Two different failures hide behind two different errors. LAMBDA is a recognised name in Calc — a formula that supplies the wrong argument count, =LAMBDA(x,y,x+y)(3), even returns the same #VALUE! Excel documents — but Calc does not evaluate a lambda that you define and immediately invoke with a trailing (...), so the useful case collapses to #VALUE!. The helper functions are a harder wall: they simply are not part of Calc's function set, so the parser treats MAP, SCAN and the rest as unknown names and returns #NAME?.

How to migrate safely

The durable fix is to rewrite the array logic as ordinary formulas that both engines evaluate:

=MAP(A1:A3,LAMBDA(x,x*2)) becomes a helper column of =A1*2 filled down.

=BYROW(A1:B2,LAMBDA(r,SUM(r))) becomes =SUM(A1:B1) per row.

=REDUCE(0,A1:A3,LAMBDA(a,b,a+b)) becomes =SUM(A1:A3).

=SCAN(0,A1:A3,LAMBDA(a,b,a+b)) becomes a running total: =A1 in the first cell, then =B1+A2 filled down.

=ARRAYTOTEXT(A1:A3) becomes =TEXTJOIN(", ",TRUE,A1:A3), which both engines support.

Helper columns recalculate identically in Excel and LibreOffice and survive round-trips through .xlsx. Reserve LAMBDA for workbooks that will only ever open in modern Excel or Google Sheets.

Honest limits

The Excel values are Microsoft's documented behaviour, not something we executed in Excel. Google Sheets does implement LAMBDA and these helpers, but we have not run them through our harness, so we make no claim about their exact output here.

Check before you migrate