Advanced Functions

How to create custom functions using LET and LAMBDA

Overview

Microsoft has added two powerful features in recent years which effectively allow users to create custom functions.

There are many benefits to using these functions, including:

  • Improved readability of formulas

  • Minimising the number of references to Calculation inputs

  • Making complex functions reusable

To understand how LET and LAMBDA functions work, we recommend reading the Microsoft documentation. Links are included in the relevant sections below.

LET functions

If you are new to LET functions, first read the Microsoft documentation here

To create a LET function, you can type the function into the Formula Entry Bar, as you would for any other function, with two key differences: Arguments (called "variables" in the Microsoft documentation) and References to those arguments must be entered via the AutoComplete dropdown. This is demonstrated in the example below.

A LET function to find a root of a quadratic equation

Let's say we want to create a LET function to find one of the roots of a quadratic equation, as shown above. This is useful as the arguments a and b are both used twice in the formula, so using a LET function means we only have to enter the input values for those arguments (which could be references to Variables) once.

When we enter each of the arguments (a, b, and c), we type in the name of the argument and then select the Argument Calculation Part with the plus in braces symbolfrom the AutoComplete dropdown, as shown below.

Creating a LET argument

To reference these arguments, we type in the name of the argument, and select the Argument Reference Calculation Part with the comma in braces symbol , as shown below.

Referencing a LET argument

LAMBDA functions

If you are new to LAMBDA functions, first read the Microsoft documentation here

Creating a Lambda

To create a LAMBDA function, go to the Lambda applet, which is accessible from the Navigation Bar, or create one on the fly from the Formula Entry autocomplete menu.

Lambdas are stored separately from Models so can be used in any Model that has access to the Lambda's Namespace.

When you create a new Lambda you will need to perform the following steps, as per the screenshots below:

  • Select a Namespace

  • Choose a Name (1). The name must obey Excel naming rules for Named Ranges, and not include spaces or certain special characters. The full rules are complex so we will not list them here, but the Lambda dialog will not let you proceed if the name does not meet the rules.

  • Create the Arguments for the function (2)

  • Enter the formula (3)

Creating a Lambda

The Calculation entry step for a Lambda uses the same Formula Entry Bar as Variables, but with reduced capabilities (e.g. as Lambdas exist outside Models, you cannot reference Variables or Periods in a Lambda formula).

Lambdas can reference other Lambdas - use this to greatly simplify complex calculations

Using a Lambda function

Once you have created a Lambda function, it can be used in Models just like any other Function, as long as the Lambda's Namespace is available in your Model.

For instance, to use the QuadraticRoot Lambda from the above example, we would simply type the name of the Lambda into the Formula Entry Bar, select the function from the dropdown, and enter arguments as desired, as shown below.

Using a Lambda function in a Calculation

Last updated