Contact

Numbers LET: Name Formula Values, Simplify Calculations and Check Results

Logical and Information Intermediate Apple Numbers

Use LET in Apple Numbers with local variables, complete cost and centred-reading examples, exact syntax, version history and practical limits.

Verification status: See the evidence and test scope described in this guide. How formula examples are checked

LET assigns names to values or calculated results inside a formula. For example, =LET(Rate,10,Rate*7) gives 70. Naming the rate makes the expression easier to read without adding a separate helper column.

Availability and version history

  • Introduced: Added in Numbers 14.4 for Mac and iPad.
  • Availability: Currently documented in Apple’s Functions Help 15.4 documentation edition; no final supported-version endpoint is established.
  • Scope: Shared iWork function reference. Historical iPhone and iCloud availability and exact client parity are unverified.
  • Checked: October 14, 2026, against the official LET reference. Examples were independently calculated; no native Numbers test was performed.

Syntax: name/value pairs followed by a result

LET(name, value, name…, value…, calculation-or-name)

At least one name/value pair is required; Apple’s LET reference allows up to 126 pairs. The last argument gives the calculation or name used for the result. Optional additional variables come in pairs, not as an unpaired extra input.

In =LET(Rate,10,Rate*7), Rate names the value ten, and the final expression multiplies it by seven. Enter Rate as a variable token, not the quoted text "Rate". Apple explains that defined variable names appear as formula tokens and can appear in type-ahead within the function.

Use the simple names in these examples. This reference does not enumerate every valid naming pattern, reserved name or malformed-name error. Nor does it specify a speedup or evaluation-count guarantee; the purpose demonstrated here is a readable, checkable expression.

Build a cost table with three local variables

Create RentalCosts, with eight columns A:H and twelve rows, including one header row. Put Item, Daily rate, Days, Reduction, LET cost, Direct cost, Difference and Review in A1:H1. Enter these inputs in A2:D7. Reduction is a fractional number: 0.1 means 10%, not ten whole units.

Row A: Item B: Daily rate C: Days D: Reduction
2 Camera 10 7 0
3 Lens 12.5 7 0.1
4 Tripod 8 30 0.25
5 Light 15 0 0.2
6 Recorder 9 14 1
7 Stand 20 3 0

In E2 enter =LET(Rate,B2,Span,C2,Reduction,D2,Rate*Span*(1-Reduction)) and fill through E7. Each row defines its own three local names from that row’s inputs.

In F2 enter =B2*C2*(1-D2) and fill through F7. In G2 enter =E2-F2 and fill through G7. Both cost columns have these independently calculated targets:

Row Expected E and F Mathematical G
2 70 0
3 78.75 0
4 180 0
5 0 0
6 0 0
7 60 0

In H2 enter =LET(Total,E2,IF(Total>=75,"Review","Within")) and fill through H7. Expect Within, Review, Review, Within, Within, Within. The 75 threshold is an example review policy, not a property of LET or a tax rule.

The two zero-cost rows have different causes: zero days and a complete reduction. LET calculates the expression you supplied; it does not check whether those inputs make sense for an actual rental. This model assumes a simple proportional discount, with no minimum charge, tax or rounding policy.

Reproduce Apple’s fixed-duration example

Use B10:B12 for independent formulas that do not change the rental data:

Cell Formula Expected result
B10 =LET(Rate,10,x,7,y,30,z,365,Rate*x) 70
B11 =LET(Rate,10,x,7,y,30,z,365,Rate*y) 300
B12 =LET(Rate,10,x,7,y,30,z,365,Rate*z) 3650

In D10 enter =LET(Rate,10,x,7,y,30,z,365,Rate*2*x+Rate*2*y+Rate*2*z) for 8040. These are fixed 7-, 30- and 365-day arithmetic units from Apple’s illustration. A 30-day model is not every calendar month, and a 365-day model does not handle leap years automatically.

In D11 enter =LET(Rate,10,Rate) for 10: the last argument can return the defined value itself. Each of these formulas defines its own names; a Rate token in one expression is not a worksheet-wide rate setting.

Advanced: name a shared centre without changing the data

Create CentredReadings, with six columns A:F and eight rows. Enter numeric readings 6,8,10,12,14 down B2:B6. In C2 enter =LET(Centre,AVERAGE($B$2:$B$6),(B2-Centre)^2) and fill through C6. Expect 16,4,0,4,16.

The anchored range keeps the centre based on all five readings while B2 moves with the row. In D2 enter =(B2-AVERAGE($B$2:$B$6))^2 and fill through D6 for the same values. The arithmetic mean is 10 and the sum of either squared-deviation column is 40.

Put =AVERAGE(B2:B6) in F2 and =SUM(C2:C6) in F3 for those checks. In E2 enter =LET(Centre,AVERAGE($B$2:$B$6),Scale,2,(Scale*(B2-Centre))^2) and fill through E6; expect 64,16,0,16,64. In F4 enter =SUM(E2:E6) for 160.

Doubling centred differences multiplies their squared total by four. Naming Centre exposes the repeated expression, but copying the formula creates a separate LET expression in each row; this guide makes no cross-cell caching claim.

References, regional settings and limits

These examples use numeric cells, English function names, decimal points and comma-separated arguments. If your decimal separator is a comma, Apple’s functions overview specifies semicolons between arguments. Keep quoted text inside straight double quotation marks when entering the formula.

For a reference to another Numbers table, select the intended cell while editing the formula so Numbers inserts its qualified reference, such as TableName::B2. Do not confuse a local parameter or variable token with a worksheet address. The examples specify complete tables and use separate output columns.

Exact malformed-name errors, numeric-text conversion, extreme-value precision, evaluation timing and cross-client workbook round trips are outside these demonstrated cases. Independently exact arithmetic targets can differ slightly from a displayed spreadsheet result because of finite precision.

Use AVERAGE and SUM for the underlying summaries, and IF for the review condition. LAMBDA defines a parameterized subformula rather than a list of named values; LAMBDA.APPLY supplies its test inputs.