Microsoft позволит создавать пользовательские функции в Excel

29.12.2020     

Разработчики Microsoft добавили в Excel новую функцию – LAMBDA – для превращения пользовательских формул в многоразовые функции. Пользователи смогут создавать правила для управления данными внутри Excel, так же, как и в любом другом языке – Java, PHP или Python. Разбираемся, для чего нужна новая функция, и как ей пользоваться.

Улучшение Excel как платформы программирования 

Разработчики Microsoft признают: чтобы считаться полноценной платформой для программирования, Excel не хватает ключевых функций. Например, переменных и пользовательских типов данных. 

«Формулы Excel в мире часто применяются в разработке, но при этом в Excel отсутствует один из основных принципов программирования – возможность использовать язык формул для определения ваших собственных функций многократного использования», – заявили в Microsoft. 

«Идея функции LAMBDA заключается в том, что она может получать массив, а не только одно значение. И она может возвращать массив», – пояснил Брайан Джонс, руководитель группы программ Excel. 

«Мы также улучшаем сам синтаксис формул», – добавил Джонс. Иногда действительно встречаются мега-формулы, которые становятся слишком сложными для чтения и использования. С этой проблемой справлялась функция LET для объявления переменных – формулы стали более понятными. Но, как выяснилось, переменные также ускоряют выполнение формул. «То, как написана формула, может сделать ее намного более эффективной», – объяснили в Microsoft.

 

 

Многоразовые пользовательские функции

В работе с формулами в Excel есть сложности. Например, пользователи часто получают сложные формулы, которые многократно используют на листе. Для этого их приходится копировать и вставлять. Повторы и сложные комбинации затрудняют чтение и понимание происходящего, увеличивают риск ошибок и затрудняют их поиск и исправление. 

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

Вот как это выглядит на практике. Можно взять любую формулу, созданную в Excel, заключить ее в функцию LAMBDA и дать ей имя, например, «MYFUNCTION». Затем в любом месте листа можно будет обратиться к MYFUNCTION, повторно используя эту пользовательскую функцию на всем листе.

 

 

Пример многоразовой функции для списка идентификаторов станций, состояние которых закодировано в идентификаторе.

 

Поместите '= LAMBDA' в начало формулы, и она станет функцией, которую вы можете повторно использовать в другом месте рабочего листа, не беспокоясь об изменении ссылок при копировании и вставке формулы.

 

 

Важно, что создать LAMBDA-функцию можно в пользовательском режиме с помощью менеджера имен, вызываемого из панели формул.

 

 

Если позже вы обнаружите ошибку в исходной формуле, вам нужно исправить ее только один раз в LAMBDA, вместо того, чтобы искать каждый раз, когда вы использовали формулу, и вносить одно и то же изменение.

Рекурсия 

До появления функции LAMBDA в Excel пользователь не мог повторить набор логики с динамически определяемым интервалом. Например, для решения рекурсивных уравнений, в которых переменная появляется по обе стороны от знака равенства, в Excel требовалась преднамеренная циклическая ссылка. Этот метод использует итеративные вычисления, но по умолчанию в Excel такой опции не было. Интервал настраивается вручную – тогда Excel выполнит пересчет и имитирует рекурсию, но для языка формул такая работа не свойственна.

Функция LAMBDA решает эту проблему, разрешая вызывать функцию внутри функции. Если вы, например, создаете LAMBDA с именем MYFUNCTION, вы можете вызвать MYFUNCTION в пределах определения MYFUNCTION. 

Вы также можете создавать более сложные функции, вызывая последовательность простых функций – очень распространенный метод программирования. 

 

Пример функции с именем REPLACECHARS, которая ссылается на себя, позволяя перебирать список удаляемых символов

 

Массивы и типы

Функции Excel также могут принимать типы данных и массивы в качестве аргументов, и возвращать результаты в виде типов данных и массивов. То же относится и к LAMBDA.

Динамические массивы. Вместо того, чтобы передавать в функцию одно значение, можно передавать массив значений, а функции также могут возвращать массивы значений.

Типы данных – значение, хранящееся в ячейке, больше не является просто строкой или числом. Одна ячейка может содержать расширенный тип данных с большим набором свойств.

Синтаксис

= LAMBDA ([параметр1, параметр2,…,] вычисление)

Параметр – это значение, которое передается функции, например ссылка на ячейку, строка или число. LAMBDA допускает до 253 параметров. Это необязательный аргумент.

Вычисление – формула, которую нужно выполнить и вернуть как результат функции. Это должен быть последний аргумент, и он должен возвращать результат. Этот аргумент обязателен.

Интерфейс Excel для программирования

Несмотря на изменения, Excel не получит то, что программисты могли бы признать отладчиком, вроде Microsoft Visual Studio Debugger или Android SDK. А добавление дополнительных формальных конструкций языка программирования не означает превращение Excel в инструмент для опытных разработчиков. Но если раньше сложные функции приходилось писать в Python или JS и «прикручивать» руками к Excel, то сейчас LAMBDA позволит делать то же самое внутри Excel и расширит функционал для продвинутых пользователей.

