The LET function in Google Sheets allows you to assign names to calculation steps or values, enabling you to reuse them multiple times within a single formula. Think of it as declaring local variables directly inside your spreadsheet cell.
Why use it? LET eliminates the need to write the same complex formula block over and over. This gives you two massive advantages:
- Cleaner Code: It turns unreadable “formula spaghetti” into neatly organized, logical steps.
- Faster Sheets: Google Sheets calculates the named expression exactly once instead of re-evaluating it every time it appears, dramatically reducing spreadsheet lag on large datasets.
Syntax of the LET Function
To get the most out of the function, it helps to understand its structural format:
LET(name1, value_expression1, [name2, …], [value_expression2, …], formula_expression )
name1,name2: The custom names (variables) you create. These are case-insensitive.value_expression1,value_expression2: The actual formulas, cell references, or values assigned to those names.formula_expression: The final calculation that uses your defined names to output the actual result.
💡 Important Rule: Optional arguments must always be paired. If you declare a name2, you must provide a value_expression2 right after it.
2 Core Reasons to Use LET (With Simple Examples)
1. Clean Up Complex Nested Logic (Readability)
Imagine you want to check if your total monthly sales meet a tiered commission structure. Without LET, you have to repeat the SUM(C:C) calculation across multiple nested IF statements:
=IF(SUM(C:C) < 100, "D", IF(SUM(C:C) < 200, "C", IF(SUM(C:C) < 300, "B", "A")))
With LET, you can define SUM(C:C) as total_sales right at the start. The formula instantly becomes readable:
=LET(
total_sales, SUM(C:C),
IF(total_sales < 100, "D", IF(total_sales < 200, "C", IF(total_sales < 300, "B", "A")))
)
2. Stop Double-Calculating (Performance)
In the raw nested IF example above, Google Sheets might calculate SUM(C:C) up to three separate times depending on the sales volume. In heavy sheets with thousands of rows, this tanks performance.
When you wrap it in LET, Google Sheets runs SUM(C:C) once, caches the result under the name total_sales, and simply looks up that pre-calculated value for the rest of the formula.
Sequential Naming: A Hidden Superpower
One of the best features of LET is that subsequent variables can reference previous variables defined within the same function.
Look at this simple multi-variable calculation:
=LET(a, 5, b, a * 2, b + 10)
- Result:
20 - How it works:
ais set to 5. Then,breferencesato calculate 5 x 2 = 10. Finally, the formula expression adds 10 tob.
Real-Life Example: Optimizing an Array Formula
Let’s look at a practical business scenario. You are pulling the total sales for January 2026 out of a raw date column using an ARRAYFORMULA and SUMIF combo:
=ARRAYFORMULA(SUMIF(EOMONTH(B2:B7, -1) + 1, DATE(2026, 1, 1), C2:C7))

