- Home
- >
- Software Development
- >
- The future of Excel as a programming language
The future of Excel as a programming language.
It may be the oldest piece of software still in widespread use. 34 years ago, just three years after Apple introduced its first Macs, Microsoft released the first version of its familiar Excel spreadsheet app, initially a rough copy of Dan Bricklin’s VisiCalc.
Fast forward to the future, and the Irish Times noted in 2017 that Microsoft CEO Satya Nadella was calling Excel Microsoft’s most important consumer product, pointing out that it had over 750 million users.
So it feels almost historic when one of the world’s largest corporations augments a crucial component of its Office software suite — yet sure enough, Excel has been upgraded with a major new feature.
Microsoft’s researchers believe they’ve now finally transformed Excel into a full-fledged programming language, thanks to the introduction of a new feature called LAMBDA. “With LAMBDA, Excel has become Turing-complete. You can now, in principle, write any computation in the Excel formula language,” a Microsoft blog proclaimed.
“Being Turing complete is the litmus test of a full-fledged programming language,” explained a new article in Visual Studio magazine. And it adds that “early community response has been encouraging,” noting that Microsoft researchers are enthusiastically envisioning skilled Excel users creating functions “that appear seamlessly part of Excel to their colleagues, who simply call them.”
Hey, Office Insiders— LAMBDA for Excel is now available!
✔ Define custom functions in Excel’s formula language.
✔ Transform custom functions and wrap them up in a LAMBDA function.
— Microsoft Excel (@msexcel) February 3, 2021
Here’s a look at these changes and what they portend for the future of Excel as a programming language.
Programming with Excel
Excel users do much of their work using formulas — where the input into a cell starts with an equals sign followed by some kind of calculation (“=A2 + B2”). Microsoft’s blog calls formulas the world’s most widely used programming language — yet it had always been limited to a pre-defined universe of options.
To roll their own custom functions, users had to use Microsoft’s other macro-based programming language, Visual Basic for Applications. (Or, starting in 2018, JavaScript — and of course, Microsoft’s JavaScript-superset TypeScript.)
In a video appearance at POPL 2021, long-time Microsoft researcher Simon Peyton Jones noted that Excel’s end users were implementing functions using JavaScript, reiterated in a Microsoft Research blog post by a senior principal researcher and a senior principal research manager. “Excel formulas are written by more users than all the C, C++, C#, Java, and Python programmers combined.”
But now all those users can write actual programs without leaving the world of Excel formulas. More specifically, formulas written in Excel can now be “wrapped” inside a named LAMBDA function — and it can then be called from anywhere else in the spreadsheet. And yes, it supports recursive programming, so you can even call your named function from within your named function.
The names are supplied in the “Name Manager” choice tucked away in Excel’s Formulas toolbar. And just like git, users can enter a comment when creating their function.
Microsoft Senior Researcher Jack Williams described it at POPL 2021, “In Excel, it is now possible to build real, full-fledged programming experiences… We can now start to build things that look like real programs.”
The blog post provides an example: a cell whose value includes the name of a function.
The value ultimately displayed in that cell is the output of the specified function — and that function’s argument is…the address of another cell.
Alternately, a function can also accept an array (holding multiple values) as its argument — since Excel began adding the ability to define arrays in Excel in September of 2018.
A function can also send back an array as its return value, with its values “spilling out” into multiple cells. In his video presentation at POPL, Williams writes a function that instantly generates a calendar.)
And Excel’s blog post promises more array manipulation functions in the future. Microsoft’s Research blog even promises the company is working on “efficient implementations of array-processing combinators, such as MAP and REDUCE” to be used on the output of named functions.
And Excel’s program manager Chris Gross hinted about even higher hopes for the future. “I would love to see us add much-needed tools for debugging and authoring formulas,” he wrote in a comment. “Akin to what you get with great IDEs.”
A Dream From 2004
For Simon Peyton Jones, this represents the fulfillment of a long-standing dream. At POPL 2021, the long-time Microsoft researcher and functional programming advocate told the story of visiting Microsoft’s Excel team in 2004. “I learned that Excel is like a supertanker. It has a very high value.
It has a very large mass. And it’s operated by a surprisingly small and heavily-overworked crew. So it’s not easy to change course!”
But 10 years later he discovered that one of the mid-level program managers, “those friendly, receptive folk that I mentioned, had since been promoted to be the great boss of Excel… Suddenly we begin to get senior, executive-level buy-in for some of these ideas.” And, even more importantly, the engineering support to make it happen.

