Создание пользовательских функций в Excel с помощью ЛЯМБДА (LAMBDA) и Advanced Formula Environment
Функция ЛЯМБДА (LAMBDA) в Excel 365 позволяет создавать собственные, многократно используемые формулы, что особенно полезно для сложных расчетов. В этой статье мы рассмотрим, как использовать ЛЯМБДА (LAMBDA) вместе с надстройкой Advanced Formula Environment для эффективной разработки и управления пользовательскими функциями.
Функция ЛЯМБДА (LAMBDA), названная в честь лямбда-исчисления Алонзо Черча, открывает новые возможности для автоматизации расчетов в Excel, заменяя необходимость в макросах VBA для многих задач.
Установка Advanced Formula Environment
Для удобной работы с ЛЯМБДА (LAMBDA)-функциями Microsoft разработала надстройку Excel Labs, в которую входит редактор Advanced Formula Environment (AFE).
- На вкладке Главная выберите Надстройки.
- В открывшемся диалоговом окне введите в строке поиска
Excel Labsи нажмитеEnter. - Нажмите кнопку Добавить, затем Продолжить. Значок Excel Labs появится справа на вкладке Главная.
- Откройте надстройку Excel Labs и нажмите кнопку Открыть под пунктом Advanced Formula Environment.
В панели AFE есть три основные кнопки: + для создания новой ЛЯМБДА (LAMBDA), Sync для сохранения функций в диспетчере имен и Import для импорта из GitHub Gist.
Создание первой ЛЯМБДА (LAMBDA)-функции
Рассмотрим простой пример — создание функции для расчета гипотенузы прямоугольного треугольника по теореме Пифагора.
- В редакторе AFE нажмите
+и выберите Function. - Введите имя функции, например,
HYP. - В поле формулы введите:
=ЛЯМБДА(a, b, КОРЕНЬ(a^2 + b^2)) (=LAMBDA(a, b, SQRT(a^2 + b^2))) - Нажмите Add. Важно: функция еще не доступна в книге. Необходимо нажать кнопку Sync, чтобы синхронизировать ее с диспетчером имен Excel.
После синхронизации функцию можно использовать в ячейках, как любую встроенную. Excel будет показывать подсказки с именами аргументов (a и b).
Импорт готовых ЛЯМБДА (LAMBDA) из GitHub
Сообщество Excel активно делится полезными ЛЯМБДА (LAMBDA)-функциями. Вы можете импортировать их напрямую в AFE.
- В панели AFE нажмите кнопку Import.
- Введите URL Gist, например:
https://gist.github.com/chgrossMSFT/d172fd552cf6893bcdc7942223cb0e55 - Опционально укажите пространство имен (например,
MSFT), чтобы группировать функции. - После импорта нажмите Sync, чтобы добавить функции в диспетчер имен.
Функции с пространством имен будут отображаться в автозаполнении формул, начиная с =MSFT. (=MSFT.).
Перенос ЛЯМБДА (LAMBDA) между книгами
ЛЯМБДА (LAMBDA)-функции хранятся в диспетчере имен конкретной книги. Для их переноса в другую книгу можно использовать простой прием:
- В книге-источнике добавьте новый пустой лист.
- Скопируйте этот лист в целевую книгу.
- Все имена (включая ЛЯМБДА (LAMBDA)-функции) из исходной книги будут скопированы вместе с листом.
Преимущества ЛЯМБДА (LAMBDA) перед VBA
- Кроссплатформенность: ЛЯМБДА (LAMBDA) работает в Excel Online, на iPad и Android, где VBA недоступен.
- Безопасность: Не требует включения макросов.
- Простота использования: Интегрированы в язык формул Excel с поддержкой Intellisense.
Дополнительные инструменты: ЛЯМБДА (LAMBDA) Explorer
Для отладки сложных, особенно рекурсивных ЛЯМБДА (LAMBDA)-функций, MVP Чарльз Уильямс разработал бесплатную надстройку ЛЯМБДА (LAMBDA) EXPLORER. Она позволяет пошагово отслеживать вычисления. Скачать бета-версию можно с сайта разработчика.
Использование ЛЯМБДА (LAMBDA) и Advanced Formula Environment кардинально меняет подход к созданию сложных расчетов в Excel, делая его более гибким, мощным и доступным на всех платформах.