Now, you want to categorize that result as “Poor” (under 10), “Good” (under 40), or “Exceptional” (40 or more).
The Traditional (Inefficient) Way:
You are forced to paste that entire, massive ARRAYFORMULA block multiple times inside a nested statement:
=IF(
ARRAYFORMULA(SUMIF(EOMONTH(B2:B7, -1) + 1, DATE(2026, 1, 1), C2:C7)) < 10, "Poor",
IF(ARRAYFORMULA(SUMIF(EOMONTH(B2:B7, -1) + 1, DATE(2026, 1, 1), C2:C7)) < 40, "Good", "Exceptional")
)
The Optimized LET Way:
By naming that complex calculation jan_sales, look how clean the execution becomes:
=LET(
jan_sales, ARRAYFORMULA(SUMIF(EOMONTH(B2:B7, -1) + 1, DATE(2026, 1, 1), C2:C7)),
IF(jan_sales < 10, "Poor",
IF(jan_sales < 40, "Good", "Exceptional"))
)
LET vs. LAMBDA: Which Should You Use?
Advanced users often wonder whether to use LET or a standalone LAMBDA function, as both can handle variable assignments.
| Feature | LET Function | LAMBDA Function |
| Primary Purpose | Defining local variables to clean up a single formula. | Creating completely custom, reusable functions. |
| Syntax Complexity | Simple, linear placement (name, value, calculation). | Requires separating the logic from the input values at the end. |
| Best Used For | General optimization of complex nested IF, VLOOKUP, or math blocks. | Pairing with helper functions like BYROW, MAP, SCAN, or REDUCE. |
To show the difference, here is our January sales calculation written as a LAMBDA:
=LAMBDA(jan_sales, IF(jan_sales < 10, "Poor", IF(jan_sales < 40, "Good", "Exceptional")))(ARRAYFORMULA(SUMIF(EOMONTH(B2:B7, -1) + 1, DATE(2026, 1, 1), C2:C7)))
While it works, the syntax is inverted and much harder to read than the LET variation. Use LET unless you are actively building a dynamic array loop.
Turning LET Variables into Custom Functions (LET + LAMBDA)
While LET and LAMBDA serve different core purposes, they can be combined to unlock incredible formatting power. You can actually nest a LAMBDA function inside a LET variable.
This allows you to create a temporary, reusable custom function that only exists within that specific cell. Instead of assigning a static number or a raw text string to your variable name, you assign an entire calculation rule. You can then execute that variable name later in the formula just like a native Google Sheets function.
Example: Creating a Dynamic Indexer
Suppose you frequently need to pull the 5th item from various columns in your sheet, but you don’t want to write out a repetitive INDEX formula every single time. You can assign a LAMBDA function to a variable named col:
=LET(
col, LAMBDA(range, INDEX(range, 5)),
col(C2:C6)
)
How this works step-by-step:
col: This is the custom name assigned to our variable.LAMBDA(range, INDEX(range, 5)): Instead of a hardcoded value, we assign a functional instruction tocol. This instruction tells Google Sheets: “Take an array of cells calledrange, and extract the 5th item.”col(C2:C6): In the final formula expression, we treatcolexactly like a standard function, passing the specific data rangeC2:C6into it. The formula executes and immediately returns your target value.
Why use this advanced technique?
If you have a complex parsing layout that needs to be performed on three or four different columns within the same cell formula, you don’t need to duplicate the heavy logic. Defining your parsing rule once as a LAMBDA variable at the beginning of your LET function allows you to cleanly pass different cell groups into it. It keeps your advanced spreadsheets modular and vastly easier to debug.
You can find a massive, real-life example of this exact technique in my number-to-word converter formula guide here: Convert Numbers to Words in Google Sheets (US & Indian Formats). It shows how to use LET to assign custom LAMBDA functions as local sub-routines, handling complex, repetitive digit parsing seamlessly without hitting Google Sheets’ character limits.
Naming Rules & Best Practices
To avoid breaking your formulas, follow these strict naming conventions when defining your variables inside LET:
- Start with a Letter: Names can contain numbers, but they must begin with a letter (e.g.,
sales1is fine,1saleswill cause an error). - Use Underscores for Spaces: Spaces are not allowed. Use underscores to separate words (e.g.,
q1_total). - Avoid Cell Conflict Names: Do not name a variable something that matches a real cell or column coordinate (e.g., avoiding naming a variable
A1orA100). - Keep it Case-Insensitive: Google Sheets reads
total_sales,TOTAL_SALES, andTotal_Salesexactly the same way. Make sure you don’t accidentally declare duplicates with different casing.
💡A Quick Tip on Function Names: While Google Sheets technically allows you to use native function names as variables (for example, =LET(SUM, 5, SUM * 2) will output 10), it is highly recommended to avoid doing this. Using names like SUM, AVERAGE, or VLOOKUP as variables can heavily confuse anyone else reviewing your spreadsheet later!
Summary
The LET function is one of the most powerful optimization tools added to Google Sheets. Use it whenever you find yourself copying and pasting the exact same formula block inside a single cell.
You can even nest LET functions inside the LAMBDA portion of advanced helper array loops like MAP or REDUCE to keep complex automation incredibly clean.
There does not appear to be LET in google sheets, at least in the iPhone app.
Hi, Bob,
You will get it in the latest version. Removing and reinstalling the app sorted out the issue on my end.