Как сделать кривую в excel?

Построение кривой Лоренца в Microsoft Excel

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

Использование кривой Лоренца

Кривая Лоренца представляет собой типичную функцию распределения, отображенную графически. По оси X данной функции располагается количество населения в процентном соотношении по нарастающей, а по оси Y — общее количество национального дохода. Собственно, сама кривая Лоренца состоит из точек, каждая из которых соответствует процентному соотношению уровня дохода определенной части общества. Чем больше изогнута линия Лоренца, тем больше в обществе уровень неравенства.

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

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

Вертикальная прямая, которая соединяет линию равенства и наиболее удаленную от неё точку кривой Лоренца, называется индексом Гувера или Робин Гуда. Данный отрезок показывает, какую величину дохода нужно перераспределить в обществе, чтобы достичь полного равенства.

Уровень неравенства в обществе определяется с помощью индекса Джинни, который может варьироваться от до 1. Он ещё называется коэффициентом концентрации доходов.

Построение линии равенства

Теперь давайте на конкретном примере посмотрим, как создать линию равенства и кривую Лоренца в Экселе. Для этого используем таблицу количества населения разбитого на пять равных групп (по 20%), которые суммируются в таблице по нарастающей. Во второй колонке этой таблицы представлена величина национального дохода в процентном соотношении, которая соответствует определенной группе населения.

Для начала построим линию абсолютного равенства. Она будет состоять из двух точек – нулевой и точки суммарного национального дохода для 100% населения.

    Переходим во вкладку «Вставка». На линии в блоке инструментов «Диаграммы» жмем на кнопку «Точечная». Именно данный тип диаграмм подойдет для нашей задачи. Далее открывается список подвидов диаграмм. Выбираем «Точечная с гладкими кривыми и маркерами».

Открывается окно выбора источника данных. В левой его части, которая называется «Элементы легенды (ряды)» жмем на кнопку «Добавить».

Запускается окно изменения ряда. В поле «Имя ряда» записываем то наименование диаграммы, которое хотим ей присвоить. Оно может также располагаться на листе и в этом случае нужно указать адрес ячейки его нахождения. Но в нашем случае легче просто вписать название вручную. Дадим диаграмме наименование «Линия равенства».

В поле «Значения X» следует указать координаты точек диаграммы по оси X. Как мы помним, их будет всего две: и 100. Записываем данные значения через точку с запятой в данном поле.

В поле «Значения Y» следует записать координаты точек по оси Y. Их тоже будет две: и 35,9. Последняя точка, как мы можем видеть по графику, соответствует совокупному национальному доходу 100% населения. Итак, записываем значения «0;35,9» без кавычек.

После того, как все указанные данные внесены, жмем на кнопку «OK».

