Menu

Функция LET в Excel (эксель): имена внутри формулы

=LET(total;СУММ(B2:B6);ЕСЛИ(total>500;total*0,9;total)) считает сумму один раз, называет её total и использует это имя дважды. LET делает длинные формулы короче, понятнее и быстрее, потому что каждая названная часть вычисляется один раз.

Каждая таблица на этой странице живая: измените число или формулу, и она пересчитается.

=LET(total;СУММ(B2:B6);ЕСЛИ(total>500;total*0,9;total)) один раз складывает B2:B6, называет результат total и затем использует это имя дважды: чтобы проверить его и чтобы вернуть. Функция LET и в русском Excel называется LET. Без неё СУММ пришлось бы написать три раза: =ЕСЛИ(СУММ(B2:B6)>500;СУММ(B2:B6)*0,9;СУММ(B2:B6)). В таблицах формулы записаны по-английски, но их можно вводить и по-русски, с точкой с запятой, как здесь.

Скидка 10% на заказы больше 500
D2
ABCD
1OrderAmountTotal to pay
2A-101120580.5
3A-10295
4A-103210
5A-10480
6A-105140
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =LET(total;СУММ(B2:B6);ЕСЛИ(total>500;total*0,9;total))

Заказы в сумме дают 645, это больше 500, поэтому D2 показывает 580.5. Замените B4 на 50, сумма упадёт до 485, ниже порога, и D2 покажет 485 без скидки.

Синтаксис LET

=LET(name1, value1, [name2, value2, ...], calculation)
  • Каждое name (имя) это слово, которое вы выбираете, а за ним идёт value (значение), которое оно обозначает: число, диапазон или формула.
  • Можно задать до 126 пар. Значение может использовать любое имя, заданное до него.
  • Последний аргумент это calculation (вычисление), которое использует имена и даёт результат.

LET требует Excel 2021, Excel 2024 или Microsoft 365. В Excel 2019 и старше она показывает #ИМЯ? (по-английски #NAME?). В Google Таблицах есть LET с тем же синтаксисом.

LET с несколькими переменными

С именами формула для каждой строки читается как предложение. Здесь каждая строка считает промежуточную сумму и даёт скидку 10%, если она больше 100:

Скидка по каждой строке
D2
ABCD
1ItemPriceQtyTo pay
2Pen2.51025
3Bag403108
4Lamp35270
5Mug815108
6Desk1501135
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =LET(subtotal;B2*C2;ЕСЛИ(subtotal>100;subtotal*0,9;subtotal))

120 за сумки превращаются в 108, 120 за кружки тоже в 108, а 150 за стол в 135; ручки (25) и лампы (70) остаются как есть. Формула написана в D2 и протянута вниз, и в каждой строке subtotal означает своё число.

Имя может опираться на предыдущее: =LET(x;2;y;x*3;x+y) задаёт x равным 2, y равным 6 и возвращает 8.

Вычислить поиск один раз и использовать снова

Поиск, который встречается в ЕСЛИ дважды, выполняется дважды. LET выполняет его один раз. Эта формула возвращает цену плюс 20% или сообщение, если товара нет:

Найти один раз, использовать дважды
F2
ABCDEF
1ProductRegionPriceLook forPrice + 20%
2AppleNorth1.2Pear1.8
3PearSouth1.5KiwiNot found
4CarrotEast0.8
5BreadNorth2.4
6MilkSouth1.1
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =LET(p;ПРОСМОТРX(E2;A2:A6;C2:C6;"");ЕСЛИ(p="";"Not found";p*1,2))

Pear найден, поэтому F2 показывает 1.8. Kiwi в списке нет, ПРОСМОТРX возвращает пустой текст, заданный четвёртым аргументом, и F3 показывает Not found. Введите Kiwi в A4, и F3 покажет его цену плюс 20%.

LET с ФИЛЬТР

Больше всего LET полезна с динамическими массивами, где отфильтрованный диапазон нужен несколько раз. Эта формула называет подходящие строки, считает их и находит среднее их продаж в одной формуле:

