Как сделать лямбду в эксель

Добавил пользователь Валентин П.
Обновлено: 04.10.2024

В этой статье вы узнаете о том, что такое лямбда-функции в Python. На самом деле, если вы знаете, что такое функции и умеете с ними работать, то знаете и что такое лямбда.

Лямбда-функция в Python — это просто функция Python. Но это некий особенный тип с ограниченными возможностями. Если есть желание погрузиться глубже и узнать больше, то эта статья целиком посвящена lambda .

Что такое лямбда в Python?

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

Для этого потребуется немного поменять направление мышление. Как вы знаете, все в Python является объектом.

Например, когда мы запускаем эту простейшую строку кода

Создается объект Python типа int , который сохраняет значение 5. x же является символом, который ссылается на объект.

Теперь проверим тип x и адрес, на которой он ссылается. Это можно сделать с помощью встроенных функций type и id .

В итоге x ссылается на объект типа int , а расположен он по адресу, который вернула функция id .

Просто и понятно.

А что происходит при определении вот такой функции:

Повторим упражнение и узнаем type и id объекта f .

Оказывается, в Python есть класс function , а только что определенная функция f — это его экземпляр. Так же как x был экземпляром класса integer . Другими словами, о функциях можно думать как о переменных. Разница лишь в том, что переменные хранят данные, а функции — код.

Это же значит, что функции можно передать в качестве аргументов другим функциям или даже использовать их как тип возвращаемого значения.

Рассмотрим простой пример, где функция f передается другой функции.

Попробуйте разобраться самостоятельно с тем, что делает этот код, прежде чем читать дальше.

Итак, modify_list — это функция, которая принимает список L и функцию fn в качестве аргументов. Затем она перебирает список элемент за элементом и применяет функцию к каждому из них.

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

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

Теперь, когда с основами разобрались, стоит перейти к лямбда. Лямбда в Python — это просто еще один способ определения функции. Вот базовый синтаксис лямбда-функции в Python:

Лямбда принимает любое количество аргументов (или ни одного), но состоит из одного выражения. Возвращаемое значение — значение, которому присвоена функция. Например, если нужно определить функцию f из примера выше, то это можно сделать вот так:

Но возникает вопрос: а зачем нужны лямбда-функции, если их можно объявлять традиционным образом? Но на самом деле, они полезны лишь в том случае, когда нужна одноразовая функция. Такие функции еще называют анонимными. И, как вы увидите дальше, есть масса ситуаций, где они оказываются нужны.

Лямбда с несколькими аргументами

Определить лямбда-функцию с одним аргументом не составляет труда.

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

Отлично! А как насчет лямбда-функции без аргументов?

Лямбда-функция без аргументов

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

Несколько лямбда-функций

В определенный момент возникнет вопрос: а можно ли иметь лямбда-функцию из нескольких строк.

Ответ однозначен: нет.

Лямбда-функции в Python всегда принимают только одно выражение. Если же их несколько, то лучше создать обычную функцию.

Примеры лямбда-функций

Теперь рассмотрим самые распространенные примеры использования лямбда-функций.

Лямбда-функция и map

Распространенная операция со списками в Python — применение операции к каждому элементу.

map() — это встроенная функция Python, принимающая в качестве аргумента функцию и последовательность. Она работает так, что применяет переданную функцию к каждому элементу.

Предположим, есть список целых чисел, которые нужно возвести в квадрат с помощью map .

Обратите внимание на то, что в Python3 функция map возвращает объект Map , а в Python2 — список.

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

Вот еще один пример.

Лямбда-функция и filter

filter() — это еще одна встроенная функция, которая фильтрует последовательность итерируемого объекта.

Другими словами, функция filter отфильтровывает некоторые элементы итерируемого объекта (например, списка) на основе какого-то критерия. Критерий определяется за счет передачи функции в качестве аргумента. Она же применяется к каждому элементу объекта.

Если возвращаемое значение — True , элемент остается. В противном случае — отклоняется. Определим, например, простую функцию, которая возвращает True для четных чисел и False — для нечетных:

С лямбда-функциями это все можно сделать максимально сжато. Код выше можно преобразовать в такой, написанный в одну строку.