Excel as a programming language
Microsoft’s Research blog calls this new LAMBDA feature “a qualitative shift, not just an incremental change.” Named Lambda functions to offer programmers the high-quality language-like attributes of “composability” and “re-use,” respecting one of the long-standing principles of good coding, namely not repeating work.
A named function can become part of another named function elsewhere in the spreadsheet. But that’s just the beginning of what could be even more elaborate constructions, according to the Research blog post.
It ultimately envisions “sheet-defined functions” where several different functions, each defined in different cells, are collectively used to define a larger function.
And interestingly, the concept of sheet-defined functions was first described in a 2003 research paper co-authored by Jones. “Our case study is unusual in highlighting how programming language insights can be applied to a product not normally considered as a programming language,” Jones had written.
Also speaking at POPL 2021, Advait Sarkar, a senior researcher from Microsoft Research Cambridge, envisioned additional cells used to comment on the code and add formatting flourishes. “We view programming language design as a research discipline whose goal is to create more usable human-computer interfaces,” Sarkar says at one point.
Last year, Sarkar co-authored a paper imagining a new Excel concept called Gridlets — in which a selection of cells could be copy-and-pasted, allowing the reuse of a group of formulas, ultimately offering a kind of object-oriented counterpart to sheet-defined functions.
Gridlets could be instantiated repeatedly, each with its own unique parameters or “properties,” while changes in the original parent gridlet will propagate to its children.
It’s the work of the “Calc Intelligence” team at Microsoft Research Cambridge, which has as its stated goal enhancing Excel as a programming language. Right now it’s only available to members of the “Office Insider” program’s beta channel.
Although even within that program, eager users complained that they weren’t rolling it out fast enough, remembers Excel’s head of product Brian Jones in his POPL 2021 appearance.
Williams said the feature had generated a lot of interest. “Even within the first few weeks of LAMBDAs being released, there were videos with hundreds of thousands of views on YouTube.
There’s really big space to explore how spreadsheets and higher-order functional programming can co-exist and produce a unique experience.”
The post on Microsoft’s Excel blog ends by promising named LAMBDA functions are just the beginning, adding “join us for the journey.”
List of Keywords users find our article on Google
[sociallocker id=”2721″]
c# excel |
new excel functions 2022 |
microsoft excel |
popl |
turing developer test |
excel unique function |
excel to app dev |
hire excel macro developers |
hire excel developers |
c# lambda |
excel cell from another sheet |
excel calendar 2022 |
microsoft research |
superset design studio |
c# excel font style |
vb net excel functions |
popl black |
lambda dna |
microsoft senior software engineer |
excel c# |
excel technologies |
microsoft senior program manager |
c# spreadsheet |
visual basic programmer jobs |
microsoft programming language |
.net create excel file |
excel formula based on cell color |
vogue magazine template |
excel programming language |
excel developer jobs |
excel jobs |
excel lambda |
c# excel range |
vb net excel range to array |
c# net excel |
hire microsoft excel experts |
unique function in excel |
calendar 2022 excel |
c# excel formula |
excel value |
excel new functions 2022 |
excel .net |
vb net excel copy range of cells |
functional programming jobs |
hire microsoft excel developer |
vb net excel get cell value |
excel get value from another cell |
vb net excel cell value |
excel multiple values in one cell |
excel calendar template 2021 |
excel microsoft |
how to create excel sheet in c# |
c# working with excel |
excel macro get cell value |
excel now function |
microsoft excel programmers |
.net excel |
excel tan function |
read excel file c# |
excel large function |
microsoft research blog |
excel cell value based on another cell |
c# excel cells |
excel calendar template 2022 |
visual studio change language |
c# and excel |
excel formula if cell value changes |
free excel calendar template 2022 |
vb6 read excel file |
vb net excel select range of cells |
popl co |
vb net excel selection |
c# excel get cell value from range |
create excel c# |
c# output to excel |
unique function excel |
c# excel sheet |
c# create excel |
read file excel c# |
excel add in c# |
c# write to excel |
vb net excel object |
increment excel |
how to add multiple cells in excel |
how to read excel in c# |
define formula in excel |
excel cell function |
read excel in c# |
excel formula how to |
visual studio magazine |
popl 2022 |
.net spreadsheet component |
microsoft ux researcher |
ux researcher microsoft |
microsoft visual basic for applications |
excel if cell equals another cell |
linkedin excel |
excel update cell when another cell changes |
principal program manager microsoft |
vb net excel write to cell |
excel vb net |
microsoft programming |
c# excel example |
proper excel |
c# excel table |
visual basic excel commands |
what is popl |
excel copy value from another sheet |
excel range c# examples |
c# excel add in example |
c# excel select range of cells |
c# read excel |
excel sheet program in c# |
read excel file in c# |
create excel spreadsheet c# |
formula in excel not working |
microsoft excel c# |
.net core read excel file |
vouge magazine template |
read excel c# |
excel sheet name from cell value |
how to shift cells down in excel without changing formula |
microsoft magazine template |
c# read excel spreadsheet |
c# excel range cells |
excel unique |
customer journey map excel template free |
microsoft javascript |
c# excel cell type |
cell function excel |
qc calc |
visual basic in excel |
excel formula sheet name |
microsoft visual basic for applications excel |
how to return in excel cell |
lambda function excel |
excel value function |
excel return array |
c# excel read |
excel sheet name in cell |
visual basic excel |
excel formula or |
excel copy multiple cells into one |
how to enter in excel cell |
future of excel |
microsoft excel 2022 |
mvp++ |
custom microsoft programming |
when will lambda function be available in excel |
principal software engineer microsoft |
hotwire suites |
programming in excel |
return value excel |
functional programming wiki |
microsoft qa jobs |
senior visual basic programmer jobs |
excel youtube |
a proper |
microsoft research jobs |
excel search multiple values |
microsoft program manager jobs |
microsoft excel calendar templates |
search multiple values in excel |
visual studio language |
excel formula for sheet name |
lambda expression in c# |
find multiple values in excel |
セルヴォークグロス |
2022 calendar template excel |
programming with microsoft visual basic 2017 |
2022 calendar excel |
excel with c# |
microsoft excel definition |
excel in c# |
multiple values in one cell excel |
change language visual studio 2017 |
excel return cell value |
function visual basic excel |
create excel sheet in c# |
excel spreadsheet jobs |
javascript spreadsheet with formulas |
excel content calendar template 2020 |
add worksheet in excel using c# |
argument in excel |
excel 2003 macro |
excel formula to copy cell value from another sheet |
now function in excel |
popl 2020 |
unique in excel |
.net core excel |
excel equals |
excel formula find cell with value |
excel c# programming |
free excel calendar |
professional excel development |
create excel in c# |
execute excel formula in c# |
microsoft custom vision |
microsoft excel work from home jobs |
& in excel |
create an excel sheet in c# |
excel starts with |
excel macro change cell value |
c# excel get cell value |
excel labs |
how to define function in excel |
vb net excel range |
excel mvp |
microsoft programming software |
simon pearce jobs |
excel sheet name formula |
lambda excel |
excel formula not showing result |
c# excel write to cell |
excel macro array |
git excel |
microsoft core values |
c# add macro to excel |
visual studio excel |
c# read excel file |
create excel document c# |
read excel sheet in c# |
apache superset pricing |
satya technologies |
how to read excel file in .net core |
read from excel c# |
visual basic for excel |
array excel |
cell address in excel |
excel cell id |
array functions typescript |
change excel language |
excel change language |
microsoft typescript |
formulas excel 2003 |
today function in excel |
excel learning app |
in excel |
excel cell |
how to copy formula in excel |
large function excel |
excel formula range |
microsoft accel |
used bricklin |
customer journey map template xls |
excel app |
excel formula in cell |
microsoft excel app |
new excel features 2022 |
microsoft |
microssoft |
microsoft wikipedia |
microsoft tech community |
lambda labs linkedin |
turing – hire your engineering dream team |
wikipedia microsoft |
years show scripts microsoft finally turns |
years show scripts microsoft turns into |
wikipedia excel |
after show scripts microsoft finally turns |
microsoft.office.interop.excel range |
watch linkedin programming foundations: object-oriented design |
apache superset course |
github superset |
excel microsoft wikipedia |
microsoft research labs |
brian last wikipedia |
microsoft cambridge jobs |
superset github |
when is lambda coming to excel |
apache superset git |
excel formulas youtube |
excel programming languages |
excel coding language |
wikipedia turing |
ms office wikipedia |
coding language in excel |
microsoft research people |
2021 excel calendar template |
excel homes |
youtube videos excel formulas |
change visual studio language |
excel cell equals another cell |
excel rate function in javascript |
customer stories microsoft |
excel calendar template 2020 |
microsoft research cambridge jobs |
c# excel find |
microsoft visual studio jobs |
parametre microsoft |
excel one cell equals another |
excel recruitment |
excel search function for multiple values |
wikipedia microsoft excel |
if cell equals value then return another cell |
return value of cell in excel |
2021 calendar excel template |
excel if cell equals multiple values |
excel search for multiple values |
front end developer microsoft |
return value in cell excel |
saas boss |
senior program manager microsoft level |
excel mobile |
popl video |
2022 excel calendar template |
change visual studio 2022 language |
excel if cell = multiple values |
free excel 2022 calendar template |
how to check multiple values in excel |
microsoft owner name |
popl review |
2022 calendar in excel |
can 2022 excel |
excel formula to copy cell value to another cell |
si multiple excel |
visual basic equals |
what times what equals 84 |
2022 excel calendar |
excel formula based on another cell value |
how to return multiple values in excel |
microsoft senior manager |
microsoft teams programming language |
multiple values in a cell excel |
wikipedia recursion |
eve online spreadsheets |
excel 2022 calendar |
excel call function from cell |
excel select value based on another cell |
microsoft excel calendar template |
microsoft project change language |
net change formula excel |
turing youtube |
.net 6 lambda support |
calendar excel template 2021 |
excel find formula multiple values |
ux designer microsoft |
why is my excel formula spilling |
advait education |
c# excel template example |
equals in excel |
excel startswith |
linkedin to excel |
popl app |
unique formula excel |
vb net excel |
vb net write to excel cell |
call center scheduling template for microsoft excel |
excel 2022 calendar template |
excel universe |
excel visual basic functions |
lambda join two tables c# |
microsoft user research |
popl company |
sr. visual basic programmer jobs |
advaita wiki |
excel multi value cell |
how to make space in excel formula |
lamda expression in c# |
new functions in excel |
c# excel worksheet cells |
excel change language formulas |
excel return multiple values |
typescript microsoft |
2021 excel calendar |
eve online excel |
excel dna |
excel find multiple values |
excel get value from cell reference |
excel if cell equals |
excel si else |
excel visual basic cells |
get the cell address in excel |
high hopes development center |
how to write beta in excel |
wiki functional programming |
excel formula sheet name from cell |
excel si multiple |
how do you return in excel cell |
what is microsoft excel used for in the workplace |
apple version of microsoft excel |
c# excel template |
excel get the value of a cell |
excel webapp |
get value of cell excel |
unique values in excel formula |
ไฟล์ ปฏิทิน 2022 excel |
c# read excel without office |
creator of microsoft excel |
excel change language formula |
excel function return cell address |
excel unique formula |
microsoft python jobs |
popl sign in |
qc-calc |
c# excel set cell format |
define value in excel |
excel function |
excel or funtion |
find cell where value is excel |
how to copy formula in excel to another sheet |
rails read excel file |
turing complete wiki |
what is an argument in excel |
c# excel add in |
excel formula to c# |
excel formula to order values |
excel macro code examples |
excel macro function |
hotwire wikipedia |
how to find the cell value in excel |
microsoft ex |
net change in the value of a function |
programming on excel |
all excel formulas |
excel end formula |
excel get value of cell |
if value is within range excel |
new excel functions 2021 |
popl technology |
excel formula find text in cell |
excel formula to search for text in a cell |
excel or function |
excel use formula from another cell |
how to call a cell in excel |
how to change formula language in excel |
how to read excel sheet in c# |
program manager microsoft |
senior suit beta |
add space in excel cell |
apache rolling case |
copy value not formula excel |
excel call macro |
excel equal |
excel formula for one sheet to another |
excel get value from another tab |
excel number of cells with value |
excel programming |
microsoft asia research |
microsoft center cambridge |
return in excel cell |
return largest value in excel |
visual studio 2018 |
чтение excel c# |
2021 calendar excel |
ats en excel |
c# excel get range |
enter in excel without changing cells |
excel combine ranges into array |
excel create function |
excel top 5 values and names |
exist excel |
faq template excel |
find function in excel |
how to add in excel multiple cells |
macro excel formula |
mircrosoft excel |
recursive lambda excel |
rolling arrays |
visual basic code for excel |
c# create new excel file |
calendar creator excel |
excel formula for adding multiple cells |
excel return the cell reference |
excel unique id |
facebook business manager change language |
how to add space in excel |
how to search multiple items in excel |
microsoft excel real estate templates |
sarkar developers |
search in excel formula |
excel create unique id |
excel formula to add multiple cells |
excel git |
flinto vs framer studio |
hire microsoft programmers |
small basic microsoft |
whatsapp business api c# |
calendar in excel cell |
excel macro send email |
free excel macro templates |
get cell reference excel |
how to copy multiple cells in excel to another sheet |
how to get visual basic in excel |
how to read excel cell value in c# |
excel let function |
how to and function in excel |
in function excel |
in ms excel__________is an example of a function. |
name function in excel |
2018 excel calendar |
c# return excel file |
copy in excel with formula |
excel file name formula |
excel macro function return value |
excel programmer |
excel spreadsheet adding cells |
hire lambda developer |
microsoft research cambridge |
office insider program |
unique excel |
what is argument in excel |
c# write excel |
custom vision microsoft |
excel array to range |
how to change 1 to 01 in excel |
how to create an array in excel |
how to enter in excel formula |
how to name an array in excel |
multiple functions excel |
read data from excel in c# |
recursive formula excel |
what does value function do in excel |
#spill excell |
apply calculation style in excel |
c# write to excel file |
cell function in excel |
change language for excel |
comment in excel formula |
excel cell $ |
excel copy cell from another sheet |
excel formula for calendar |
excel macro address |
excel when function |
formula excel sheet name |
how cells are named in ms excel? |
large excel formula |
microsoft excell |
return within excel cell |
turing complete requirements |
value excel |
vogue cover template app |
array in excel |
excel cell value |
excel copy cell value not formula |
excel formula cell |
excel lambda function |
excel now formula |
how to use functions on excel |
macro coding in excel |
rails params array of objects |
calendario excel template |
cell formula in excel |
create a function in excel |
excel how to do enter in a cell |
excel reduce used range |
excel technology |
how to view output in visual studio |
microsoft excel cell |
pps calendar |
recruitment budget template excel |
today in excel |
unique names in excel |
using visual basic in excel |
visual studio programming language |
what is lambda expression in c# |
write to excel file c# |
c# write excel file |
css turing complete |
excel formula for email address |
how to copy the formula in excel |
how to do formulas in excel |
large function in excel |
mvp excel |
or function on excel |
apache superset upgrade |
c# using excel |
excel $ cell |
excel 2048 |
excel formula i |
excel large formula |
excel write function |
how do i enter a formula in excel |
how to change language on excel |
how to copy a cell in excel using formula |
how to reduce cells in excel |
recursive function javascript |
saas excel template |
simon peyton jones |
while visual basic excel |
apache calc |
excel for .net |
excel formula and |
how to copy cell address in excel |
how to cut a cell value in excel |
microsoft custom vision api |
c# excel read write |
easy excel |
excel application close c# |
excel change cell name |
excel formula for |
excel macro formula |
excel multiple formula |
propagation programming |
send whatsapp message c# |
c# excel range value |
c# lambda function |
excel cell formula |
excel comments in formula |
excel copy cell |
excel custom function |
full-time visual basic .net programmer vacatures |
how to write formulas for excel |
or in excel formula |
recursive labs |
apple reachability |
ats programming |
excel and formula |
excel function formula |
excel get cell |
excel macro coding |
excel mapping formula |
excel name manager |
excel programmers |
functions excel |
how to change language in microsoft excel |
jack williams phone number |
macro formulas in excel |
microsoft excel functions |
net reading excel files |
recruitment excel template |
value excel function |
excel formulas |
how to copy multiple cells in excel |
hàm excel |
ms excel formulas |
excel coding |
excel macro create new sheet |
excel sheet function |
how to add in excel formula |
is css turing complete |
read excel javascript |
wikipedia satya nadella |
microsoft ecommerce solutions |
combinators |
[/sociallocker]
Let’s create the next big thing together!
Coming together is a beginning. Keeping together is progress. Working together is success.