После этого мы возвращаемся к окну выбора источника данных. В нем тоже следует нажать на кнопку «OK».

  • Как видим, после вышеуказанных действий линия равенства будет построена и отобразится на листе.
  • Создание кривой Лоренца

    Теперь нам предстоит непосредственно построить кривую Лоренца, опираясь на табличные данные.

      Кликаем правой кнопкой мыши по области диаграммы, на которой уже расположена линия равенства. В запустившемся меню снова останавливаем выбор на пункте «Выбрать данные…».

    Опять открывается окно выбора данных. Как видим, среди элементов уже представлено наименование «Линия равенства», но нам нужно внести ещё одну диаграмму. Поэтому жмем на кнопку «Добавить».

    Снова открывается окно изменения ряда. Поле «Имя ряда», как и в прошлый раз, заполняем вручную. Сюда можно вписать наименование «Кривая Лоренца».

    В поле «Значения X» следует занести все данные столбца «% населения» нашей таблицы. Для этого устанавливаем курсор в область поля. Далее зажимаем левую кнопку мыши и выделяем соответствующий столбец на листе. Координаты тут же будут отображены в окне изменения ряда.

    В поле «Значения Y» заносим координаты ячеек столбца «Сумма национального дохода». Делаем это по той же методике, по которой вносили данные в предыдущее поле.

    После того, как все вышеуказанные данные внесены, жмем на кнопку «OK».

    После возврата к окну выбора источника опять жмем на кнопку «OK».

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

    Отблагодарите автора, поделитесь статьей в социальных сетях.

    Построение графиков в Excel по данным таблицы

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

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

    Простейший график изменений

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

    Читать еще:  Как сделать содержание в excel 2010?

    Допустим, у нас есть данные по чистой прибыли предприятия за 5 лет:

    Заходим во вкладку «Вставка». Предлагается несколько типов диаграмм:

    Выбираем «График». Во всплывающем окне – его вид. Когда наводишь курсор на тот или иной тип диаграммы, показывается подсказка: где лучше использовать этот график, для каких данных.

    Выбрали – скопировали таблицу с данными – вставили в область диаграммы. Получается вот такой вариант:

    Прямая горизонтальная (синяя) не нужна. Просто выделяем ее и удаляем. Так как у нас одна кривая – легенду (справа от графика) тоже убираем. Чтобы уточнить информацию, подписываем маркеры. На вкладке «Подписи данных» определяем местоположение цифр. В примере – справа.

    Улучшим изображение – подпишем оси. «Макет» – «Название осей» – «Название основной горизонтальной (вертикальной) оси»:

    Заголовок можно убрать, переместить в область графика, над ним. Изменить стиль, сделать заливку и т.д. Все манипуляции – на вкладке «Название диаграммы».

    Вместо порядкового номера отчетного года нам нужен именно год. Выделяем значения горизонтальной оси. Правой кнопкой мыши – «Выбрать данные» — «Изменить подписи горизонтальной оси». В открывшейся вкладке выбрать диапазон. В таблице с данными – первый столбец. Как показано ниже на рисунке:

    Можем оставить график в таком виде. А можем сделать заливку, поменять шрифт, переместить диаграмму на другой лист («Конструктор» — «Переместить диаграмму»).

    График с двумя и более кривыми

    Допустим, нам нужно показать не только чистую прибыль, но и стоимость активов. Данных стало больше:

    Но принцип построения остался прежним. Только теперь есть смысл оставить легенду. Так как у нас 2 кривые.

    Добавление второй оси

    Как добавить вторую (дополнительную) ось? Когда единицы измерения одинаковы, пользуемся предложенной выше инструкцией. Если же нужно показать данные разных типов, понадобится вспомогательная ось.

    Сначала строим график так, будто у нас одинаковые единицы измерения.

    Выделяем ось, для которой хотим добавить вспомогательную. Правая кнопка мыши – «Формат ряда данных» – «Параметры ряда» — «По вспомогательной оси».

    Нажимаем «Закрыть» — на графике появилась вторая ось, которая «подстроилась» под данные кривой.

    Это один из способов. Есть и другой – изменение типа диаграммы.

    Щелкаем правой кнопкой мыши по линии, для которой нужна дополнительная ось. Выбираем «Изменить тип диаграммы для ряда».

    Определяемся с видом для второго ряда данных. В примере – линейчатая диаграмма.

    Всего несколько нажатий – дополнительная ось для другого типа измерений готова.

    Строим график функций в Excel

    Вся работа состоит из двух этапов:

    1. Создание таблицы с данными.
    2. Построение графика.

    Пример: y=x(√x – 2). Шаг – 0,3.

    Составляем таблицу. Первый столбец – значения Х. Используем формулы. Значение первой ячейки – 1. Второй: = (имя первой ячейки) + 0,3. Выделяем правый нижний угол ячейки с формулой – тянем вниз столько, сколько нужно.

    В столбце У прописываем формулу для расчета функции. В нашем примере: =A2*(КОРЕНЬ(A2)-2). Нажимаем «Ввод». Excel посчитал значение. «Размножаем» формулу по всему столбцу (потянув за правый нижний угол ячейки). Таблица с данными готова.

    Переходим на новый лист (можно остаться и на этом – поставить курсор в свободную ячейку). «Вставка» — «Диаграмма» — «Точечная». Выбираем понравившийся тип. Щелкаем по области диаграммы правой кнопкой мыши – «Выбрать данные».

    Выделяем значения Х (первый столбец). И нажимаем «Добавить». Открывается окно «Изменение ряда». Задаем имя ряда – функция. Значения Х – первый столбец таблицы с данными. Значения У – второй.

    Жмем ОК и любуемся результатом.

    С осью У все в порядке. На оси Х нет значений. Проставлены только номера точек. Это нужно исправить. Необходимо подписать оси графика в excel. Правая кнопка мыши – «Выбрать данные» — «Изменить подписи горизонтальной оси». И выделяем диапазон с нужными значениями (в таблице с данными). График становится таким, каким должен быть.

    Наложение и комбинирование графиков

    Построить два графика в Excel не представляет никакой сложности. Совместим на одном поле два графика функций в Excel. Добавим к предыдущей Z=X(√x – 3). Таблица с данными:

    Выделяем данные и вставляем в поле диаграммы. Если что-то не так (не те названия рядов, неправильно отразились цифры на оси), редактируем через вкладку «Выбрать данные».

    А вот наши 2 графика функций в одном поле.

    Графики зависимости

    Данные одного столбца (строки) зависят от данных другого столбца (строки).

    Построить график зависимости одного столбца от другого в Excel можно так:

    Условия: А = f (E); В = f (E); С = f (E); D = f (E).

    Выбираем тип диаграммы. Точечная. С гладкими кривыми и маркерами.

    Выбор данных – «Добавить». Имя ряда – А. Значения Х – значения А. Значения У – значения Е. Снова «Добавить». Имя ряда – В. Значения Х – данные в столбце В. Значения У – данные в столбце Е. И по такому принципу всю таблицу.

    Готовые примеры графиков и диаграмм в Excel скачать:

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

    Как построить график в Excel по данным таблицы

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

    Кликните по кнопке ниже и мы пришлем Вам Excel файл с примером графика, построенного по данным таблицы на E-mail:

    Как построить простой график в Excel

    Представим, что у нас есть таблица с ежемесячными данными среднего курса Доллара в течении года:

    На основе этих данных нам нужно нарисовать график. Для этого нам потребуется:

    • Выделить данные таблицы, включая даты и курсы валют левой клавишей мыши:

    • На панели инструментов перейти во вкладку “Вставка” и в разделе “Диаграммы” выбрать “График”:

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

    • Система построила нам график:

    Как построить график в Excel на основе данных таблицы с двумя осями

    Представим, что у нас есть данные не только курса Доллара, но и Евро, которые мы хотим уместить на одном графике:

    Читать еще:  Как сделать выпадающий список с условием в excel?

    Для добавления данных курса Евро на наш график необходимо сделать следующее:

    • Выделить созданный нами график в Excel левой клавишей мыши и перейти на вкладку “Конструктор” на панели инструментов и нажать “Выбрать данные”:

    • Изменить диапазон данных для созданного графика. Вы можете поменять значения в ручную или выделить область ячеек зажав левую клавишу мыши:

    • Готово. График для курсов валют Евро и Доллара построен:

    Если вы хотите отразить данные графика в разных форматах по двум осям X и Y, то для этого нужно:

    • Перейти в раздел “Конструктор” на панели инструментов и выбрать пункт “Изменить тип диаграммы”:

    • Перейти в раздел “Комбинированная” и для каждой оси в разделе “Тип диаграммы” выбрать подходящий тип отображения данных:

    • Нажать “ОК”

    Ниже мы рассмотрим как улучшить информативность полученных графиков.

    Как добавить название в график Эксель

    На примерах выше мы строили графики курсов Доллара и Евро, без заголовка сложно понять про что он и к чему относится. Чтобы решить эту проблему нам нужно:

    • Нажать на графике левой клавишей мыши;
    • Нажать на “зеленый крестик” в правом верхнем углу графика;
    • Во всплывающем окне поставить галочку напротив пункта “Название диаграммы”:

    • Над графиком появится поле с названием графика. Кликните по нему левой клавишей мыши и внесите свое название:

    Как подписать оси в графике Excel

    Для лучше информативности нашего графика в Excel есть возможность подписать оси. Для этого:

    • Щелкните левой клавишей мыши по графику. В правом верхнем углу графика появится “зеленый крестик”, нажав на который раскроются настройки элементов диаграммы:

    • Щелкните левой клавишей мыши на пункте “Названия осей”. На графике под каждой осью появятся заголовки, в которые вы можете внести свой текст:

    Как добавить подписи данных на графике Excel

    Ваш график может стать еще более информативным с помощью подписи отображаемых данных.

    На примере курсов валют мы хотим отобразить на графике стоимость курса Доллара и Евро помесячно. Для этого нам потребуется:

    • Щелкнуть правой кнопкой мыши по линии графика, на которую хотим добавить данные. В раскрывающемся меню выбрать пункт “Добавить подписи данных”:

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

    • Кликните правой кнопкой мыши на любом значении линии графика. В всплывающем окне выберите пункт “Формат подписей данных”:

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

    Помимо настроек расположения, в том же меню вы сможете настроить размер подписей, эффекты, заливку и.т.д:

    Настроив все параметры у нас получился такой график курса валют:

    Как сделать кривую в excel?

    Меня трудно чем-то удивить в Excel, но когда я впервые увидел вот этот сайт, то у меня чуть глаз не выпал на клавиатуру. Очень рекомендую вам пройти по ссылке и поглазеть. В моём личном рейтинге эта команда (там двое мужчин и девушка) является №1 в мире по Excel.

    Сегодня я вам покажу нечто из их арсенала (с моими некоторыми адаптациями). Посмотрим на то, как при помощи точечной диаграммы с гладкими кривыми строить ТАКИЕ сложные вещи, что, когда глядишь на это в первый раз, просто не веришь, что это вообще можно нарисовать в Excel. Ну, например, как вам это:

    Дело в том, что мы все привыкли, что такие графики строятся по точкам, которые рассчитываются в ячейках таблицы. Тут же используется реально очень крутой трюк, который позволяет строить графики любых сложнейших функций, не используя ни диапазоны с точками XY, ни какие-либо макросы. Всё что вам нужно — это точечная диаграмма с гладкими кривыми, несколько констант и несколько именованных формул.

    Те граждане, кто пока плохо понимает, зачем это всё надо, сейчас просто откроют файлик, включат макросы и нажмут кнопку Старт, потому что это ПРОСТО КРАСИВО . На это можно смотреть минут 15 и всё равно будет интересно. Дольше смотреть не рекомендую, так как глаза и мозг устанут.

    Смотреть красоту ТУТ

    А с теми, кому интересно, как это устроено, продолжаем разговор.

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

    Эпициклоиды и гипоциклоиды (подмножество циклоидальных кривых) строятся по следующим параметрическим формулам:

    Эпициклоиды строятся так:

    Знаки у R1 и R2 относительно друг друга определяют тип кривой (по какой поверхности круга R1 — по внутренней или внешней — будет катиться круг R2 ). Обратите внимание, что t — это угод в радианах. Напоминаю, что углы в 5′ и 365′ — разные углы.

    Если мы заглянем в ряды данных диаграммы, то увидим это:

    Сердце решения располагается тут:

    Как видите, большинство именованных диапазонов просто сылаются на конкретные ячейки и ничего сложного из себя не представляют. Кроме трёх диапазонов: arr , x_e , y_e . Можно заметить, что x_e и y_e — это то, на что ссылается ряд данных в диаграмме, и, что это формулы, описывающие кривые, которые я приводил выше. А вот ИД arr надо осмыслить:

    =СТРОКА( СМЕЩ( Лепота!$A$1; ; ; x) )

    X у нас равен 5400. Функция СМЕЩ () сформирует диапазон A1:A5400 . А формула СТРОКА () будет вычислена для каждой строки данного диапазона, поэтому в результате мы получим массив чисел от 1 до 5400. Этот массив, будучи переданным в x_e , y_e тоже породит соответствующие массивы. Обратите внимание, что arr пропускается через функцию РАДИАНЫ (). Таким образом мы градусы (1..5400) переводим в радианы. Если честно, то я не знал, что ТАК можно 🙂

    Вот собственно и всё. А тот макрос, который у меня есть в книге, он просто случайным образом, но плавно меняет параметры R1 , R2 , D в пределах от From до To с шагом Step .

    P.S. Любителям WinAPI с его Sleep рекомендую обратить внимание на конструкцию Application.Wait Now + 1 / 24 / 60 / 60 / 2 🙂

    Ну а теперь залипайте дальше на лицезрение циклоид 🙂

    Здравствуйте, Денис.
    «Позалипал» на циклоиды. Красиво, но в процессе возникли замечания.

    1. Вообще-то, X = R * cos (t); Y = R * sin (t). В вашем примере оси X и Y перепутаны местами, если брать за основу картинку из статьи, циклоида на диаграмме строится от вертикальной оси против часовой стрелки. Попробуйте ввести на листе разные значения угла, меньше 360 (45, 90, 180, 270) — увидите, о чём я. На красоту не влияет, конечно.

    Читать еще:  Как в excel сделать копирование ячейки?

    2. Попробуйте ставить в ячейку х значения 1 и 5400 и сохранять книгу, размер файла изменится в несколько раз. Диапазоны значений не хранятся на листе, но диаграмма хранит весь диапазон значений в файле. Для уменьшения размера можно кодом VBA присваивать x 5400 после открытия и 1 перед закрытием.

    3. Ни в одной из статей вашего сайта нет ни одного вызова Windows API, да и фраза «Любителям WinAPI с его Sleep» позволяет предположить, что сами вы к его любителям не относитесь. Можно полюбопытствовать, откуда у вас такое принципиальное (практически — религиозное 🙂 ) избегание Windows API? Просто потому, что это «не совсем Excel»? Не хотите вступать на территорию, которую в принципе невозможно исследовать целиком?
    Я тут немного дополнил ваш пример, оставив его «как есть» и дополнительно сделав всё то же самое, но на форме и кодом VBA (кнопка «форма»).
    С WinAPI 32, естественно. Буду благодарен, если вы его посмотрите и выскажете своё мнение. Сайт не позволяет прикреплять файлы, поэтому ссылка: https://yadi.sk/i/UjUOP-hG3KqPYN

    Для корректности сравнения скоростей из вашего кода выкинуты строки:

    ActiveSheet.Calculate ‘ не нужна, если есть DoEvents

    Application.Wait Now + 1 / 24 / 60 / 60 / 2 ‘ просто не нужна 🙂

    На всякий случай: комментарий категорически не является насмешкой или наездом, у вас отличный сайт и редкие педагогические способности, статьи, написанные столь доходчивым языком редко где найдёшь.

    Здравствуйте.
    1. Видимо вы правы
    2. Интересный факт, но для цели статьи не особо важен.
    3. Пальцем в небо Зачем делать столь глубокие выводы на единичных фактах? Я дурачился. Но вы правы в том, что WinAPI я не знаю, но никаких религиозных запретов на этой почве перед собой не воздвигаю. Просто часто sleep — единственное, что видишь у VBA-шников, но в Excel особой необходимости в нем нет. То есть, если вам нужно сделать паузу, то нефиг городить огород с winapi. Файл ваш посмотрел — офигенно. Дома посмотрю подробнее. Вот для этого и winapi не грех применять

    Спасибо за содержательный комментарий. Успехов вам!

    Использование Sleep вместо Application.Wait является шагом вперёд, осознанным или нет — второй вопрос.

    При выполнении програмной задержки состояние приложения можно разделить:

    — по загрузке процессора: грузит / не грузит;
    — по реакции на события: не реагирует / реагирует;

    Так вот, Application.Wait находится в худшем из четырёх возможных сочетаний этих состояний.

    Пусть надо выполнить програмную задержку dDelay сек. Тогда варианты:

    ‘ вариант 0: не реагирует на события, загрузка процессора (в современном мире — одного из ядер) — 100%
    Application.Wait Now + dDelay / (24 * 60 *60)

    ‘ вариант 1: не реагирует на события, загрузка процессора — 0%
    Sleep 1000 * dDelay

    ‘ вариант 2: реагирует на события, загрузка процессора — 100%
    dWhaitFor = Timer + dDelay
    Do
    DoEvents
    Loop Until Timer > dWhaitFor

    ‘ вариант 3: сочетает достоинства и недостатки двух предыдущих, (не мгновенно) реагирует на события, загрузка процессора — больше 0%
    dWhaitFor = Timer + dDelay
    Do
    Sleep 50
    DoEvents
    Loop Until Timer > dWhaitFor

    Ни один из этих вариантов не является идеальным с точки зрения потоков, обработки сообщений, машинного времени и пр.
    В этой статье http://www.smsoft.ru/ru/vbwait.htm описан полностью корректный вариант.
    Статья «загрузочная» , так что лучше прочитать её «по диагонали» и никогда так не делать.

    Давайте, о себе любимом напишу подробно позже и в почту.

    Пока в догонку об убогости Application.Wait: https://yadi.sk/i/7NQT-OFN3Kv2BK
    Комментировать там нечего, просто текст программы посмотрите.

    Коротко: Application.Wait не предназначен для организации задержек, не кратных 1 сек., в частности — менее 1 сек. Поэтому он у вас в Beauty на самом деле не работал, можно было апостроф в начале строки не ставить .Добавить
    И чтоб совсем добить тему. Посмотрите загрузку процессора в task manager при работе Application.Wait и Sleep.

    Ещё раз про морковь или возвращаясь к непечатному. Доброго здоровья, Денис.

    Глядя на процедуру расчёта и вывода циклоиды (Sub DrawCycloide) я задался вопросом: какую часть времени занимает расчёт значений для её вывода, а какую — собственно, графический вывод. Профилировать процедуру напрямую по таймеру в контрольных точках смысла не имело: слишком маленькие интервалы приведут к слишком большим погрешностям. Поэтому решено было нивелировать (свести к нулю) время расчёта, чтобы осталось только время, занимаемое графическим выводом. Как нивелировать? Перевести в машинный код, естественно . Но всё по порядку.

    1. Первым делом к ранее выложенному здесь Beauty free.xlsm был прикручен «спидометр» — код, отображающий на форме количество выводимых циклоид в секунду.
    Результат здесь: https://yadi.sk/i/EtolJiGL3LhgpJ

    2. Далее, через экспорт-импорт, форма из книги Beauty free speed.xlsm была перемещена в «классический» проект VB. Что понравилось: форма встала в проект VB сразу «как влитая», никаких допиливаний и танцев с бубном не понадобилось. Естественно, ссылки на ячейки рабочего листа заменены константами.
    Исходник: https://yadi.sk/d/YsNL93Ph3MxWPV
    Результат: https://yadi.sk/d/T3u021U-3MxWRv

    3. Наконец, была проведена переработка проекта с целью замены объекта UserForm VBA объектом Form VB:
    Исходник: https://yadi.sk/d/KCgRKEN33MxYGC
    Результат: https://yadi.sk/d/6Odb1BKA3MxYHB

    Примечания.
    1. Шаги 3 и 4 не имеют отношения к поднятому вопросу, но, раз были проделаны — решил выложить
    2. Если у вас нет установленного VB, можно сразу смотреть результаты, вирусов в них нет

    Итоги.
    Преимущество в скорости компилятора над интерпретатором в доказательствах не нуждалось, вопрос был в количественной оценке. Считая, что время графического вывода в любом случае превалирует над временем расчёта, ожидал прироста быстродействия в 20%-30%. После запуска откомпилированного на шаге 2 проекта получил прирост в скорости в 2,5 раза на своей системе. Медленно: в два с половиной раза. То есть, в коде книги Excel расчёт шёл, примерно, в 1,5 раза дольше вывода. Во сколько именно раз поднялась скорость вычислений данные действия не показывают, но, оценочно — в 8 — 10 раз.

    Практический вывод.
    Если ваш код VBA содержит сложные расчёты — вынести их в отдельную внешнюю процедуру, подключаемую как DLL или OCX ещё как имеет смысл.

    P. S. Всё вышенаписанное стоило писать месяца полтора назад. Руки дошли только сейчас, однако.

    Ссылка на основную публикацию
    Adblock
    detector