Функция ЛЯМБДА (LAMBDA) в Excel и Google Sheets. Полное руководство

Функция ЛЯМБДА (LAMBDA) в Excel и Google Sheets Логические функции
Содержание
  1. Кратко
  2. Для чего нужна функция
  3. Совместимость
  4. Синтаксис
  5. Excel
  6. Google Sheets
  7. Разбор аргументов
  8. Excel
  9. Google Sheets
  10. Частые задачи
  11. Простые примеры
  12. Пример 1. Базовое использование в ячейке (Excel)
  13. Пример 2. Базовое использование в ячейке (Google Sheets)
  14. Практические сценарии использования
  15. Создание переиспользуемой функции через Диспетчер имён (Excel)
  16. Создание функции в Google Sheets (Именованные функции)
  17. Использование LAMBDA-помощников: MAP (базовый пример)
  18. Использование LAMBDA-помощников: MAP (продвинутый пример, Excel)
  19. Рекурсивная LAMBDA
  20. Частые ошибки пользователей
  21. Использование LAMBDA в неподдерживаемых версиях Excel
  22. Некорректное имя параметра (Google Sheets)
  23. Ошибка #CALC! — LAMBDA не вызвана (Excel)
  24. Ошибка #NUM! — циклическая или слишком глубокая рекурсия (Excel)
  25. Типичные ошибки (технические)
  26. #ИМЯ? (#NAME!) — Excel
  27. #CALC! (#CALC!) — Excel
  28. #NUM! (#NUM!) — Excel
  29. Ошибка в Google Sheets: невызванная LAMBDA
  30. Сравнение LAMBDA с альтернативами
  31. Полезные комбинации с другими функциями
  32. LAMBDA + MAP (базовый)
  33. LAMBDA + FILTER (продвинутый, Excel)
  34. LAMBDA + LET (Excel)
  35. ISOMITTED (только Excel Microsoft 365 и Excel 2024)
  36. Часто задаваемые вопросы
  37. Заключение

Кратко

Что делает:
Создаёт пользовательские функции прямо в формулах без использования VBA или скриптов. Позволяет определить аргументы и формулу для вычислений, а затем многократно использовать эту логику.

Где работает:
✅ Excel Microsoft 365
✅ Excel 2024
✅ Google Sheets
❌ Excel 2021 — не поддерживается
❌ Excel 2019 и старше — не поддерживается

Количество параметров LAMBDA:
Excel: до 253

Сложность:
★★☆☆☆ — Средняя (базовое использование)
★★★★☆ — Высокая (рекурсия и продвинутые сценарии)

Для чего нужна функция

ЛЯМБДА (LAMBDA) — это возможность создавать собственные функции в Excel и Google Sheets без написания макросов. Она решает несколько важных задач:

  1. Создание переиспользуемых функций — напишите сложную формулу один раз, дайте ей имя и используйте в любом месте книги как встроенную функцию.
  2. Повышение читаемости — вместо громоздких формул с повторяющимися фрагментами появляются понятные имена: =BOXVOLUME(B1;B2;B3) вместо длинной цепочки вычислений.
  3. Простота обновления — если логика меняется, достаточно отредактировать функцию в одном месте, и все ячейки, использующие её, обновятся автоматически.
  4. Рекурсивные вычисления — функция может вызывать саму себя, что открывает возможности для решения задач, которые ранее требовали VBA.
  5. Работа с массивами через LAMBDA-помощники — функции MAP, REDUCE, BYCOL, BYROW, SCAN, MAKEARRAY принимают LAMBDA в качестве аргумента, позволяя выполнять сложные операции с массивами.

Совместимость

ПлатформаПоддержка LAMBDAПримечание
Excel Microsoft 365✅ ДаПолная поддержка
Excel 2024✅ ДаПолная поддержка
Excel 2021❌ НетLAMBDA недоступна
Excel 2019 и старше❌ НетLAMBDA недоступна, Ошибка #ИМЯ?
Google Sheets✅ ДаПоддерживается

Синтаксис

Важно: Синтаксис LAMBDA различается между Excel и Google Sheets.

Excel

=ЛЯМБДА([параметр1]; [параметр2]; ...; вычисление)
=LAMBDA([parameter1]; [parameter2]; ...; calculation)