Сводка по одному региону
F2
ABCDEF
1NameRegionSalesRegionNorth
2AnnNorth120Summary3 reps, average 126.7
3BenSouth80
4CaraNorth200
5DanEast150
6EveSouth95
7FinnNorth60
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =LET(rows;ФИЛЬТР(A2:C7;B2:B7=F1);n;ЧСТРОК(rows);avg;СРЗНАЧ(ИНДЕКС(rows;0;3));n&" reps, average "&ОКРУГЛ(avg;1))

Для North она показывает "3 reps, average 126.7". Выберите South в F1, и получится "2 reps, average 87.5". ИНДЕКС(rows;0;3) берёт третий столбец отфильтрованных строк. Без LET ФИЛЬТР пришлось бы написать дважды.

Календарь на месяц с пустыми ячейками

Календарь на странице ПОСЛЕД показывает дни соседних месяцев. LET называет первое число месяца и сетку дат, а затем заменяет пустотой каждую дату вне месяца:

Апрель 2026, другие месяцы пустые
A2
ABCDEFG
1SunMonTueWedThuFriSat
21234
3567891011
412131415161718
519202122232425
62627282930
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =LET(start;ДАТА(2026;4;1);days;ПОСЛЕД(6;7;start-ДЕНЬНЕД(start)+1);ЕСЛИ(МЕСЯЦ(days)=МЕСЯЦ(start);days;""))

Замените в формуле DATE(2026,4,1) на DATE(2026,5,1), и сетка перерисуется для мая. Поскольку первое число месяца названо один раз, менять нужно только одну дату, а не три.

Практика: доставка с LET

Ваша очередь
D2
ABCD
1OrderAmountTo pay
2A-101120
3A-10295
4A-103210
5A-10480
6A-105140
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.

Ваша очередь: В D2 сложите суммы из B2:B6. Если итог меньше 800, прибавьте 25 за доставку; иначе верните итог.

Правила имён LET и ошибки

Большинство ошибок LET связано с именами:

  • Имя должно начинаться с буквы и не содержать пробелов. unit price не сработает; используйте unit_price или unitPrice.
  • Имя не может быть похоже на адрес ячейки. a1 и tax2026 это адреса ячеек в Excel (TAX это столбец), поэтому LET отвергает их с ошибкой #ИМЯ?. rate или tax_2026 работают.
  • Имя пишется одинаково везде, где используется. Опечатка в месте использования даёт #ИМЯ?, потому что Excel ищет функцию или именованный диапазон с таким написанием.
  • Последний аргумент должен быть вычислением. В =LET(x;5) есть имя и значение, но нечего возвращать, поэтому Excel её не принимает.
  • Имена существуют только внутри своей формулы. Чтобы использовать вычисление во многих ячейках, сохраните его как именованную LAMBDA.
=LET(a1,5,a1*2)          #NAME?  (a1 is a cell address)
=LET(rate,8%,100*rate)   8

В русском Excel вторая формула записывается как =LET(rate;8%;100*rate), а первая даёт #ИМЯ?.

Часто задаваемые вопросы

Что делает функция LET в Excel?

Она даёт имена значениям внутри одной формулы. =LET(total;СУММ(B2:B6);total*2) один раз вычисляет СУММ(B2:B6), называет результат total и возвращает total, умноженное на 2. Имена существуют только внутри этой формулы.

Как использовать в LET больше одной переменной?

Добавьте ещё пары имени и значения перед итоговым вычислением: =LET(price;B2;qty;C2;price*qty). Следующее значение может использовать предыдущее имя, как в =LET(x;2;y;x*3;x+y), которая возвращает 8.

Почему моя формула LET возвращает #ИМЯ?

Либо в вашем Excel нет LET (она требует Excel 2021 или Microsoft 365), либо имя написано с опечаткой там, где оно используется, либо имя недопустимо, например похоже на адрес ячейки, как a1 или tax2026, или начинается с цифры.

Ускоряет ли LET формулы Excel?

Может ускорить. Без LET повторяющееся выражение, например одна и та же ПРОСМОТРX, записанная дважды внутри ЕСЛИ, вычисляется каждый раз, когда встречается. С LET оно вычисляется один раз, и результат используется повторно.

Иллюстрация языков программирования Coddy

Учитесь программировать с Coddy

НАЧАТЬ