InApps Technology
Microsoft Excel as a programming language
Microsoft excel becomes a proper programming language inapps technology 2022

Microsoft Excel as a programming language

Anh Hoang September 12, 2022 20 min read

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-excel

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.

Key Summary

  • Key Developments: LAMBDA Function: Introduced in 2021, allows users to define custom, reusable functions using Excel’s formula language, enabling procedural logic without external scripting. Dynamic Arrays: Enhances data manipulation with spill ranges, where formulas return multiple values dynamically, simplifying complex calculations. Power Query: Facilitates data extraction, transformation, and loading (ETL) from various sources, supporting programmatic data workflows. Office Scripts: JavaScript-based scripting for automation, integrating with Excel Online for task automation and cross-platform compatibility. Excel JavaScript API: Enables developers to create custom add-ins, extending Excel’s functionality programmatically.
  • LAMBDA Function: Introduced in 2021, allows users to define custom, reusable functions using Excel’s formula language, enabling procedural logic without external scripting.
  • Dynamic Arrays: Enhances data manipulation with spill ranges, where formulas return multiple values dynamically, simplifying complex calculations.
  • Power Query: Facilitates data extraction, transformation, and loading (ETL) from various sources, supporting programmatic data workflows.
  • Office Scripts: JavaScript-based scripting for automation, integrating with Excel Online for task automation and cross-platform compatibility.
  • Excel JavaScript API: Enables developers to create custom add-ins, extending Excel’s functionality programmatically.
  • Programming Capabilities: Logic and Control: LAMBDA supports recursive functions and conditional logic, mimicking programming constructs. Data Processing: Power Query and dynamic arrays handle large datasets, rivaling database tools. Automation: Office Scripts automate repetitive tasks (e.g., formatting, reporting) with TypeScript/JavaScript. Extensibility: Add-ins and APIs allow integration with external systems and custom solutions.
  • Logic and Control: LAMBDA supports recursive functions and conditional logic, mimicking programming constructs.
  • Data Processing: Power Query and dynamic arrays handle large datasets, rivaling database tools.
  • Automation: Office Scripts automate repetitive tasks (e.g., formatting, reporting) with TypeScript/JavaScript.
  • Extensibility: Add-ins and APIs allow integration with external systems and custom solutions.
  • Advantages: Accessibility: Familiar interface lowers the barrier for non-programmers to create complex solutions. Versatility: Supports financial modeling, data analysis, and automation within one platform. Integration: Works seamlessly with Microsoft 365 ecosystem (e.g., Power BI, Teams). Community Support: Extensive resources and templates available via Microsoft and user communities.
  • Accessibility: Familiar interface lowers the barrier for non-programmers to create complex solutions.
  • Versatility: Supports financial modeling, data analysis, and automation within one platform.
  • Integration: Works seamlessly with Microsoft 365 ecosystem (e.g., Power BI, Teams).
  • Community Support: Extensive resources and templates available via Microsoft and user communities.
  • Challenges: Scalability: Less efficient for enterprise-scale applications compared to dedicated languages (e.g., Python, Java). Learning Curve: Advanced features like LAMBDA and Office Scripts require familiarity with programming concepts. Performance: Complex computations may slow down large workbooks.
  • Scalability: Less efficient for enterprise-scale applications compared to dedicated languages (e.g., Python, Java).
  • Learning Curve: Advanced features like LAMBDA and Office Scripts require familiarity with programming concepts.
  • Performance: Complex computations may slow down large workbooks.

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.

Creating a named LAMBDA function in Excel (screenshot from Excel blog)

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.

Screenshot from Microsoft Excel blog - LAMBDA function using Excel cell address as an argument

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.

Screenshot from Microsoft Excel blog - Excel array as an argument in a LAMBDA function

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.

Difference between CSS and SCSS - detailed guide

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

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

How the Tech World Honored Juneteenth – InApps 2022

[/sociallocker]

Rate this post

ShareLinkedInX

Want to apply these insights?

Our AI architects offer free 45-minute consultations to discuss your specific use case.

Book a Discovery Call