В Excel функция может объявлять несколько параметров непосредственно в LAMBDA. До 253 параметров.

Пример Excel: =ЛЯМБДА(a; b; a + b)(3; 4) — возвращает 7.

Google Sheets

=LAMBDA(name; formula_expression)

В Google Sheets синтаксис LAMBDA имеет вид LAMBDA(name; formula_expression). Для работы с несколькими массивами используются LAMBDA-помощники, например MAP, а LAMBDA также можно передавать в именованные функции.

Пример Google Sheets: =LAMBDA(salary; salary*0.3)(1000) — возвращает 300.

Разбор аргументов

Excel

АргументОбязательныйОписание
параметр1, параметр2, …❌ НетИмена переменных (аргументов), которые будут использоваться внутри функции. До 253 параметров.
вычисление (calculation)✅ ДаФормула, которая выполняет расчёт. Это последний аргумент, он возвращает результат функции.

Google Sheets

АргументОбязательныйОписание
name✅ ДаИмя, которое будет использоваться внутри formula_expression. Должно быть допустимым идентификатором.
formula_expression✅ ДаФормула для вычисления. Использует имена, объявленные в первом аргументе.

Частые задачи

ЗадачаExcelGoogle Sheets
Удвоение числа=ЛЯМБДА(a; a*2)(5) → 10=LAMBDA(a; a*2)(5) → 10
Расчёт налога=ЛЯМБДА(цена; цена*1.2)(B2)=LAMBDA(salary; salary*0.3)(1000)
Преобразование температур=ЛЯМБДА(temp; (temp-32)*5/9)(77)=LAMBDA(Temp; (5/9)*(Temp-32))(85)
Работа с массивами=MAP(A1:C2; ЛЯМБДА(x; x*x))=MAP(C5:C10; LAMBDA(salary; salary*0.3))

Простые примеры

Пример 1. Базовое использование в ячейке (Excel)

Задача: создать функцию для удвоения числа, протестировать её непосредственно в ячейке.

Формула (Excel): =ЛЯМБДА(x; x*2)(5)

Результат: 10

Объяснение: LAMBDA определяет функцию с параметром x и вычислением x*2. Затем в скобках (5) передаётся значение, и функция выполняется.

Пример 2. Базовое использование в ячейке (Google Sheets)

Задача: преобразовать градусы Фаренгейта в Цельсия.

Формула (Google Sheets): =LAMBDA(Temp; (5/9)*(Temp-32))(85)

Результат: 29.44

Практические сценарии использования

Создание переиспользуемой функции через Диспетчер имён (Excel)

Задача: создать функцию BOXVOLUME, которая будет вычислять объём параллелепипеда по трём сторонам, и использовать её многократно.

Шаг 1. Тестирование в ячейке:

=ЛЯМБДА(height; width; length; height * width * length)(B1; B2; B3)

Шаг 2. Создание именованной функции:

  • Перейдите в Формулы → Диспетчер имён → Создать
  • Имя: BOXVOLUME
  • Область: Книга
  • Примечание: Вычисляет объём параллелепипеда
  • Формула: =ЛЯМБДА(height; width; length; height * width * length)

Шаг 3. Использование:
=BOXVOLUME(B1; B2; B3)

Создание функции в Google Sheets (Именованные функции)

Задача: создать именованную функцию AVG_MONTHLY_TAX, которая применяет налог 30% ко всем значениям в диапазоне и возвращает средний налог.

Шаг 1. Создание именованной функции:

  • Данные → Именованные функции
  • Имя: AVG_MONTHLY_TAX
  • Аргументы: data_range, tax_function
  • Формула: =AVERAGE(tax_function(data_range))

Шаг 2. Использование:

=AVG_MONTHLY_TAX(C5:C10; LAMBDA(salary; salary*0.3))

Схема работы:

C5:C10                → данные
   ↓
LAMBDA(salary; salary*0.3) → применяет налог к каждому значению
   ↓
AVERAGE              → возвращает средний налог

Использование LAMBDA-помощников: MAP (базовый пример)

Задача: применить расчёт налога 30% ко всем значениям в диапазоне.

Формула (Google Sheets):

=MAP(C5:C10; LAMBDA(salary; salary*0.3))

Результат: массив значений налога для каждой зарплаты в диапазоне.