В настоящее время функция LAMBDA остается в стадии бета-тестирования, и Microsoft еще не указала, когда она станет общедоступна. LAMBDA постепенно развертывается для сборок в бета-канале Office Insider. Тестирование функции будет присутствовать во всех подписках на Office 365 и Microsoft 365, которые включают Excel для Microsoft Windows и Mac.

Приобрести продукты Microsoft 365 на Инфостарте


Автор:
Сергей Кравченко Обозреватель


Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. sulfur17 35 01.01.21 14:36 Сейчас в теме
Но ведь и так можно было делать свои функции макросами на VBA.
maksa2005; catv; +2 Ответить
2. user1503726 01.01.21 14:48 Сейчас в теме
Жаль, что диалоговое окно с модулем или вообще элемент метаданных от 1с нельзя открыть в екселе, или файлы выгрузки конфигурации 8ки это позволяют, а отредактированные диалоги экселя можно сохранить как файл выгрузки метаданных?
Оставьте свое сообщение

См. также

Российский блогер протестировал ПК с процессором Baikal-M

Новость ИТ-новость Микроэлектроника

Компьютер на базе процессора Baikal не найдешь в обычном магазине электроники. Но интересно, что умеет такая техника и подойдет ли она для решения повседневных задач. Блогер Сергей Вильянов протестировал такой ПК и поделился впечатлениями.

14.05.2021    2539    user1015646    3       

Популярный фреймворк для веб-разработки Bootstrap обновлен до пятой версии

Новость Интернет Интерфейсы ИТ-новость

Фреймворк для разработки сайтов и веб-приложений Bootstrap получил крупное обновление. В пятой версии улучшена работа с формами, доработана документация, добавлена кастомизация CSS.

14.05.2021    1245    VKuser24342747    0       

Microsoft запатентовала биометрический инструмент для анализа здоровья работников

Новость Искусственный интеллект ИТ-новость

Microsoft подала патент на «компьютерный метод» предоставления рекомендаций по здоровью. Патент включает анализ биометрических данных для определения стресса и беспокойства.

14.05.2021    1731    SKravchenko    1       

Минюст создаст чат-бота для бесплатных юридических консультаций

Новость Искусственный интеллект ИТ-новость Цифровая экономика

«Цифровой юрист» – один из самых масштабных проектов ведомства. На реализацию проекта планируют потратить 230 млн рублей.

14.05.2021    1244    user1015646    0       

Flash Player удалят из Windows 10 в июле

Новость Windows Безопасность Интернет ИТ-новость

Компания Microsoft рассказала, когда Windows 10 окончательно попрощается с Adobe Flash Player. Обновление, которое автоматически удалит ПО из системы, выйдет этим летом.

13.05.2021    2999    user1015646    0       

Полностью цифровые медкарты: первые впечатления от эксперимента

Новость ИТ-новость Цифровая экономика

В России начался эксперимент по переводу медицинских карт пациентов в электронный вид. От бумажных документов полностью отказались в двух детских поликлиниках Москвы.

12.05.2021    3531    VKuser24342747    4       

Минцифры начнет подготовку кадров для цифровой экономики

Новость ИТ-новость Минкомсвязь Цифровая экономика

Минцифры совместно с «Университетом Иннополис» объединила сотни российских учебных заведений в консорциум, который подготовит кадры для цифровой экономики.

12.05.2021    3438    VKuser24342747    5       

GitHub начал поддерживать использование ключей безопасности SSH

Новость git GitHub Безопасность ИТ-новость

Пользователи GitHub смогут подтверждать вход в аккаунт при помощи портативных устройств, которые используют протокол FIDO2. Репозиторий предлагает всем разработчикам перейти на такой метод аутентификации.

12.05.2021    3317    VKuser24342747    0       

Топ языков программирования с самым большим сообществом разработчиков

Новость Аналитика ИТ-новость Языки программирования

Аналитики британской фирмы SlashData, изучающей сообщества разработчиков, выпустили ежегодный отчёт State of the Developer Nation, в котором описывают аудиторию 14 популярных языков программирования.

07.05.2021    2671    SKravchenko    7       

Кроссплатформенный эмулятор запустил старые Windows-программы в браузере

Новость Интернет ИТ-новость

Разработан бесплатный эмулятор для запуска классических приложений Windows на большинстве популярных операционных систем. Программа также доступна в качестве веб-версии с ограниченным числом приложений.

05.05.2021    3121    VKuser24342747    0       

Apple обязала разработчиков использовать новый фреймворк AppTrackingTransparency

Новость iOS ИТ-новость Мобильные приложения

Компания Apple выпустила серию обновлений для разработчиков приложений. Требования, связанные с переходом на iOS 14.5, предполагают использование фреймворка AppTrackingTransparency для повышения прозрачности сбора пользовательских данных.

05.05.2021    1931    user1015646    0       

Теперь в Docker и в Linux: расширилась поддержка процессоров Apple M1

Новость Linux ИТ-новость

Ядро Linux получило начальную поддержку процессоров M1 производства Apple. Инструмент для развертывания и работы с контейнерами Docker также научился работать с ними.

