=LET(total,SUM(B2:B6),IF(total>500,total*0.9,total)) suma B2:B6 una vez, llama total al resultado y luego usa ese nombre dos veces: una para comprobarlo y otra para devolverlo. Sin LET escribirías la SUMA tres veces: =SI(SUMA(B2:B6)>500;SUMA(B2:B6)*0,9;SUMA(B2:B6)). LET se llama igual en Excel en español, y la tabla también acepta las fórmulas escritas en español, con punto y coma (o con comas, como en México): =LET(total;SUMA(B2:B6);SI(total>500;total*0,9;total)).
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Order | Amount | Total to pay | |
| 2 | A-101 | 120 | 580.5 | |
| 3 | A-102 | 95 | ||
| 4 | A-103 | 210 | ||
| 5 | A-104 | 80 | ||
| 6 | A-105 | 140 |
=LET(total;SUMA(B2:B6);SI(total>500;total*0,9;total))Los pedidos suman 645, más de 500, así que D2 muestra 580.5. Cambia B4 a 50 y el total baja a 485, por debajo del límite, así que D2 muestra 485 sin descuento.
Sintaxis de LET
=LET(name1, value1, [name2, value2, ...], calculation)
- Cada
name(nombre) es una palabra que eliges, seguida delvalue(valor) que representa: un número, un rango o una fórmula. - Puedes definir hasta 126 parejas. Un valor puede usar cualquier nombre definido antes.
- El último argumento es el
calculation(cálculo), que usa los nombres y da el resultado.
LET necesita Excel 2021, Excel 2024 o Microsoft 365. En Excel 2019 y anteriores muestra #¿NOMBRE? (#NAME? en inglés; la tabla muestra los nombres de error en inglés). Google Sheets tiene LET con la misma sintaxis.
LET con varias variables
Los nombres hacen que una fórmula por fila se lea como una frase. Aquí cada fila calcula un subtotal y quita un 10% cuando pasa de 100:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Item | Price | Qty | To pay |
| 2 | Pen | 2.5 | 10 | 25 |
| 3 | Bag | 40 | 3 | 108 |
| 4 | Lamp | 35 | 2 | 70 |
| 5 | Mug | 8 | 15 | 108 |
| 6 | Desk | 150 | 1 | 135 |
=LET(subtotal;B2*C2;SI(subtotal>100;subtotal*0,9;subtotal))Los 120 de las bolsas pasan a 108, los 120 de las tazas también pasan a 108, y los 150 del escritorio pasan a 135; los bolígrafos (25) y las lámparas (70) se quedan como están. La fórmula se escribió en D2 y se copió hacia abajo, y subtotal es un número distinto en cada fila.
Un nombre puede apoyarse en el anterior: =LET(x;2;y;x*3;x+y) pone x en 2, y en 6, y devuelve 8.
Calcular una búsqueda una vez y reutilizarla
Una búsqueda que aparece dos veces en un SI se ejecuta dos veces. LET la ejecuta una. Esto devuelve el precio más un 20%, o un mensaje cuando falta el producto:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Product | Region | Price | Look for | Price + 20% | |
| 2 | Apple | North | 1.2 | Pear | 1.8 | |
| 3 | Pear | South | 1.5 | Kiwi | Not found | |
| 4 | Carrot | East | 0.8 | |||
| 5 | Bread | North | 2.4 | |||
| 6 | Milk | South | 1.1 |
=LET(p;BUSCARX(E2;A2:A6;C2:C6;"");SI(p="";"Not found";p*1,2))Pear se encuentra, así que F2 muestra 1.8. Kiwi no está en la lista, BUSCARX (XLOOKUP en inglés) devuelve el texto vacío que se le da como cuarto argumento, y F3 muestra Not found. Escribe Kiwi en A4 y F3 cambia a su precio más un 20%.
LET con FILTRAR
LET es más útil con matrices dinámicas, donde un rango filtrado se necesita más de una vez. Esto pone nombre a las filas que coinciden, las cuenta y promedia sus ventas en una sola fórmula:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Region | North | |
| 2 | Ann | North | 120 | Summary | 3 reps, average 126.7 | |
| 3 | Ben | South | 80 | |||
| 4 | Cara | North | 200 | |||
| 5 | Dan | East | 150 | |||
| 6 | Eve | South | 95 | |||
| 7 | Finn | North | 60 |
=LET(rows;FILTRAR(A2:C7;B2:B7=F1);n;FILAS(rows);avg;PROMEDIO(INDICE(rows;0;3));n&" reps, average "&REDONDEAR(avg;1))Para North muestra "3 reps, average 126.7". Elige South en F1 para obtener "2 reps, average 87.5". INDICE(rows;0;3) toma la tercera columna de las filas filtradas. Sin LET, FILTRAR (FILTER en inglés) se escribiría dos veces.
Un calendario mensual con celdas en blanco
El calendario de la página de SECUENCIA muestra días de los meses vecinos. LET pone nombre al día 1 del mes y a la cuadrícula de fechas, y luego deja en blanco toda fecha fuera del mes:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Sun | Mon | Tue | Wed | Thu | Fri | Sat |
| 2 | 1 | 2 | 3 | 4 | |||
| 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 4 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 5 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 6 | 26 | 27 | 28 | 29 | 30 |
=LET(start;FECHA(2026;4;1);days;SECUENCIA(6;7;start-DIASEM(start)+1);SI(MES(days)=MES(start);days;""))Cambia DATE(2026,4,1) por DATE(2026,5,1) y la cuadrícula se redibuja para mayo. Como el día 1 del mes tiene nombre una sola vez, solo hay una fecha que cambiar, no tres.
Práctica: gastos de envío con LET
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Order | Amount | To pay | |
| 2 | A-101 | 120 | ||
| 3 | A-102 | 95 | ||
| 4 | A-103 | 210 | ||
| 5 | A-104 | 80 | ||
| 6 | A-105 | 140 |
Tu turno: En D2, suma los importes de B2:B6. Si el total es menor que 800, suma 25 de envío; si no, devuelve el total.
Reglas de nombres y errores de LET
La mayoría de los errores de LET vienen de los nombres:
- Un nombre debe empezar por una letra y no tener espacios.
unit pricefalla; usaunit_priceounitPrice. - Un nombre no puede parecer una dirección de celda.
a1ytax2026son direcciones de celda en Excel (TAX es una columna), así que LET los rechaza con #¿NOMBRE?.rateotax_2026funcionan. - Un nombre se escribe exactamente igual cada vez que se usa. Una errata donde se usa da #¿NOMBRE?, porque Excel busca una función o un rango con nombre escrito así.
- El último argumento debe ser un cálculo.
=LET(x;5)tiene un nombre y un valor pero nada que devolver, así que Excel la rechaza. - Los nombres solo existen dentro de su propia fórmula. Para reutilizar un cálculo en muchas celdas, guárdalo como una LAMBDA con nombre.
=LET(a1,5,a1*2) #NAME? (a1 is a cell address)
=LET(rate,8%,100*rate) 8
Preguntas frecuentes
¿Qué hace la función LET en Excel?
Da nombres a valores dentro de una fórmula. =LET(total;SUMA(B2:B6);total*2) calcula SUMA(B2:B6) una vez, lo llama total y devuelve total por 2. Los nombres solo existen dentro de esa fórmula.
¿Cómo uso más de una variable en LET?
Añade más parejas de nombre y valor antes del cálculo final: =LET(price;B2;qty;C2;price*qty). Un valor posterior puede usar un nombre anterior, como en =LET(x;2;y;x*3;x+y), que devuelve 8.
¿Por qué mi fórmula LET devuelve #¿NOMBRE?
O tu Excel no tiene LET (necesita Excel 2021 o Microsoft 365), o un nombre está mal escrito donde se usa, o un nombre no está permitido, por ejemplo uno que parece una dirección de celda como a1 o tax2026, o uno que empieza por un número.
¿LET hace más rápidas las fórmulas de Excel?
Puede. Sin LET, una expresión repetida, como el mismo BUSCARX escrito dos veces en un SI, se calcula cada vez que aparece. Con LET se calcula una vez y se reutiliza el resultado.