И в этом сила лямбда-функций.

Лямбда-функция и сортировка списков

Сортировка списка — базовая операция в Python. Если речь идет о списке чисел или строк, то процесс максимально простой. Подойдут встроенные функции sort и sorted .

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

Функция применяется ко всем элементам объекта, а возвращаемое значение — то, на основе чего выполнится сортировка. Рассмотрим пример. Есть класс Employee .

Теперь создадим экземпляры этого класса и добавим их в список.

Предположим, что мы хотим отсортировать его на основе поля age сотрудников. Вот что нужно сделать для этого:

Лямбда-выражение было использовано в качестве параметра key вместо отдельного ее определения и затем передачи в функцию sort .

Пара слов о выражениях и инструкциях

Как уже упоминалось, лямбда могут иметь только одно выражение (expression) в теле.

Обратите внимание, что речь идет не об инструкции (statement).

Выражение и инструкции — две разные вещи, в которых часто путаются. В программировании инструкцией является строка кода, выполняющая что-то, но не генерирующая значение.

Например, инструкция if или циклы for и while являются примерами инструкций. Заменить инструкцию на значение попросту невозможно.

А вот выражения — это значения. Запросто можно заменить все выражения в программе на значения, и программа продолжит работать корректно.

  • 3 + 5 — выражение со значением 8
  • 10 > 5 — выражение со значением True
  • True and (5 — выражение со значением False

Тело лямбда-функции должно являться выражением, поскольку его значение будет тем, что она вернет. Обязательно запомните это для работы с лямбда-функциями в будущем.

Илья Стройнов

Саша, через vba создаём Adodb.connection, connectionstring у вас уже есть, в adodb.recordset считываем connection.execute(строка запроса sql, куда можно подставить данные ячейки, типа "select * from table where inn reply_footer clear_fix" >

Андрей Зима

Александр Харьковский

Ярослав Евтюгин


Ярослав Евтюгин

😐

Я vba испольвал

Dima Zlobodenjuk

Сколько из той аудитории пишут скрипты в эксел ? Надо очень его любить чтобы пытаться делать все когда есть Ява, питон С и другие

Павел Зиновьев


Павел Зиновьев

Dima, как-то в армии в моем распоряжении был комп без интернета но с установленным MS office. Эх, туда бы эти лямбды, ибо VBS кажется топорным

Dima Zlobodenjuk

Theorist Quantum


Theorist Quantum

Dima Zlobodenjuk

Theorist Quantum


Theorist Quantum ответил Dima

Dima, автоматизация выгрузки данных из 1С, различные операции с ними, запись в файл, который, например, является бюджетом. Или автоматическое заполнение смет в excel, из 1С по требованию покупателей (сметы строго стандартизированы). Библиотеки того же питона не дадут нужного взаимодействия с моделью office

Виталий Садовский

Павел Зиновьев


Павел Зиновьев ответил Виталию

Dima Zlobodenjuk

Theorist, 1С это 100% российский продукт, я его вообще не знаю. Но подозреваю что поскольку данные хранятся в БД - их можно "выгрузить" либо нативными утилитами, либо написав короткую програмку на любом языке высокого уровня для соотв формата (которых может быть как минимум 4, включая эксел).

Dima Zlobodenjuk

Theorist, Библиотеки того же питона не дадут нужного взаимодействия с моделью office

Библиотека java poi поддерживает практически все функции эксел

Theorist Quantum


Theorist Quantum ответил Dima

Dima, можно, конечно. Просто на VBA это будет проще и быстрее. Я не супер программист, по сути сам учился, но как минимум с питоном могу сравнить удобство.

Евгений Колокольцев

Хм, мне почти не приходилось работать с Excel. Весь опыт - пара расчёток в студенчестве и хммм, пожалуй больше и не помню. Конечно если не считать java poi, но там обычно простые таблички были. Думаю что мне повезло )))

Dima Zlobodenjuk

Ярослав Шаповалов


Ярослав Шаповалов ответил Павлу

