С помощью функции ЛЯМБДА можно создавать пользовательские функции для повторного использования и вызывать их по понятным именам. Новая функция доступна во всей книге и вызывается так же, как и основные функции Excel.
Вы можете создать функцию для часто используемой формулы, избавиться от необходимости копировать и вставлять эту формулу (что может приводить к ошибкам), а также эффективно добавлять собственные функции в основную библиотеку функций Excel. Кроме того, функция LAMBDA не требует VBA, макросов или JavaScript, поэтому ее могут использовать также пользователи, не являющиеся программистами.
Синтаксис
=LAMBDA([параметр1; параметр2; …;] вычисление)
| Аргумент | Описание |
|---|---|
| параметр | Значение, которое вы хотите передать функции, например ссылку на ячейку, строку или число. Вы можете ввести до 253 параметров. Этот аргумент является необязательным. |
| вычисление | Формула, которую необходимо выполнить и вывести в качестве результата выполнения функции. Это должен быть последний аргумент и он должен возвращать результат. Это обязательный аргумент. |
Замечания
- Имена и параметры функции LAMBDA соответствуют правилам синтаксиса Excel в отношении именования, за одним исключением: не используйте точку (.) в имени параметра. Дополнительные сведения см. в статье Имена в формулах.
- При создании функции LAMBDA, как и в случае с любой основной формулой Excel, необходимо придерживаться рекомендаций, например, передавать правильное количество и тип аргументов, следить за соответствием открывающих и закрывающих скобок и вводить числа в неформатированном виде. Кроме того, при использовании команды "Оценить " Excel немедленно возвращает результат функции LAMBDA, и вы не можете войти в него. Дополнительные сведения см. в статье Обнаружение ошибок в формулах.
Ошибки
- В случае ввода более 253 параметров Excel возвращает ошибку "#ЗНАЧ!".
- В случае передачи функции LAMBDA неправильного количества аргументов Excel возвращает ошибку "#ЗНАЧ!".
- Если вы вызываете функцию LAMBDA из самой себя, и вызов является циклическим, Excel может вернуть #NUM! ошибка, если слишком много рекурсивных вызовов.
- Если создать функцию LAMBDA в ячейке, не вызвав ее также из самой ячейки, Excel возвращает ошибку "#ВЫЧИС!".
Создание функции LAMBDA
Ниже описана пошаговая процедура, выполнив которую, вы обеспечите правильную работу функции LAMBDA, которая будет выполняться аналогично основной функции Excel.
Шаг 1. Проверка формулы
Убедитесь в правильности работы формулы, используемой в аргументе вычисления . Это крайне важно, так как при создании функции LAMBDA вам необходимо обеспечить, чтобы формула работала надлежащим образом, и в случае возникновения ошибок или непредвиденного поведения вы могли быть уверены, что не формула является тому причиной. Дополнительные сведения см. в статьях " Полные сведения о формулах в Excel " и " Создание простой формулы в Excel".
Шаг 2. Создание функции LAMBDA в ячейке
Рекомендуется создавать и испытывать свою функцию LAMBDA в ячейке, чтобы убедиться в правильности ее работы, включая определение и передачу параметров. Чтобы избежать ошибки #CALC!, добавьте вызов функции LAMBDA, чтобы немедленно вернуть результат:
=функция LAMBDA ([параметр1; параметр2; ...];вычисление) (вызов функции)
В приведенном ниже примере возвращается значение 2.
=LAMBDA(number, number + 1)(1)
Шаг 3. Добавление функции LAMBDA в диспетчер имен
Завершив создание функции LAMBDA, переместите ее в диспетчер имен для окончательного определения. Таким образом вы сможете присвоить функции LAMBDA понятное имя, добавить описание и обеспечить возможность ее повторного использования в любой ячейке книги. Вы также можете управлять функцией LAMBDA точно так же, как и любым именем, например, строковой константы, диапазона ячеек или таблицы.
Последовательность действий
Выполните одно из следующих действий:
- В Excel для Windows выберите пункт "Диспетчер именформул".>
- В Excel для Mac выберите "Формулы">Задать имя.
Выберите Новое, а затем введите необходимые данные в диалоговом окне Новое имя:
Имя: Введите имя функции LAMBDA. Область: Книга указывается по умолчанию. Также доступны отдельные листы, за исключением Excel для Интернета. Примечание: Необязательно, но настоятельно рекомендуется. Введите до 255 знаков. Кратко опишите назначение функции, укажите правильное количество и тип аргументов.
Отображается в диалоговом окне "Вставка функции " и в качестве подсказки (вместе с аргументом "Вычисление ") при вводе формулы и использовании функции автозаполнения формул (также известной как Intellisense).Объект ссылки: Введите функцию LAMBDA. Например:
Чтобы создать функцию LAMBDA, нажмите ОК.
Чтобы закрыть диалоговое окно Диспетчер имен, нажмите Закрыть.
Дополнительные сведения см. в статье Использование Диспетчера имен.
Примеры
Пример 1. Преобразование градусов по Фаренгейту в градусы Цельсия
Определите в Диспетчере имен следующие данные:
| Имя: | ToCelsius |
|---|---|
| Область: | Книга |
| Примечание: | Преобразование градусов по Фаренгейту в градусы Цельсия |
| Объект ссылки: | =LAMBDA(temp; (5/9) * (Temp-32)) |
Скопируйте данные примера из таблицы ниже и вставьте их в ячейку A1 нового листа Excel. При необходимости измените ширину столбцов, чтобы видеть все данные.
| Данные | |
|---|---|
| 104 | |
| 86 | |
| 68 | |
| 50 | |
| 32 | |
| Формула | Результат |
| =TOCELSIUS(A2) | 40 |
| =TOCELSIUS(A3) | 30 |
| =TOCELSIUS(A4) | 20 |
| =TOCELSIUS(A5) | 10 |
| =TOCELSIUS(A6) | 0 |
Пример 2. Поиск гипотенузы
Определите в Диспетчере имен следующие данные:
| Имя: | Гипотенуза |
|---|---|
| Область: | Книга |
| Примечание: | Возвращает длину гипотенузы прямоугольного треугольника |
| Объект ссылки: | =LAMBDA(a; b; КОРЕНЬ((a^2+b^2))) |
Скопируйте данные примера из таблицы ниже и вставьте их в ячейку A1 нового листа Excel. При необходимости измените ширину столбцов, чтобы видеть все данные.
| Данные | |
|---|---|
| 3 | 4 |
| 5 | 12 |
| 7 | 24 |
| 9 | 40 |
| Формула | Результат |
| =HYPOTENUSE(A2,B2) | 5 |
| =HYPOTENUSE(A3,B3) | 13 |
| =HYPOTENUSE(A4,B4) | 25 |
| =HYPOTENUSE(A5,B5) | 41 |
Пример 3. Подсчет слов
Определите в Диспетчере имен следующие данные:
| Имя: | CountWords |
|---|---|
| Область: | Книга |
| Примечание: | Возвращает количество слов в текстовой строке |
| Объект ссылки: | =LAMBDA(текст; ДЛСТР(СЖПРОБЕЛЫ(текст)) - ДЛСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(текст); " "; "")) + 1) |
Скопируйте данные примера из таблицы ниже и вставьте их в ячейку A1 нового листа Excel. При необходимости измените ширину столбцов, чтобы видеть все данные.
| Данные | |
|---|---|
| Что-то злое к нам спешит. | |
| Пришел, увидел, победил. | |
| Съешь же еще этих мягких французских булок, да выпей чаю. | |
| Используй Силу, Люк! | |
| Формула | Результат |
| =COUNTWORDS(A2) | 5 |
| =COUNTWORDS(A3) | 6 |
| =COUNTWORDS(A4) | 9 |
| =COUNTWORDS(A5) | 4 |
Пример 4. Определение даты Дня Благодарения
Определите в Диспетчере имен следующие данные:
| Имя: | ThanksgivingDate |
|---|---|
| Область: | Книга |
| Примечание: | Возвращает дату Дня Благодарения в США в текущем году |
| Объект ссылки: | =LAMBDA(год; ТЕКСТ(ДАТА(год; 11; ВЫБОР(ДЕНЬНЕД(ДАТА(год; 11; 1)); 26; 25; 24; 23; 22; 28; 27)); "mm/dd/yyyy")) |
Скопируйте данные примера из таблицы ниже и вставьте их в ячейку A1 нового листа Excel. При необходимости измените ширину столбцов, чтобы видеть все данные.
| Данные | |
|---|---|
| 2020 | |
| 2021 г. | |
| 2022 | |
| 2023 | |
| 2024 | |
| Формула | Результат |
| =THANKSGIVINGDATE(A2) | 11/26/2020 |
| =THANKSGIVINGDATE(A3) | 11/25/2021 |
| =THANKSGIVINGDATE(A4) | 11/24/2022 |
| =THANKSGIVINGDATE(A5) | 11/23/2023 |
| =THANKSGIVINGDATE(A6) | 11/28/2024 |
Дополнительные сведения
Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.