Объяснение: MAP применяет LAMBDA к каждому элементу массива C5:C10.

Использование LAMBDA-помощников: MAP (продвинутый пример, Excel)

Задача: отфильтровать строки по нескольким условиям.

Формула (Excel):

=ФИЛЬТР(D2:E11;
    MAP(D2:D11; E2:E11;
        ЛЯМБДА(size; color;
            И(size = "Large"; color = "Red")
        )
    )
)

Объяснение: MAP создаёт массив логических значений для каждой строки. FILTER использует этот массив для отбора нужных строк.

Рекурсивная LAMBDA

Задача: создать рекурсивную функцию для вычисления факториала числа.

Шаг 1. Создание LAMBDA в Диспетчере имён (Excel):

=ЛЯМБДА(n;
    ЕСЛИ(n <= 1; 1; n * ФАКТОРИАЛ_LAMBDA(n - 1))
)

Шаг 2. Использование:
=ФАКТОРИАЛ_LAMBDA(5)120

Предупреждение: Если функция вызывает саму себя циклически, возвращается ошибка #NUM!. Всегда добавляйте терминальное условие для остановки рекурсии.

Частые ошибки пользователей

Использование LAMBDA в неподдерживаемых версиях Excel

Ситуация: пользователь вводит =LAMBDA(x; x*2)(5) в Excel 2021 и получает ошибку #ИМЯ? или ошибку вставки функции.

Решение: LAMBDA доступна только в Excel Microsoft 365 и Excel 2024. В Excel 2021 функция недоступна.

Некорректное имя параметра (Google Sheets)

Ситуация: =LAMBDA(3; x+1)(3) — вызывает ошибку, так как первый аргумент не является допустимым идентификатором.

Правила для идентификаторов в Google Sheets:

  • Не может быть диапазоном (A1, A2)
  • Не может содержать пробелы или специальные символы (точки и подчёркивания допускаются)
  • Не может начинаться с цифры (например, 9hello)

Ошибка #CALC! — LAMBDA не вызвана (Excel)

Ситуация: в ячейку введена только LAMBDA без передачи аргументов: =ЛЯМБДА(a; b; a * b).

Решение: добавьте вызов функции с аргументами: =ЛЯМБДА(a; b; a * b)(4; 6).

Исключение: при создании именованной функции в Диспетчере имён вызов не требуется.

Ошибка #NUM! — циклическая или слишком глубокая рекурсия (Excel)

Ситуация: рекурсивная LAMBDA вызывает саму себя без терминального условия или превышает лимит рекурсивных вызовов.

Решение: всегда включайте условие остановки (base case). Для рекурсивных функций сначала тестируйте с малыми входными значениями.

Типичные ошибки (технические)

#ИМЯ? (#NAME!) — Excel

Причина: использование LAMBDA в неподдерживаемой версии Excel (Excel 2021, 2019 и старше). В Excel 2021 при попытке использовать LAMBDA функция может вернуть ошибку #ИМЯ?.

Решение: используйте Excel Microsoft 365 или Excel 2024.

#CALC! (#CALC!) — Excel

Причина: LAMBDA определена, но не вызвана.

Пример: =LAMBDA(x; x*2) — без вызова возвращает #CALC!.

Решение: добавьте вызов функции с аргументами: =LAMBDA(x; x*2)(5).

#NUM! (#NUM!) — Excel

Причина: циклический вызов LAMBDA внутри себя или слишком глубокая рекурсия.

Решение: проверьте наличие терминального условия в рекурсивной функции.

Ошибка в Google Sheets: невызванная LAMBDA

Причина: LAMBDA не вызвана или в именованной функции не передан правильный вызов.

Пример в именованной функции:

=tax_calculator_function / count(range)

вместо

=tax_calculator_function(sum(range)) / count(range)

Сравнение LAMBDA с альтернативами

КритерийЛЯМБДА (LAMBDA)VBA / Google Apps ScriptИменованные диапазоны
ДоступностьExcel 365+, Google SheetsВсе версии (требует разрешения макросов)Все версии
Сложность созданияСредняя (формулы)Высокая (требует программирования)Низкая
ПереиспользуемостьВысокая (в книге)Высокая (в книге и глобально)Средняя
РекурсияДаДаНет
Работа с массивамиДа (через LAMBDA-помощники)ДаНет
БезопасностьБезопасна (не требует разрешений)Требует доверия к макросамБезопасна