Павел, почему топорным.
На VBA можно полноценную систему учёта/расчёта накидать "прийдя на час-полчаса раньше на работу", запустив всего-лишь Excel. Особенно учитывая запрет на установку любых приложений. Когда работаешь с большими объёмами различных данных, VBA сильно выручает там где с этими функциями EXCEL можно настолько замучаться, но и задачу поставленную не выполнить. Есть задача - делаешь скрипт - используешь его, есть ещё задача . и т.д.
Единственный минус - изменения, которые сделал в документе скрипт на VBA нельзя отменить. CTRL+Z тут не поможет.
Или программная реализация отмены, но на практике проще резервную копию исходных файлов сделать))
Да и синтаксис у языка удобный, и среда разработки тоже.



Microsoft теперь называет электронные таблицы Excel языком программирования, а с добавлением лямбд он стал полным по Тьюрингу.

Язык программирования считается полным по Тьюрингу, если на нём можно реализовать любой возможный алгоритм. Именно эту возможность реализуют лямбды.

Проект разработала научно-исследовательская группа Calc Intelligence в Кембриджском университете. Они давно поставили задачу превратить формулы Excel в полноценный язык программирования.

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

В данный момент лямбды доступны участникам программы бета-тестирования Excel.

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

В посте Microsoft Research от 25 января приводится больше технических деталей, которые могут быть интересны любителям математики и программистам. Есть также видео:

Microsoft вводит лямбда-выражение в Excel, которое позволит создавать собственные функции с помощью языка формул. Раньше для этого приходилось использовать совершенно другой язык, например JavaScript. Кратко рассмотрим преимущества, которые привнесет в Excel это нововведение.

Microsoft позволит создавать пользовательские функции с помощью собственного языка формул.

Такое нововведение ожидается уже давно. До этого момента пользователи могли создавать функции в Excel только с помощью другого языка, например JavaScript или Visual Basic.

По словам Microsoft, это нововведение сделает язык формул Excel полным по Тьюрингу. Это свойство позволит использовать его для решения практически любой вычислительной задачи.

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

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

И хотя передавать значение в функцию довольно удобно, также возможно использовать динамические массивы и расширенные типы данных. Однако разработчики, ожидающие появления среды, подобной Visual Code, будут разочарованы. Технология только зарождается, и реализация через Диспетчер имен (Name Manager) все еще нуждается в доработке.

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

На данный момент LAMBDA находится на стадии бета-тестирования, и Microsoft все еще не сообщила, когда она станет общедоступной.

С помощью функции ЛЯМБДА можно создавать пользовательские функции для повторного использования и вызывать их по понятным именам. Новая функция доступна во всей книге и вызывается так же, как и основные функции Excel.

Вы можете создать функцию для часто используемой формулы, избавиться от необходимости копировать и вставлять эту формулу (что может приводить к ошибкам), а также эффективно добавлять собственные функции в основную библиотеку функций Excel. Кроме того, функция ЛЯМБДА не требует VBA, макросов или JavaScript, поэтому ее могут использовать также пользователи, не являющиеся программистами.

Как работает функция ЛЯМБДА

Эта функция доступна только при наличии подписки на Microsoft 365. Если вы являетесь Microsoft 365подписчиком, убедитесь, что у вас установлена последняя версия Office.

Как получить доступ к новым функциям?
При создании новых возможностей Microsoft 365 распространяются в течение определенного периода времени для всех подписчиков. Узнать, Когда мне станут доступны самые новые возможности Microsoft 365?

Синтаксис

=ЛЯМБДА([параметр1; параметр2; …;] вычисление)

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

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

Замечания

Имена и параметры функции ЛЯМБДА соответствуют правилам синтаксиса Excel в отношении именования, за одним исключением: запрещено использовать точку (.) в имени параметра. Дополнительные сведения см. в статье Имена в формулах.

При создании функции ЛЯМБДА, как и в случае с любой основной формулой Excel, необходимо придерживаться рекомендаций, например, передавать правильное количество и тип аргументов, следить за соответствием открывающих и закрывающих скобок и вводить числа в неформатированном виде. Кроме того, при использовании команды Вычислить Excel немедленно возвращает результат функции ЛЯМБДА, и вы не сможете выполнить ее пошагово. Дополнительные сведения см. в статье Обнаружение ошибок в формулах.

Создание функции ЛЯМБДА

