opencomputer


Если экономист хочет "посчитать" своё предприятие - он должен уметь программировать на VBA - как минимум!

Когда читаешь статьи про эффективность внедрения ERP-систем и показатели даже не на проценты, а в разы превосходящие эффективность от работы штатных экономистов - сразу возникает вопрос о степени компетентности этих самых сотрудников, а не о гиперэффективности системы. Ведь в ERP заложены методики обработки из учебников! На своём опыте могу сказать, что чаще всего для глубокого "ручного" анализа нехватает лишь знаний по сведению и упорядочиванию разношёрстной информации, выдаваемой системами автоматизированного учёта типа 1С.

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

  1. Очистить помесячные отчёты от избыточной информации.
  2. Заполнить пустые ячейки нолями.
  3. Отсортировать по наименованию.
  4. Все наименования скопировать на одну страницу, отсортировать по наименованию и удалить дубликаты.
  5. Создать макрос, который соберёт для каждого наименования со всех страниц данные о продажах по месяцам и разложит их аккуратно в свои столбцы.
  6. Создать итоговую колонку и просуммировав - получить итоговые величины количества, сумм продаж, дохода и прочее.
  7. Автоматически создать список из трёх товаров - замещающих и сопутствующих.

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

http://opencomputer.narod.ru/allmacroses.htm

Экономист в нынешних условиях либо будет знать VBA, либо его ждёт сокращение, когда средства автоматизации дойдут до внедрения на его фирме. Эти макросы не так уж сложны - их реально доработать до полностью автоматического режима, когда всё будет вычисляться в одно нажатие. Можно сделать макрос очистки, который найдёт самые похожие строки/области данных, а все остальные автоматически убьёт и в результате пользователю только надо будет указать столбцы с данными по продажам (количество и суммы) - остальное алгоритм сделает сам. Это не очень сложно - ещё десяток-другой строк кода...

Если возникают вопросы как реализованно какое-то стандартное действие на VBA, то лучший способ это выяснить - записать макрос, а потом почитать получившийся код. Хотя - в вышеприведённых примерах есть практически всё, что необходимо для быстрого составления расчётов практически любой степени сложности.

Автоматическое форматирование кода VBA можно осуществить с помощью бесплатного дополнения: http://oaltd.co.uk/Indenter/Default.htm
Сохранить код VBA в HTML-файл с расцветкой поможет Notepad++

Массивы

Массивы на VBA описываются через конструкцию типа:

' Матрица 3х4 целого типа
Dim MatrixI(3, 4) As Integer
' Матрица 3х4 вещественного типа
Dim MatrixD(3, 4) As Double

Dim MyWeek, MyDay
MyWeek = Array("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")
' Return values assume lower bound set to 1 (using Option Base
' statement).
MyDay = MyWeek(2) ' MyDay contains "Tue".
MyDay = MyWeek(4) ' MyDay contains "Thu".

Большее количество примеров можно найти в справке по VBA.

Тренды

Создать график. Щёлкнуть правой кнопкой мыши на линии графика -> Добавить линию тренда.

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

Анализ по дням недели, дням месяца

  A B C D
1 2007.01.01 40 =ДЕНЬНЕД(A1;2) =СУММЕСЛИ(C:C;"=1";B:B)
2 2007.01.02 42 2 42
3 2007.01.03 36 3 36
4 2007.01.04 50 4 50

Аналогично для дней месяца и любых других условий. Но при сведении в единый отчёт и выведении средних - необходимо рассчитать количество понедельников, вторников и прочее по формуле =СЧЁТЕСЛИ(C:C;"=1")

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

Можно на одном и том же графике продаж разместить линию тренда и результат вычисления функции ПРЕДСКАЗ() для уже известных продаж на 30 дней назад от текущей позиции - тогда на графике можно будет наблюдать насколько эффективной оказалась работа отдела продаж по отношению к ожидаемой.

Расчёт объёмов пополнения склада вполне можно доверить машине - надо только сделать правильный макрос.

Инструмент Excel - Поиск решения

2008-10-31

Задачи экономики требуют поиска оптимальных значений. Применяя надстройку из пакета анализа MS Excel Поиск решения это становится возможным. Чтобы подробнее ознакомиться с теорией вопроса необходимо изучить часть высшей математики - методы оптимизации, симплекс метод - мини-максная стратегия поиска. На мехмате всё это даётся в полной мере, тогда как на экономических специальностях не рассматривается ни теория, ни применение в Excel. Важное замечание: всегда указывайте интервалы в которых будут изменяться исходные величины. Старайтесь строить предварительные графики, чтобы локализовать искомую точку.

Скачать пример: simplex.zip (16Kb)

 

Оригинал статьи: vbasamples.htm

November 2, 2009

Алексей Вячеславович Никитаев.
mail: nikitayev@rsu.ru


Hosted by uCoz