04.05.2021    3043    user1015646    0       

Ctrl+C, Ctrl+V: эксперты подсчитали, насколько часто разработчики копируют чужой код

Новость Аналитика ИТ-новость Языки программирования

Популярный форум для разработчиков Stack Overflow в течение двух недель собирал статистику нажатий Ctrl+C или Command+C при копировании кода и других ответов. Но то, что задумывалось как первоапрельская шутка, стало в итоге серьёзным исследованием.

04.05.2021    2002    user1015646    0       

Олдскульный Yayagram: разработчик создал для бабушки гаджет для общения в Telegram

Новость ИТ-новость Мессенджеры

Когда интернет еще не изобрели, абонентов соединяли телефонистки, переключая кабели в нужные гнезда. Разработчик Мануэль Лусио Далло вдохновился этим примером и создал для своей 96-летней бабушки гаджет для общения с родными в Telegram.

30.04.2021    4016    user1015646    3       

Квантовая сеть между Москвой и Петербургом заработает во втором квартале 2021 года

Новость ИТ-новость Телекоммуникации

«Транстелеком», дочерняя компания РЖД, завершила строительство квантовой сети между Москвой и Санкт-Петербургом. После запуска проект можно будет использовать для защищенного обмена данными.

30.04.2021    3124    VKuser24342747    0       

Chrome 90 позволит делиться ссылками на фрагмент текста

Новость Интернет ИТ-новость

Google представила новую функцию для Chrome 90, которая позволит создавать ссылку на выделенную часть текста на странице в браузере.

30.04.2021    2230    SKravchenko    2       

Минцифры требует обеспечить возможность удаления предустановленных российских приложений

Новость Законодательство Импортозамещение ИТ-новость Минкомсвязь Мобильные приложения

Минцифры готовит поправки к закону об обязательной предустановке ПО, которые обяжут производителей устройств обеспечить возможность полностью удалить программы.

28.04.2021    3090    VKuser24342747    1       

Ubuntu 21.04 обеспечит интегрированную поддержку Microsoft SQL Server и Active Directory

Новость Ubuntu MS SQL ИТ-новость

Компания Canonical представила Ubuntu 21.04, которая получила название «Hirsute Hippo». Релиз содержит интеграцию с Microsoft Active Directory, SDK для разработки приложений Flutter и поддерживает локальную работу Microsoft SQL Server.

28.04.2021    3942    capitan    1       

Доступна тестовая версия дистрибутива Linux, внешне похожего на Windows 10X

Новость Linux ИТ-новость

Команда разработчиков операционной системы Zorin OS представила бета-версию Zorin OS 16. Ирландский дистрибутив Linux объединяет Flatpak, Snap Store и репозиторий Ubuntu. Он имитирует внешний вид Windows 10X, сохраняя при этом функциональность Linux.

27.04.2021    4339    SKravchenko    1       

«Яндекс» представил веб-приложение для работы с текстом и таблицами

Новость ИТ-новость Новости компаний Облачные технологии Яндекс

«Яндекс» запустил сервис «Документы» для создания и редактирования текстовых файлов, таблиц и презентаций в облаке. Услуга входит в состав набора офисных решений «Яндекс 360».

27.04.2021    5228    VKuser24342747    2       

Искусственный интеллект научился находить проблемы в коде

Новость Искусственный интеллект ИТ-новость

Исследователи из МТИ разработали систему глубокого машинного обучения для поиска проблем в коде ПО. Она станет основой инструментов автоматического анализа, которые помогут найти и устранить слабые места в IDE для создания программ.

27.04.2021    4021    user1015646    3       

Microsoft разрешит сторонние платежные системы в своем магазине

Новость Windows ИТ-новость Новости компаний Онлайн-торговля

Microsoft готовит перезапуск собственного магазина приложений Microsoft Store. Релиз будет представлен вместе со следующим крупным обновлением Windows и сделает требования для программ в маркетплейсе мягче.

26.04.2021    2324    VKuser24342747    0       

В Windows 10 появилась поддержка Linux-приложений с графическим интерфейсом

Новость Windows Linux ИТ-новость

Microsoft добавит возможность запускать в Windows 10 приложения для Linux с графическим интерфейсом. Опробовать новую функцию можно уже сейчас, используя тестовую сборку ОС.

26.04.2021    4843    VKuser24342747    2       

Linux Shell научился превращать естественный язык в команды

Новость Linux Искусственный интеллект ИТ-новость

Энтузиаст обучил нейросеть OpenAI распознавать вводимые пользователем фразы в Linux Shell и превращать их в bash-команды. Похожее расширение также появилось и для игрового движка Unity3D.

23.04.2021    3502    VKuser24342747    0       

Visual Studio 2022 получит возможность использовать более 4 ГБ памяти

Новость ИТ-новость Новости компаний Языки программирования

Microsoft рассказала о главных обновлениях в новой Visual Studio 2022. Опробовать предварительную версию среду разработки от американского ИТ-гиганта можно будет уже в этом году.

23.04.2021    2732    VKuser24342747    3