Ниже описана пошаговая процедура, выполнив которую, вы обеспечите правильную работу функции ЛЯМБДА, которая будет выполняться аналогично основной функции Excel.

Убедитесь в правильности работы формулы, используемой вами при вычислении аргумента. Это крайне важно, так как при создании функции ЛЯМБДА вам необходимо обеспечить, чтобы формула работала надлежащим образом, и в случае возникновения ошибок или непредвиденного поведения вы могли быть уверены, что не формула является тому причиной. Дополнительные сведения см. в статье Полные сведения о формулах в Excelи Создание простой формулы в Excel.

=ЛЯМБДА-функция ([параметр1; параметр2; . ];вычисление) (вызов функции)

В приведенном ниже примере возвращается значение 2.

=LAMBDA(number, number + 1)(1)

Завершив создание функции ЛЯМБДА, переместите ее в диспетчер имен для окончательного определения. Таким образом вы сможете присвоить функции ЛЯМБДА понятное имя, добавить описание и обеспечить возможность ее повторного использования в любой ячейке книги. Вы также можете управлять функцией ЛЯМБДА точно так же, как и любым именем, например, строковой константы, диапазона ячеек или таблицы.

Выполните одно из указанных ниже действий.

В Excel для Windows выберите Формулы > Диспетчер имен.

В Excel для Mac выберите Формулы > Задать имя.

Выберите Новое, а затем введите необходимые данные в диалоговом окне Новое имя:

Введите имя функции ЛЯМБДА.

Книга указывается по умолчанию. Также можно выбрать отдельные листы.

Необязательно, но настоятельно рекомендуется. Введите до 255 знаков. Кратко опишите назначение функции, укажите правильное количество и тип аргументов.

Отображается в диалоговом окне Вставить функцию и в виде подсказки (вместе с аргументом Вычисление ) при вводе формулы и использовании функции Автозаполнение формул (Intellisense).

Введите функцию ЛЯМБДА. Нажмите F2, чтобы изменить текст и запретить автоматическую вставку ссылок на ячейки.

Сохранение функции ЛЯМБДА в Диспетчере имен

Чтобы создать функцию ЛЯМБДА, нажмите ОК.

Чтобы закрыть диалоговое окно Диспетчер имен, нажмите Закрыть.



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

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

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



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

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

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

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

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



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



Рекурсия

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

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

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

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

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

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

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

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

Синтаксис

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

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

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

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



Функция Excel LAMBDA позволяет создавать настраиваемые функции, которые можно повторно использовать в книге без VBA или макросов.

Возвращаемое значение

Синтаксис

Аргументы

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

Версия

Примечания по использованию

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

Одним из ключевых преимуществ пользовательской функции LAMBDA является то, что логика, содержащаяся в формуле, существует только в одном месте. Это означает, что при устранении проблем или обновлении функциональности необходимо обновить только одну копию кода, и изменения будут автоматически распространяться на все экземпляры функции LAMBDA в книге. Функция LAMBDA не требует VBA или макросов.

Пример 1 | Пример 2 | Пример 3

Создание LAMBDA-функции

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

Существует четыре основных шага для создания и использования настраиваемой формулы на основе функции ЛЯМБДА:

  1. Проверьте логику, которую вы будете использовать, со стандартной формулой
  2. Создайте и протестируйте универсальную (безымянную) версию формулы LAMBDA.
  3. Назовите и определите формулу LAMBDA с помощью диспетчера имен
  4. Протестируйте новую пользовательскую функцию, используя определенное имя

В приведенных ниже примерах эти шаги рассматриваются более подробно.

Пример 1

Чтобы проиллюстрировать, как работает LAMBDA, давайте начнем с очень простой формулы:

В Excel эта формула обычно использует следующие ссылки на ячейки:



Затем нам нужно добавить фактическое вычисление x * y:

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







Убедитесь, что формула начинается со знака равенства (=). Теперь, когда у формулы LAMBDA есть имя, ее можно использовать в книге, как и любую другую функцию. На экране ниже скопированная формула в G5 выглядит так:



Новая настраиваемая функция возвращает тот же результат, что и две другие формулы.

Пример 2

