Определение пользовательских функций с помощью LAMBDA
Превращайте вычисление в именованную функцию для повторного использования.
«Определение пользовательских функций с помощью LAMBDA» — бесплатный урок Excel Formulas Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Excel Formulas Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Excel Formulas Academy содержит 4 уроков всего.
Создание собственной функции
В Excel есть сотни функций, таких как SUM и XLOOKUP. Но что делать, если нужной функции не существует, например для преобразования градусов Цельсия в градусы Фаренгейта?
Функция LAMBDA позволяет определить собственную многоразовую функцию, используя только формулы, без программирования. Вы описываете входные данные (называемые параметрами) и вычисление, а Excel работает с этой функцией так же, как со встроенной.
LAMBDA доступна в Microsoft 365 и Google Таблицах. На этом уроке Вы научитесь превращать вычисление в многоразовую именованную функцию.
Структура LAMBDA
У LAMBDA есть две части: список имён параметров и итоговое вычисление, в котором они используются.
Структура выглядит так же, как у LET: каждый аргумент, кроме последнего, является именем параметра, а последний аргумент — формулой, выполняющей вычисление.
Сама по себе LAMBDA ничего не делает, пока Вы не передадите ей значения, подобно тому как рецепт ничего не даёт, пока Вы не приготовите блюдо из ингредиентов.
=LAMBDA(parameter1, parameter2, calculation)Непосредственный вызов LAMBDA
Чтобы сразу проверить LAMBDA, заключите её в скобки и сразу после этого передайте значения. Это называется вызовом внутри формулы.
Здесь мы определяем LAMBDA, которая принимает x и возвращает x*2, а затем сразу вызываем её со значением 5. Результат равен 10. Конструкция (5) в конце передаёт значение параметру x.
Это самый быстрый способ убедиться, что логика LAMBDA работает, прежде чем присваивать ей имя.
=LAMBDA(x, x*2)(5)Практический пример: преобразование градусов Цельсия в градусы Фаренгейта
Давайте создадим что-нибудь полезное. Чтобы перевести градусы Цельсия в градусы Фаренгейта, нужно умножить значение на 1,8 и прибавить 32.
Мы определяем LAMBDA с одним параметром c, а затем вызываем её со значением из ячейки A2. Если в A2 находится число 20, результат равен 68.
Это уже работает как пользовательская функция, но каждый раз вводить всю LAMBDA утомительно. Скоро мы присвоим ей имя.
=LAMBDA(c, c*1.8 + 32)(A2)Несколько параметров
LAMBDA может принимать несколько входных значений. Просто перечислите имена всех параметров перед итоговым вычислением.
Вот функция, которая вычисляет площадь прямоугольника по значениям width и height. Мы вызываем её внутри формулы со значениями 4 и 5 и получаем 20.
Параметры сопоставляются по позиции: первое значение передаётся первому параметру, второе — второму и так далее.
=LAMBDA(width, height, width*height)(4, 5)Присвоение имени LAMBDA в диспетчере имён
Настоящая сила LAMBDA раскрывается, когда Вы присваиваете ей имя, чтобы вызывать её как встроенную функцию.
В Excel откройте раздел Формулы, Диспетчер имён, Создать. Введите имя, например ToFahrenheit, и вставьте LAMBDA (без значений для непосредственного вызова) в поле Относится к.
После этого Вы сможете использовать =ToFahrenheit(A2) в любой ячейке книги так же, как SUM. Именованные LAMBDA подробно рассматриваются в следующем уроке.
=LAMBDA(c, c*1.8 + 32)Объединение LAMBDA с LET
Внутри LAMBDA можно использовать LET, чтобы присваивать имена промежуточным шагам и поддерживать сложную логику в порядке.
Эта функция принимает значения price и rate, вычисляет tax как именованный промежуточный результат и возвращает итоговую сумму. Благодаря LET формула выглядит понятнее.
=LAMBDA(price, rate, LET(tax, price*rate, price + tax))(100, 0.2)LAMBDA в Google Таблицах
Google Таблицы поддерживают LAMBDA с тем же синтаксисом. Вы определяете параметры и вычисление и можете вызывать функцию внутри формулы таким же образом.
В Google Таблицах нет диспетчера имён, но в них есть раздел Именованные функции в меню Данные, Именованные функции, который выполняет ту же задачу. Тело LAMBDA, которое Вы записываете, в Excel выглядит так же.
=LAMBDA(c, c*1.8 + 32)(A2)Зачем нужна LAMBDA
LAMBDA позволяет один раз задать рабочую логику и повторно использовать её где угодно:
- Больше не нужно копировать и вставлять одну и ту же сложную формулу
- Исправьте логику в одном месте — и все её использования обновятся
- Понятные имена, такие как
ToFahrenheit, сами объясняют назначение
Так электронная таблица превращается в место, где Вы можете создать небольшую библиотеку собственных функций, адаптированных под Вашу работу.
Распространённая ошибка
Если ввести LAMBDA в ячейку, не вызвав её, Excel вернёт ошибку #CALC! или покажет текст функции. Это ожидаемое поведение.
Для работы LAMBDA нужны значения. Добавьте в конце вызов внутри формулы, например (A2), или сохраните её как именованную функцию и вызывайте имя с аргументами. LAMBDA без вызова — это всего лишь определение, ожидающее использования.
=LAMBDA(x, x*2)(5)Итоги на данный момент
Теперь Вы знаете, что LAMBDA определяет параметры и вычисление и ведёт себя как пользовательская функция после получения значений.
- Проверяйте логику с помощью вызова внутри формулы:
=LAMBDA(x, x*2)(5) - Поддерживайте несколько параметров, сопоставляемых по позиции
- Объединяйте LAMBDA с LET для понятного описания внутренних шагов
- Присваивайте функции имя в диспетчере имён, чтобы использовать её во всей книге
Далее Вы узнаете, как применять LAMBDA ко всему массиву с помощью MAP и REDUCE.
Быстрая проверка
Проверьте, насколько хорошо Вы поняли, как вызывается LAMBDA.
Итоги: пользовательские функции с LAMBDA
LAMBDA позволяет создавать собственные функции только из формул.
- Синтаксис: имена параметров, за которыми следует итоговое вычисление
- Вызывайте функцию внутри формулы со значениями для проверки или присваивайте ей имя для повторного использования
- Параметры сопоставляются с аргументами по позиции
- Функция одинаково работает в Excel и Google Таблицах
- LAMBDA без вызова требует значений, иначе возвращает ошибку #CALC!
Теперь Вы можете превратить повторяющуюся логику в удобный именованный инструмент. Далее: применение LAMBDA к массивам с помощью MAP и REDUCE.
=LAMBDA(c, c*1.8 + 32)(A2)Часто задаваемые вопросы
Урок «Определение пользовательских функций с помощью LAMBDA» бесплатный?
Да — полный текст урока «Определение пользовательских функций с помощью LAMBDA» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Excel Formulas Academy, подпишись на CoddyKit PRO. Курс Excel Formulas Academy содержит 4 уроков всего.
Чему я научусь в уроке «Определение пользовательских функций с помощью LAMBDA»?
Превращайте вычисление в именованную функцию для повторного использования. Ты практикуешь Excel Formulas Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Excel Formulas Academy?
Предыдущий опыт не требуется. Excel Formulas Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Определение пользовательских функций с помощью LAMBDA»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Excel Formulas Academy?
Да. Каждый урок Excel Formulas Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Именование шагов с помощью LET
- Определение пользовательских функций с помощью LAMBDA
- Циклы с помощью MAP и REDUCE
- Более понятные формулы с именованными LAMBDA