Excel like LET function is introduced in Origin 2021. The function assigns values into intermediate variables and uses these variables in an expression for calculation.
LET(name1, value1 [, name2, value2, ] … [name39, value39], expression)[$]
It allows multiple name/value pairs as input and the value can number, function result, expression, etc. Some simple examples:
let(x, 1, x+1) //assign 1 to x and calculate x+1 so return is 2
let(x,1, y, 2, x+y) //assign 1 as x, 2 as y and calculate x+y so return is 3
Here are some practical examples of using LET function to extract useful information from email addresses. Please also download the project to check the result.
Example 1: Extract Text before @ in Email Address
Column A contains edu email addresses. The length of text before @ varies. So we need to find position of @ in email address and then get text before @
Function: LET(n, find(A,"@"), left(A,n-1))
Explanation:
- find(A,”@”) function returns the index of letter @ in column A and assign it to variable n.
- Use expression left(A,n-1) gets the leftmost n-1 characters in column A, which means text before @
Example 2: Extract Text before @ for EDU Email Addresses only
There are edu and com emails in column A. We want to extract text before @ of edu email addresses only. For com email addresses, we want to show missing values.

Function: LET(n, find(A,"@"), IF(right(A,3) == "com",0/0,left(A,n-1)))
Explanation:
- find(A,”@”) function returns the index of letter @ in column A and assign it to variable n.
- the expression in this LET is actually an IF(condition, value_if_true, value_if_false) function. If the last 3 chars in email is com, return missing value
0/0
, otherwise return the text before @.
Example 3: Extract University Part of EDU Email Addresses
University name is between @ and . in email address. So we need to find position of @ and . and then extract text between them.
Function: LET(n1, find(A, "@"), n2, find(A,"."), Mid(A,n1+1, n2-n1-1)$)
Explanation:
- find(A,”@”) function returns the index of letter @ in column A and assign it to variable n1.
- find(A,”.”) function returns the index of letter . in column A and assign it to variable n2.
- mid(A,n1+1, n2-n1-1)$ function returns the text between @ and . in column A.