В этом примере мы преобразуем формулу для вычисления объема сферы в пользовательскую функцию LAMBDA. Общая формула Excel для расчета объема сферы:

где A1 представляет радиус. На экране ниже показана эта формула в действии:



Обратите внимание, что этой формуле требуется только один вход (радиус) для вычисления объема, поэтому нашей функции LAMBDA потребуется только один параметр (r), который будет отображаться как первый аргумент. Вот формула, преобразованная в LAMBDA:

Вернувшись к рабочему листу, мы заменили исходную формулу общей версией LAMBDA. Обратите внимание, что мы используем синтаксис тестирования, который позволяет нам подключить B5 для радиуса:



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

Вернувшись на рабочий лист, мы заменили общую (безымянную) формулу LAMBDA на именованную версию LAMBDA и ввели B5 для r. Обратите внимание, что результаты, возвращаемые настраиваемой функцией SphereVolume, точно такие же, как и предыдущие результаты.



Пример 3

В этом примере мы создадим функцию LAMBDA для подсчета слов. В Excel нет функции для этой цели, но вы можете подсчитывать слова с помощью ячейки с настраиваемой формулой, основанной на функциях LEN и SUBSTITUTE, например:

Прочтите подробное объяснение здесь. Вот формула в действии на листе:



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



Ниже мы заменили общую (безымянную) формулу LAMBDA на именованную версию LAMBDA и ввели B5 для текста. Обратите внимание, что мы получаем точно такие же результаты.



Формула, используемая в диспетчере имен для определения CountWords, такая же, как и выше, без синтаксиса тестирования:

Устранение проблемы с пустой ячейкой

Как упоминалось выше, приведенная выше формула возвращает неправильный счетчик 1, когда ячейка пуста. Эту проблему можно решить, заменив +1 на приведенный ниже код:

Полное объяснение здесь. Чтобы обновить существующую именованную формулу LAMDA, нам снова нужно использовать диспетчер имен:

После закрытия диспетчера имен CountWords корректно работает с пустыми ячейками, как показано ниже:



Примечание: при обновлении кода один раз в диспетчере имен все экземпляры формулы CountWords обновляются одновременно. Это ключевое преимущество настраиваемых функций, созданных с помощью LAMBDA - обновления формул можно управлять в одном месте.


Формула "взята" из учебника, поэтому думаю, что если бы было возможно аналитическое решение, после соответствующих математических преобразований, то его бы "привели" в учебнике.
Предполагаю, что решение данного уравнения возможно графически, или подбором, после соответствующих, если я правильно помню итераций.
Как это делать в программировании с помощью циклов я знаю.
А в Экселе, думаю, что без VBA не "обойтись".


Формула "взята" из учебника, поэтому думаю, что если бы было возможно аналитическое решение, после соответствующих математических преобразований, то его бы "привели" в учебнике.
Предполагаю, что решение данного уравнения возможно графически, или подбором, после соответствующих, если я правильно помню итераций.
Как это делать в программировании с помощью циклов я знаю.
А в Экселе, думаю, что без VBA не "обойтись". Юрий_Нд


Формула "взята" из учебника, поэтому думаю, что если бы было возможно аналитическое решение, после соответствующих математических преобразований, то его бы "привели" в учебнике.
Предполагаю, что решение данного уравнения возможно графически, или подбором, после соответствующих, если я правильно помню итераций.
Как это делать в программировании с помощью циклов я знаю.
А в Экселе, думаю, что без VBA не "обойтись". Автор - Юрий_Нд
Дата добавления - 20.03.2017 в 01:32

Можно попробовать через Поиск решения.
Вкладка Данные - Поиск решения. Если его там нет, то подключите надстройку "Поиск решения".
Там не очень сложно, думаю, разберетесь

Можно попробовать через Поиск решения.
Вкладка Данные - Поиск решения. Если его там нет, то подключите надстройку "Поиск решения".
Там не очень сложно, думаю, разберетесь _Boroda_


Спасибо за совет, но боюсь, что это не мой случай.
Возможно, я не до конца разобрался, но мне нужно не один раз решить уравнение, а решать это уравнение постоянно, в каждой строчке экселя и не "в рукопашном, а в автоматическом" режиме, без предварительного подбора корней.


