С помощью функции ЛЯМБДА можно создавать пользовательские функции для повторного использования и вызывать их по понятным именам. Новая функция доступна во всей книге и вызывается так же, как и основные функции Excel.
Вы можете создать функцию для часто используемой формулы, избавиться от необходимости копировать и вставлять эту формулу (что может приводить к ошибкам), а также эффективно добавлять собственные функции в основную библиотеку функций Excel. Кроме того, для функции LAMBDA не требуются VBA, макросы или JavaScript, поэтому ее использование также может быть полезно для программистов.
Синтаксис
=LAMBDA([параметр1; параметр2; …;] вычисление)
| Аргумент | Описание |
|---|---|
| параметр | Значение, которое вы хотите передать функции, например ссылку на ячейку, строку или число. Вы можете ввести до 253 параметров. Этот аргумент является необязательным. |
| вычисление | Формула, которую необходимо выполнить и вывести в качестве результата выполнения функции. Это должен быть последний аргумент и он должен возвращать результат. Это обязательный аргумент. |
Замечания
- Лямбда-имена и параметры соответствуют правилам синтаксиса Excel для имен, за одним исключением: не используйте точку (.) в имени параметра. Дополнительные сведения см. в статье Имена в формулах.
- При создании функции LAMBDA, как и в случае с любой основной формулой Excel, необходимо придерживаться рекомендаций, например, передавать правильное количество и тип аргументов, следить за соответствием открывающих и закрывающих скобок и вводить числа в неформатированном виде. Кроме того, при использовании команды Evaluate Excel немедленно возвращает результат функции ЛЯМБДА, и вы не сможете войти в нее. Дополнительные сведения см. в статье Обнаружение ошибок в формулах.
Ошибки
- В случае ввода более 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 или получить поддержку в сообществах.