Полезные комбинации с другими функциями

LAMBDA + MAP (базовый)

Excel: =MAP(A1:C2; ЛЯМБДА(a; ЕСЛИ(a>4; a*a; a)))

Google Sheets: =MAP(C5:C10; LAMBDA(salary; salary*0.3))

LAMBDA + FILTER (продвинутый, Excel)

=ФИЛЬТР(D2:E11; MAP(D2:D11; E2:E11; ЛЯМБДА(s;c; И(s="Large"; c="Red"))))

LAMBDA + LET (Excel)

=ЛЯМБДА(продажи;
    ПУСТЬ(
        бонус_база; ЕСЛИ(продажи > 10000; продажи - 10000; 0);
        бонус; бонус_база * 0.1;
        ЕСЛИ(продажи > 15000; бонус * 1.2; бонус)
    )
)(12000)

ISOMITTED (только Excel Microsoft 365 и Excel 2024)

Задача: создать функцию с необязательным аргументом и обработать его пропуск.

Формула:

=ЛЯМБДА(x; y; ЕСЛИ(ISOMITTED(y); "Отсутствует второй аргумент"; x + y))(1;)

Результат: "Отсутствует второй аргумент"

Важно: ISOMITTED работает только в Excel для Microsoft 365 и Excel 2024.

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

Вопрос: В каких версиях Excel работает ЛЯМБДА (LAMBDA)?
Ответ: В Excel Microsoft 365 и Excel 2024. В Excel 2021 и старше — нет. В Google Sheets — поддерживается.

Вопрос: Можно ли использовать LAMBDA без VBA?
Ответ: Да, это основное преимущество LAMBDA — создание пользовательских функций с помощью стандартного синтаксиса формул.

Вопрос: Как сохранить LAMBDA для повторного использования?
Ответ: В Excel через Формулы → Диспетчер имён → Создать. В Google Sheets через Данные → Именованные функции.

Вопрос: Можно ли сделать рекурсивную функцию с LAMBDA?
Ответ: Да. Для этого функция должна ссылаться сама на себя через имя, под которым она сохранена в Диспетчере имён. Обязательно наличие терминального условия.

Вопрос: Сколько аргументов можно передать в LAMBDA в Excel?
Ответ: До 253 аргументов.

Вопрос: В чём разница между LAMBDA в Excel и Google Sheets?
Ответ: В Excel LAMBDA может принимать несколько параметров напрямую. В Google Sheets LAMBDA имеет вид LAMBDA(name; formula_expression); для работы с несколькими массивами используются LAMBDA-помощники, например MAP, а LAMBDA также можно передавать в именованные функции.

Заключение

ЛЯМБДА (LAMBDA) — это инструмент, который позволяет создавать собственные функции прямо в Excel и Google Sheets. Она делает формулы более читаемыми, переиспользуемыми и лёгкими в поддержке.

Ключевые правила:

  1. Версии: LAMBDA доступна в Excel Microsoft 365, Excel 2024 и Google Sheets. Не работает в Excel 2021 и старше.
  2. Синтаксис отличается: Excel позволяет несколько параметров в LAMBDA; Google Sheets использует синтаксис LAMBDA(name; formula_expression) и LAMBDA-помощники для массивов.
  3. Для многократного использования сохраняйте LAMBDA как именованную функцию через Диспетчер имён (Excel) или Именованные функции (Google Sheets).
  4. Для рекурсивных функций всегда добавляйте терминальное условие, чтобы избежать циклической рекурсии и ошибки #NUM!.
  5. ISOMITTED для обработки пропущенных аргументов доступна только в Excel Microsoft 365 и Excel 2024.

Освойте ЛЯМБДА — и ваши электронные таблицы станут мощнее, а формулы — понятнее и компактнее. В сочетании с функциями ПУСТЬ (LET), ФИЛЬТР (FILTER) и LAMBDA-помощниками (MAP, REDUCE, BYCOL, BYROW) LAMBDA превращает Excel и Google Sheets в среду для работы с данными без необходимости изучать сложные языки программирования.

Оцените статью
Формулион
Добавить комментарий