Спасибо за совет, но боюсь, что это не мой случай.
Возможно, я не до конца разобрался, но мне нужно не один раз решить уравнение, а решать это уравнение постоянно, в каждой строчке экселя и не "в рукопашном, а в автоматическом" режиме, без предварительного подбора корней. Юрий_Нд


Спасибо за совет, но боюсь, что это не мой случай.
Возможно, я не до конца разобрался, но мне нужно не один раз решить уравнение, а решать это уравнение постоянно, в каждой строчке экселя и не "в рукопашном, а в автоматическом" режиме, без предварительного подбора корней. Автор - Юрий_Нд
Дата добавления - 20.03.2017 в 22:46

а диапазоны значений этого всего остального какие? (чтобы как-то с порядками определиться) buchlotnik

а диапазоны значений этого всего остального какие? (чтобы как-то с порядками определиться) Автор - buchlotnik
Дата добавления - 20.03.2017 в 23:05

п.с. Прошу прощения, никогда не работал в ВБА. "Этот ВБА находится" в Экселе? Или для работы в ВБА нужно установить Офис с Экселем, а потом еще установить ВБА?

п.с. Прошу прощения, никогда не работал в ВБА. "Этот ВБА находится" в Экселе? Или для работы в ВБА нужно установить Офис с Экселем, а потом еще установить ВБА? Юрий_Нд

п.с. Прошу прощения, никогда не работал в ВБА. "Этот ВБА находится" в Экселе? Или для работы в ВБА нужно установить Офис с Экселем, а потом еще установить ВБА? Автор - Юрий_Нд
Дата добавления - 21.03.2017 в 11:25

п.с. Прошу прощения, никогда не работал в ВБА. "Этот ВБА находится" в Экселе? Или для работы в ВБА нужно установить Офис с Экселем, а потом еще установить ВБА?


Чисто гипотетически можно предположить, что при установке, Visual Basic for Application (VBA) компоненту MS Office не установили, но в любом случае это часть этого пакета или отдельного MS Excel. ALT+F11 и большая вероятность, что у вас все уже готово к работе.

п.с. Прошу прощения, никогда не работал в ВБА. "Этот ВБА находится" в Экселе? Или для работы в ВБА нужно установить Офис с Экселем, а потом еще установить ВБА?


Чисто гипотетически можно предположить, что при установке, Visual Basic for Application (VBA) компоненту MS Office не установили, но в любом случае это часть этого пакета или отдельного MS Excel. ALT+F11 и большая вероятность, что у вас все уже готово к работе. bmv98rus

п.с. Прошу прощения, никогда не работал в ВБА. "Этот ВБА находится" в Экселе? Или для работы в ВБА нужно установить Офис с Экселем, а потом еще установить ВБА?


Чисто гипотетически можно предположить, что при установке, Visual Basic for Application (VBA) компоненту MS Office не установили, но в любом случае это часть этого пакета или отдельного MS Excel. ALT+F11 и большая вероятность, что у вас все уже готово к работе. Автор - bmv98rus
Дата добавления - 21.03.2017 в 12:10

Да, формула из другого источника, но там нет номограммы.

Да, формула из другого источника, но там нет номограммы.


Гидра или не гидра - какая разница, тут уравнение решить нужно.
А Вы из какой области специалист? Юрий_Нд

Да, формула из другого источника, но там нет номограммы.


Гидра или не гидра - какая разница, тут уравнение решить нужно.
А Вы из какой области специалист? Автор - Юрий_Нд
Дата добавления - 21.03.2017 в 19:40

я в посте №7 всё спросил - меня послали читать учебник, спасибо, обойдусь. Автор - buchlotnik
Дата добавления - 21.03.2017 в 20:01


Так приложите файл хотя бы с парой таких строк, где заданы все остальные параметры и остаётся только найти лямбду


Так приложите файл хотя бы с парой таких строк, где заданы все остальные параметры и остаётся только найти лямбду Pelena


Так приложите файл хотя бы с парой таких строк, где заданы все остальные параметры и остаётся только найти лямбду Автор - Pelena
Дата добавления - 21.03.2017 в 20:12

Читайте также: