Макросы excel для финансов

Очень часто в своей профессиональной деятельности финансовым работникам приходится сталкиваться с обработкой больших объемов данных, выполнять однообразные повторяющиеся операции над данными. В итоге время, которое приходится на эту работу в разы превосходит анализ информации и принятие решений. Как автоматизировать процессы и превратить рутинную работу в творчество с помощью Excel? – читайте и применяйте!

Очень часто в своей профессиональной деятельности финансовым работникам приходится сталкиваться с обработкой больших объемов данных, выполнять однообразные повторяющиеся операции над данными. В итоге время, которое приходится на эту работу, в разы превосходит анализ информации и принятие решений. Если разделить подобную работу на рутину и «творчество», то, к сожалению, выигрыш будет совсем не в пользу второго. Почему человек разумный позволяет себе подобное расточительство? Один из самых ценных ресурсов – время – используется подчас так неэффективно.

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

Как применить макросы Excel в работе финансиста?

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

Чем может помочь создание программ (макросов) для Excel в работе финансиста? Данная возможность существенно расширяет стандартные возможности Excel как табличного редактора. Пользователь получает возможность создавать собственные гибкие обработчики данных и закладывать в них логику при помощи встроенного языка программирования Visual Basic. Так же существует возможность создания дополнительных форм, которые позволят заложить в программу возможности общения с пользователем (например, можно запросить недостающую информацию для обработки данных). Стоит отметить, что овладев данными навыками, пользователю не составит труда решить возникающие перед ним разнообразные задачи. Приведем несколько примеров подобных задач.

Сверка двух выписок, имеющих расхождения в итоговой цифре

Стандартное решение данной задачи – напечатать обе выписки и вычеркивать совпадающие операции. Долго, нудно, но расхождения будут найдены. Как правило, данные выписки имеют табличный формат и представлены в файлах Excel. Стандартными средствами Excel данная задача не решается, НО есть возможность создания программы, которая будет это делать автоматически. Она будет вместо человека пробегать все строки (при помощи цикла) одного файла и сверять с данными из другого файла. Для большей гибкости программы можно предусмотреть возможность указания столбцов в файлах с данными, по которым нужно производить сверку. Сложно? Совсем нет.

Функция «курс валюты на дату»

Очень часто в работе финансиста ему может потребоваться курс какой-либо валюты на дату (или динамика курса за какой-то период). Стандартное решение – заходить на сайт Центрального Банка РФ (или другой страны), выбор курса на необходимую дату, копирование и вставка в файл. Для одной или двух дат не сложное решение. А если необходимо это проделывать несколько раз в день? Или курсы необходимы за большое количество дат? Неблагодарный и однообразный труд. НО можно потратить немного времени и написать небольшую программу (пользовательскую функцию), которая будет сама подгружать в ячейку курс необходимой валюты на интересующую дату. Удобно? Бесспорно.

С чего начать изучение макросов в Excel?

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

  1. Не бояться экспериментировать с макросами

Записывать макросы (при помощи макрорекодера). Находить записанные макросы в редакторе Visual Basic и пытаться разобрать линейный код. Пробовать вносить в него изменения и проверять, что произойдет в результате. Обязательно изучить, как можно записать данные в ячейку и получить из неё данные (объект Range).

  1. Изучить логические операторы IF, Select Case

Макрорекодер не поможет в решении данной задачи. Он не создает логику в записываемых макросах. Адреса в справочной системе Microsoft, где можно посмотреть информацию по данным операторам: 
https://msdn.microsoft.com/ru-ru/library/752y8abs.aspx 
https://msdn.microsoft.com/ru-ru/library/cy37t14y.aspx 
Экспериментировать с применением операторов в линейных программах, записанных при помощи макрорекодера.

  1. Изучить операторы циклов For … Next, Do … Loop, For Each … Next

https://msdn.microsoft.com/ru-ru/library/5z06z1kb.aspx
https://msdn.microsoft.com/ru-ru/library/eked04a7.aspx
https://msdn.microsoft.com/ru-ru/library/5ebk1751.aspx 
Тоже экспериментировать.

ВАЖНО: эксперименты необходимо проводить над файлами, потеря или порча которых не будет критичной. Иногда будут возникать ситуации, когда программа будет делать совсем не то, что было запланировано. Если написание программы необходимо в файле с рабочими данными – рекомендуется создавать копии файлов на различных этапах написания программы или чаще обычного сохранять изменения. Откат изменений, сделанных программой невозможен.

  1. Изучить создание пользовательских форм (UserForm) и возможности различных компонентов для создания интерфейса программ (основные: TextBox, Label, CommandButton).

Данное изучение лучше проделать практически. Для помощи в этом непростом деле мы создали небольшую презентацию. Посмотреть её можно ниже:

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

«Не бойтесь расти медленно, бойтесь оставаться неизменными». (Китайская мудрость).

Хотите научиться возможностям Excel, которые избавят вас от рутинной работы?
Записывайтесь на авторский курс Романа Вдовина «Программирование в Excel для НЕпрограммистов» 


Все блоги


Excel постоянно повышает свою функциональность. За 35 лет в нем набралось около 500 различных формул. Неудивительно, что до сих пор Excel — один из любимых инструментов финансистов. А с макросами VBA, настройками Power Query, Power Pivot и Power BI — еще и «бесконечно продвинутый».

Рассмотрим 10 несложных приемов Excel, которые ускорят и упростят работу финансистам и другим специалистам. Эти функции помогут: 

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

#1. Взяться за #ДЕЛ/0!, или Функция перехвата ошибок 

Со школы все помнят правило: «на ноль делить нельзя». Excel тоже так считает, но на практике не редкость, когда приходится это делать. Например, поступление не запланировано, а по факту оно есть — и нужно определить процент выполнения плана. Тогда во всех таких строках при делении появляется #ДЕЛ/0! (см. рис. 1). 

Из-за этого может не считаться итоговая строка. Бывает, что #ДЕЛ/0! идет дальше и «ломает» по цепочке все расчеты. И постоянно приходится очищать отчет вручную. Для таких случаев в Excel есть функция ЕСЛИОШИБКА

Синтаксис формулы:

=ЕСЛИОШИБКА(проверяемое_значение ; значение_если_ошибка), где

проверяемое значение — выражение, в котором надо перехватить ошибки

значение если ошибка — значение, формула или текст, которую вернет функция, если найдет ошибку

В отличие от своих предшественников (ЕОШ, ЕНД), эта функция короткая, перехватывает и заменяет все некрасивые коды: #Н/Д, #ЗНАЧ!, #ССЫЛКА!, #ДЕЛ/0!, #ЧИСЛО!, #ИМЯ?, #ПУСТО!. В нашем примере — замена на «0».

Формулы расчета, которые могут сгенерировать код-ошибку, надо тщательно проверять, прежде чем использовать ЕСЛИОШИБКА. Особенно когда формула сложная. Если таблица расчетная, то коды-ошибки лучше не заменять текстовым значением. Смотрится красиво, но может осложнить последующий анализ.

Важно. Не используйте функцию ЕСЛИОШИБКА везде «на всякий случай». Например, при расчете прибыли: мы ничего не делим и вероятности возникновения такой ошибки нет. Безопаснее применять ее после появления кодов, анализа причин и только точечно. Недаром ее называют функцией сокрытия ошибок. Так с ЕСЛИОШИБКА вы можете не заметить, что случайно удалили строку, которая была прописана в сложной формуле (раньше бы высветилось #ССЫЛКА!).  

#2. Начать все с нуля, или Как удалить ноль из поля зрения 

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

Алгоритм действий:

  • выделить область (используйте прием с Shift)
  • пройти по маршруту: формат ячеек / число / все форматы
  • ввести маску 0;-0;;@ в поле Тип

Важно. Будьте аккуратны с другим приемом — «Найти и заменить». Он может казаться быстрее и проще (пара кликов мышки), но с этой задачей корректно не справится. Он уберет все нули, в том числе и внутри чисел, — и данные серьезно исказятся. 

#3. Придумать свои правила и поставить условия

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

Алгоритм действий простой:

  • выделить область форматирования (без шапки таблицы и обычно без итоговой строки)
  • далее переходите на Условное форматирование (вкладка «Главная») и выбираете подходящий вариант

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

На рис. 3 показаны три варианта визуального выделения отклонений от плана. 

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

#4. Включить динамическую подсветку строки на листе

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

Есть один продвинутый прием — подсветка строки. Она перемещается вместе с курсором, и информацию удобно анализировать (на рис. 4 — зеленого цвета). Создать ее можно с помощью одной формулы в Условном форматировании и очень простого макроса VBA по образцу.

Алгоритм действий:

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

    =СТРОКА(A6)=ЯЧЕЙКА(«строка»)

    где A6 — это начало первой строки (см. рис. 4).

  • выбрать цвет заливки

Далее надо открыть редактор макросов (лист / просмотреть код) и вставить макрос по образцу:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Cells.Count > 1 Then Exit Sub

ActiveCell.Calculate

End Sub

Теперь цветная подсветка будет перемещаться по строкам.

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

#5. Найти случайные формулы и константы в таблице или формуляре

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

Excel это тоже может быстро проверить. Рассмотрим две ситуации:

Ситуация 1. Вместо формулы стоит значение

  • выделить область проверки (используйте прием с Shift)
  • пройти по маршруту: найти и выделить / выделить группу ячеек / константы

    (альтернативный вариант: F5 (или Ctrl+G) / кнопка Выделить)

  • выделить найденные значения цветом

Ситуация 2. Вместо значения числа стоит формула

  • выделить область проверки (используйте прием с Shift)
  • пройти по маршруту: найти и выделить / выделить группу ячеек / формулы

    (альтернативный вариант: F5 (или Ctrl+G) / кнопка Выделить)

  • выделить найденные значения цветом

Основное преимущество — очень быстро и наглядно (см. рис. 5). Дальше надо провести анализ ячеек с несоответствием (или разобраться с логикой нового отчета).

Важно. Этот прием не позволяет выделить отдельно формулы с ручным исправлением для корректировки значения. Например, к финальной формуле добавили число или сложили в ячейке два числа, набранные вручную. Excel также будет считать это формулой и не выделит отдельно. А для финансиста такое бывает важно. Решением может быть защита ячеек от изменений с помощью пароля (п. 10 этой статьи).

#6. Написать формулу полезного текста

Excel, конечно, изначально создан для расчетов, а не для написания текстов. Но все же несколько полезных предложений он может создать. Для этого есть функция СЦЕП.

Синтаксис формулы:

=СЦЕП(текст1;текст2;… текст n),

где текст 1, текст 2… текст n — это слова и фразы, числа, ссылки на ячейки с необходимой информацией.

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

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

Здесь есть особенность. Когда дата документа в отдельной ячейке, то функцию СЦЕП надо сделать двойной, встроив в нее функцию ТЕКСТ. Иначе дата перенесется только в числовом формате.

Формула для назначения платежа по компании Альфа (см. рис. 6) может иметь такой вид:

=СЦЕП(D6;» по договору «;E6;» от «;ТЕКСТ(F6;»ДД.ММ.ГГ»);» («;G6; «)»).

 

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

#7.  Выделить из текста главное

Бывает обратная ситуация. Из текста надо выделить (извлечь) информацию по правилу. Делать это вручную неудобно. Для таких целей есть функция ПСТР.

Синтаксис функции:

=ПСТР(текст; начальная позиция; количество знаков), где

текст — ссылка на ячейку с нужной информацией

начальная позиция — порядковый номер символа, с которого начнется извлечение

количество знаков — длина (число символов)

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

Функцию ПСТР рекомендуют сразу объединять с функцией ПОИСК. Так эффективнее. Для определения даты оплаты по компании Дрим (см. рис. 7) формула будет иметь вид:

=ПСТР(G6;ПОИСК(«??.??.????»;G6);10)+10 — оплата счета в течение 10 дней.

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

#8.  Заполнить все мгновенно по образцу

Excel (начиная с версии 2013) способен считывать логику ваших действий (записей по образцу), а затем легко и быстро все повторить. С функцией «Мгновенное заполнение» можно без написания сложных формул извлечь из текста символы, даты, числа и слова (возможно — с перестановкой), склеить текст из разных ячеек, разделить его по регистрам. Например, привести к одному виду номера мобильных телефонов, отображение ФИО и т. д.

Алгоритм действий:

  • добавить еще один столбец рядом с исходной информацией (вводить пример важно строго рядом — в следующем столбце справа от данных)
  • вручную ввести 1–3 разных примера (важно — именно разных)
  • выделить область заполнения информацией
  • пройти по маршруту: Данные / Мгновенное заполнение — или воспользоваться сочетанием клавиш Ctrl+E

Как и функции ПСТР, ПОИСК и т. п., «Мгновенное заполнение» не работает при опечатках и ошибках. Нужно определенное единообразие в заполнении данных. Поэтому безопаснее применять функцию в своих таблицах, а не в чужих.

Финансист может воспользоваться этим инструментом для быстрого извлечения даты, формирования назначения платежа. Посмотрим на примерах (рис. 8 и 9).

Если при расчетах формулами можно все действия прописать сразу, то с функцией «Мгновенное заполнение» важна этапность. Сначала выделим дату в столбце H, затем посчитаем по формуле в столбец L (см. рис. 8).

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

Сочетание Ctrl+E хорошо справилось и с назначением платежа. Однозначно быстрее, чем через функцию СЦЕП (со всеми пробелами). Важно также выбирать 2–3 разных варианта формулировки. Последовательность их неважна. В примере есть оплата со счетом и без счета (см. рис. 9). 

Если у вас есть разные варианты состава формулировок, то можно создать шаблоны для обучения Excel. Вставлять их в каждый новый реестр, запускать Ctrl+E и удалять сразу после заполнения всего документа (шаблон — это целая строка реестра, а не только отдельно назначение платежа).

Важно. Формула работает всегда и реагирует на изменение, а «Мгновенное заполнение» — нет. Потребуется повторить алгоритм действий при вводе новой информации.  

Хотите получать дайджест статей?

Одно письмо с лучшими материалами за неделю. Подписывайтесь, чтобы ничего не упустить.

Спасибо за вашу подписку!

#9. Не сверять даты с календарем

Когда много дат вводится вручную, и особенно если плановая дата оплаты определяется по формуле, то очень легко указать выходной день. А затем потерять платеж. При расчете просроченной задолженности тоже очень важно различать календарные и рабочие дни. Аналогичная ситуация и с платежным календарем на несколько недель. Каждый раз сверяться с календарем — неудобно и долго. 20 платежей вручную может быть разнести несложно, а 200 — уже не очень.

В Excel есть функция НОМНЕДЕЛИ.ISO(Дата). Она присваивает каждому дню свой номер недели с начала года (от 1 до 52). Также можно в формуляре дополнительно проверять, что для даты оплаты выбраны только рабочие дни. Здесь поможет функция ДЕНЬНЕД(дата; 2). То есть все это можно настроить автоматически.

Можно воспользоваться условным форматированием: создать правило через формулу ДЕНЬНЕД(K6; 2)>5 и выбрать яркую заливку ячейки. Теперь, когда расчетная дата оплаты попадает на выходной день, ячейка будет менять цвет и привлекать внимание (см. рис. 10). Это очень удобно.

Важно. В начале года нужно проверить корректность определения первой недели. Платеж без планируемой даты оплаты будет автоматически отнесен к неделе №52 (может не попасть в платежный календарь).

#10. Запретить, но защитить

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

Документ можно зашифровать, пройдя по маршруту: файл / сведения / зашифровать с использованием пароля.

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

Прежде чем защитить файл от нежелательных изменений, надо его подготовить.

1. Выделить области, в которых можно вносить данные, далее:

формат ячеек / защита / снять галочку с «защита ячеек»

2. Выделить области, в которых надо скрыть формулы, далее:

формат ячеек / защита / поставить галочку в «скрыть формулы»

После этого: рецензирование / защитить лист (или защитить книгу) / пароль. Если у вас есть запрет на изменение данных после конкретной даты, то безопаснее воспользоваться этим вариантом. 

Важно. Возможности восстановить пароль, если забыли, — нет. Лучше придумать свой алгоритм его создания.

Хотите получать дайджест статей?

Одно письмо с лучшими материалами за неделю. Подписывайтесь, чтобы ничего не упустить.

Спасибо за подписку!

Главная » Макросы и программы по категориям

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

  • Программа формирования договоров по шаблону

    Скриншот программы формирования договоров купли-продажи


    Программа предназначена для формирования (заполнения) договоров купли-продажи.
     
    Исходными данными выступает таблица сделок, и шаблон договора, в который при помощи формул подставляются значения из заданной строки таблицы сделок.
    Для запуска программы достаточно нажать зеленую кнопку — и сразу же начнётся формирование договоров (файлов Excel из одного листа) в автоматически созданной папке…

  • Программа обработки отчётов управления

    Отчёт по ликвидности портфелей ценных бумаг


    Программа предназначена для обработки отчётов управления по сделкам с ценными бумагами

    Основные функции программы:

    Создание новых отчётов управления (за следующий квартал) на основании текущих отчётов

    Внесение изменений и дополнений в существующие отчёты

    Формирование сводной таблицы по вкладам для оценки роста, а также коэффициентов ликвидности и версификации вкладов

    Обработка…

  • Программа обработки и анализа биржевых котировок

    Промежуточные результаты отработки котировок

    Результат загрузки котировок из внешних файлов

    Программа позволяет загружать котировки различных валют из файлов формата .HTM, и анализировать их при различных параметрах анализа.
    Все котировки разбиваются на отдельные блоки (временные диапазоны для разбивки задаются на форме настроек), и анализ производится по каждому блоку в отдельности.
    Есть возможность исключить из расчётов данные за пятницу.
    Изменение параметров вычисления значений BS…

  • Обработка котировок (тиков) в формате CSV

    Скриншот программы обработки котировок в формате CSV


    Программа служит для преобразования тиковых значений котировок в свечи необходимого периода
    Исходный файл в формате .csv получается в результате выгрузки (экспорта) котировок с сайта www.finam.ru (Фьючерсы ФОРТС),
    и содержит большое количество строк (записей) — около 1 миллиона за 1 день.
    В исходном файле CSV имеется таблица  со следующими столбцами:
    <TICKER> <PER> <DATE…

  • Программа анализа биржевых операций

    сквитовка первой продажи и первой покупки в таблице сделок


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

    В результате работы программы таблица сделок принимает вид, показанный на скриншоте.

    Исходными данными выступает таблица сделок в таком формате:

    Для проверки корректности работы программы она формирует лог-файл примерно такого содержания:
    ========= Обработка строки 1 ===================
    Текущее…















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

При установленной надстройке становятся доступны функции расчета простого и дисконтированного срока окупаемости (PBP, DPBP), Profitability Index, CAGR, налога на прибыль и другие. Эти функции позволяют сэкономить время, отказавшись от написания сложных формул, и избежать в моделях ячеек с промежуточными техническими расчетами.

installation_step4

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

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

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

Чтобы установить надстройку достаточно скачать готовую надстройку “InvestmentFunctions.xlam” и подключить ее в настройках Excel. Детальная инструкция в конце этой заметки.


Список функций и как их использовать

Disclaimer:

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

fCAGR — расчет CAGR по вектору значений

Рассчитывает совокупный среднегодовой темп роста (CAGR) по диапазону ячеек.

Сигнатура функции: fCAGR(rValuesRange As Range) As Double

fcagr

Особенности:

  • CAGR рассчитывается по первому столбцу или по первой строке диапазона, в зависимости от того, что длиннее. В случае равенства длин — по первой строке.
  • Формула использует только первое и последнее значения диапазона. Поэтому ячейки в середине диапазона могут быть любыми.

fCAGR2 — расчет CAGR по начальному и конечному значению

Рассчитывает совокупный среднегодовой темп роста (CAGR) по начальному и конечному значению показателя с указанием периодов.

Сигнатура функции: fCAGR2(dStartValue As Double, dEndValue As Double, dStartYear As Double, dEndYear As Double) As Double

fCAGR2


fDepreciation — расчет амортизации

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

Сигнатура функции: fDepreciation(rCapex As Range, dDepreciationPeriod As Double) As Double

fDepreciation

Особенности:

  • “rCapex” — диапазон ячеек с суммами капитальных вложений в предыдущие периоды. Порядок ячеек слева — направо.

fExtendAP — продлить ряд значений как арифметическую прогрессию

fExtendAP принимает на вход ряд значений, а далее продлевает его как арифметическую прогрессию. Функция может использоваться для продления денежного потока для формул ЧПС() и ВСД().

Сигнатура функции: fExtendAP(vInput As Variant, iPeriods As Variant, Optional dGrowthRate As Variant) As Variant

fExtendAP

Особенности:

  • “vInput” — может быть диапазоном ячеек или одним числом
  • “iPeriods” — на какое количество периодов продлевать ряд
  • Опциональный показатель “dGrowthRate” — шаг или разность арифметической прогрессии. По умолчанию — ноль.

fExtendGP — продлить ряд значений как геометрическую прогрессию

fExtendGP принимает на вход ряд значений, а далее продлевает его как геометрическую прогрессию. Функция может использоваться для продления денежного потока для формул ЧПС() и ВСД().

Сигнатура функции: fExtendGP(vInput As Variant, iPeriods As Variant, Optional dGrowthRate As Variant) As Variant

fExtendGP

Особенности:

  • “vInput” — может быть диапазоном ячеек или одним числом
  • “iPeriods” — на какое количество периодов продлевать ряд
  • Опциональный показатель “dGrowthRate” — знаменатель геометрической прогрессии. По умолчанию — 1.

fIncomeTax — расчет налога на прибыль

Рассчитывает налог на прибыль в текущем периоде с учетом прибыли и убытков прошлых периодов.

Сигнатура функции: fIncomeTax(rProfitRange As Range, dTaxRate As Double, Optional dPriorProfitsAndLosses As Double) As Double

fIncomeTax

Особенности:

  • “rProfitRange” — диапазон ячеек с суммами прибыли до налога в предыдущие периоды, включая текущий период. Порядок ячеек слева — направо.
  • “dTaxRate” — налоговая ставка в процентах. Например, “20% или “0,2”.
  • Опциональный показатель “dPriorProfitsAndLosses” — входящая накопленная прибыль/убыток до первого периода. Значение убытка указывается с минусом.

fLimit — ограничение значения параметра в целевом диапазоне

Берет входящее значение и ограничивает сверху и снизу его в целевом диапазоне. Это продвинутый МИН(МАКС()), в котором не надо думать о порядке аргументов.

Сигнатура функции: fLimit(varInput, varLimit1, varLimit2)

fLimit

Особенности:

  • “varInput” — входящий параметр, значение которого мы хотим ограничить
  • “varLimit1”, “varLimit2” — границы диапазона. Порядок указания (нижняя, верхняя границы) не важен.

fPayout — расчет свободного денежного потока с учетом будущих поступлений и платежей

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

Сигнатура функции: fPayout(dPayoutBase As Double, rFutureCashFlow As Range, Optional dWACC As Double, Optional dMinCashLimit As Double) As Double

fPayout

Особенности:

  • “dPayoutBase” — денежный поток текущего периода, из которого мы берем деньги на дивиденды
  • “rFutureCashFlow” — диапазон ячеек с денежными потокам в будущие периоды, не включая текущий период
  • Опциональный показатель “dWACC” — стоимость капитала. Подразумевается, что неиспользованные деньги на счетах каждый период приносят эту доходность. По умолчанию — ноль.
  • Опциональный показатель “dMinCashLimit” — неснижаемый денежный остаток. По умолчанию — ноль.

fPBP — расчет простого и дисконтированного срока окупаемости

Формула рассчитывает срок окупаемости для денежного потока с возможностью продления потока за период прогнозирования. (Wikipedia: Простой срок окупаемости, Дисконтированный срок окупаемости)

Сигнатура функции: fPBP(varCashFlowRange As Range, Optional varDiscountRate As Variant, Optional varGrowthRate As Variant) As Variant

fPBP

Особенности:

  • “varCashFlowRange” — диапазон ячеек с денежными потоками. Порядок ячеек слева-направо. Первая ячейка в диапазоне учитывается как нулевой период.
  • Опциональный показатель “varDiscountRate” — ставка дисконтирования в процентах. Например, “20% или “0,2”. Если параметр не указан, то, по умолчанию, берется нулевое значение и формула считает простой срок окупаемости.
  • Опциональный показатель “varGrowthRate” — темп роста в постпрогнозный период. Например, “1.05”. По умолчанию значение ноль. Если указать значение, то формула возьмет денежный поток последнего периода и будет продлевать его с заданным темпом. Максимальное количество периодов, на которое формула продляет денежный поток — 360.

fPI — расчет Profitability Index (PI)

Формула рассчитывает Profitability Index (“Индекс рентабельности”») денежного потока. (Wikipedia: Индекс рентабельности (PI))

Сигнатура функции: fPI(varCashFlowRange As Range, Optional varDiscountRate As Variant) As Variant

fPI

Особенности:

  • “varCashFlowRange” — диапазон ячеек с денежными потоками. Порядок ячеек слева-направо.
  • Опциональный параметр “varDiscountRate” — ставка дисконтирования в процентах. Например, “20% или “0,2”. Если параметр не указан, то, по умолчанию, берется нулевое значение.

Инструкция по установке

Все материалы доступны в репозитории на GitHub.

  1. Скачать файл “InvestmentFunctions.xlam” и сохранить, где будет удобно
  2. В Microsoft Excel войти в меню “Файл”->“Параметры” Файл->Параметры
  3. Далее перейти в раздел “Надстройки”. В поле внизу экрана выбрать “Надстройки Excel” и нажать “Перейти”. Надстройки Excel
  4. В появишемся окне нажать “Обзор” и указать путь к ранее сохраненному файлу “InvestmentFunctions.xlam”. В списке надстроек слева появится надстройка “Investmentfunctions”. Надстройки Excel
  5. Если все прошло успешно, то в Excel станут доступны новые функции. Надстройки Excel

Обратная связь

Вопросы, информацию о багах или предложения по развитию пишите здесь в комментариях или в Issues на GitHub.

comments powered by

Формулы

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

Использование ВПР

Подробности
Создано 07 Сентябрь 2015

По опросам среди экономистов одной из самых используемых функций Excel является функция поиска и выбора значения из спровочника — VLOOOKUP. Функция имеет 4 параметра:

  1. искомое значение
  2. массив для поиска
  3. номер столбца в массиве
  4. тип поиска: точный или приблизительный

Общаясь даже с опытными пользователями, мало кто может объяснить зачем нужен последний параметр этой функции. Все используют только поиск с точным соответствием искомого значения и, не задумываясь, указывают в качестве этого параметра FALSE, либо, что на наш взгляд даже предпочтительнее, просто 0. И это в подавляющем большинстве случаев верное решение — сами регулярно советуем участникам тренингов не вдаваться в детали, а просто писать 0 в качестве последнего параметра VLOOOKUP. Однако вопрос все-таки имеет право на жизнь. Так есть ли какое-то практическое применение в области экономического моделирования функции VLOOOKUP с поиском по неточному соответствию? Долго искали, но все-таки нашли, как нам кажется, полезный практический пример (см.файл во вложении).

Работа с ненормализированными данными

Подробности
Создано 22 Июль 2014

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

alt

Как ни странно, подобные задачи вызывают серьезные трудности даже у опытных пользователей Excel, работающих с большими объемами данных. Попробуйте решить самостоятельно (лист ЗАДАЧА) – вычислите значения в желтых ячейках, формулы должны копироваться. Подразумевается также, что даты в исходной таблице и в условиях могут быть любыми.

Финансовые функции

Подробности
Создано 27 Март 2011

Microsoft Excel поддерживает множество функций, облегчающих финансовые вычисления. Целью данной статьи не является полный обзор функций, относящихся к финансовому разделу. Такое описания представлено в справочной системе Excel и других интернет-ресурсах. Следует также заметить, что некоторые финансовые функции имеют достаточно специфическую локальную направленность, другие сохраняются в целях обратной совместимости со старыми версиями Excel (и Lotus 1-2-3). Некоторые функций не включены в ядро Excel, а подключается только при активизации надстройки «Пакет анализа» (Analysis ToolPak).

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

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

Таблицы подстановки

Подробности
Создано 27 Март 2011

Microsoft Excel включает в свой состав несколько интересных средств для анализа данных. Данная статья описывает возможности одного из таких интерфейсных решений для проведения вычислений при помощи «таблицы подстановки» (в последних версиях Excel называется «таблица данных»).

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

Стоимость складского запаса

Подробности
Создано 13 Февраль 2014

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

Простые формулы

Подробности
Создано 11 Апрель 2013

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

Распределение начислений по платежам

Подробности
Создано 26 Январь 2012

При ведении финансового учета в электронных таблицах обычно ограничиваются, так называемым «котловым» методом расчета задолженности контрагентов. То есть начисления и платежи не связываются между собой, а рассчитывается только разница, образующая кредиторскую или дебиторскую задолженности. Используя нормативы отсрочки платежа можно также определить уровень просроченной задолженности без точной привязки оплаты и отгрузки. Этой информации вполне достаточно для целей управленческого учета (т.е. для предоставления информации руководству). При этом иногда такой расчет может противоречить информации бухгалтерского учета – контрагент может потерять или пропустить счета для оплаты. В этой ситуации поиск расхождений представляет достаточно сложную задачу в зависимости от количества операций. Аналогичная задача сверки и распределения оплат по начислениям возникает при предоплатной схеме работы с контрагентом. Типичный случай – это работа с таможенными органами, когда средства списываются с депозитов на основании данных государственных таможенных деклараций (ГТД).

Объединение строк

Подробности
Создано 15 Апрель 2012

У продвинутых пользователей Excel очень популярен вопрос о возможности объединения диапазона ячеек, содержащих текст, в одну строку при помощи стандартной функции. К сожалению, функция CONCATENATE этого делать не умеет, она работает только с одиночными ячейками или константами. Т.е. абсолютна идентична по функциональности оператору «&». Заметим, что при помощи пользовательской функции на VBA задача решается достаточно просто. Также несложно добавить служебный диапазон с формулами нарастающего итога. Но на вопрос объединения строк при помощи одной формулы обычно смело дается отрицательный ответ. Попробуем опровергнуть это утверждение.

Сумма прописью без программирования

Подробности
Создано 11 Ноябрь 2011

Популярная задача перевода числа в сумму прописью решена без программирования с использованием одной формулы.

Обработка больших объемов данных. Часть 1. Формулы

Подробности
Создано 13 Июль 2011

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

Суммирование по кодам

Подробности
Создано 27 Март 2011

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

Использование справочников

Подробности
Создано 27 Март 2011

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

Универсальный период

Подробности
Создано 27 Март 2011

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

Суммирование несвязанных диапазонов

Подробности
Создано 27 Март 2011
Вложения:

Скачать этот файл (sum_areas.xls)sum_areas.xls [Суммирование несвязанных диапазонов] 37 kB

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

Расчет расхода по спецификациям

Подробности
Создано 27 Март 2011

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

Время на прочтение
7 мин

Количество просмотров 1.3K

Привет всем. Немного предыстории.
Как, наверняка, любая жена, моя очень любит считать деньги. Притом не просто:«сколько заработали и сколько потратили». Нет, она разделяет их на группы и подсчитывает их каждый день. Это дело довольно утомительное и занимает довольно много времени, из-за чего я очень часто вижу свою любимую сидящей за столом спиной ко мне. Что бы облегчить ей труд, и из-за своих корыстных побуждений, я сделал небольшую считалку.

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

Требования

  • Учет Доходов
    1. Дата поступления
    2. Сумма поступления
    3. На чью карту или налом

  • Учет Расходов
    1. Дата расходов
    2. Сумма расходов
    3. На что потратили

  • Сколько денег у нас осталось
  • На что тратим деньги(график)

Выбор

Как у любого программиста, у меня возник вопрос: «На чем писать?». Было много вариантов от Python до Java. Но, так как я человек довольно ленивый, «рисовать» кнопочки мне никак не хотелось. И тут я повнимательнее посмотрел на Excel. «Так вот он интерфейс» — сказал я себе. И правда, что может еще нагляднее объяснить куда делись твои деньги, чем таблица (я не говорю про инфографику), да и работать с ней может каждый.

Процесс

Итак, создаем книгу Excel, там по умолчанию есть три листа, нам вполне этого хватит.

Первый лист(«Лист 1»)

В строке «1» впишем Дата, Сумма, Карта/Наличные, Итого

image

Итак, колонка «Дата» имеет формат «Дата», «Сумма» — Денежный с округлением до целого. С колонкой «Карта/Наличные» придется немного повозиться. Для начала сделаем список, который будет выпадать в этой колонке.
Нажмем «Ctrl»+«Стрелка вправо», и окажемся в самом правом столбце листа. Вот тут и напишем список:

  • Карта моя
  • Карта жены
  • Наличные

Теперь встанем на ячейку «D2» и нажмем «Ctrl»+«Стрелка вниз». Так мы выделим всю колонку без шапки.
Создадим выпадающий список для этих ячеек. «Данные»->«Проверка…». В открытом окошке выбираем «Тип данных»: «Список», и в «Источник» указываем ту колонку в которой написали список, у меня пример получилось «=$IV:$IV».
Мы выделяем всю колонку для того, что бы, если у нас прибавится пункт, нам не нужно будет переназначать меню.
Теперь у наших ячеек появился выпадающий список.

image

И наконец, в колонке «Итого» в ячейки «D2»: формула будет такая — «=СУММ(B2:B65536)»
Первый лист готов. Здесь будут наши доходы.

Второй лист(«Лист 3»)

Здесь все тоже самое, только вместо колонки «Карта/Наличные» будет колонка «На что», и еще поменяется выпадающий список, мой, например, пока содержит такие записи.

  • Продукты
  • Сигареты
  • Проезд
  • Пиво

Третий лист(«Данные»)

Самое интересное. Выглядит лист примерно так:
image

В ячейке «А2» формула — «=Лист1!D2-Лист3!D2», и еще добавьте на лист график.

image

Мне кажется, что круговой нагляднее.

Теперь создадим панель, чтобы удобнее было запускать макросы. Правой кнопкой по ToolBar`у -> «Настройки» кнопка «Создать». Мое меню называется «MyToolBar», это имя будет использоваться в макросе, так что, если меняете, то не забудьте поменять и там.
У нас появился ToolBar, нажимаем «Alt»+«F11».
Макрос для создания кнопок в ToolBar`e:

Public Sub InitToolBar()
Dim cmdBarSm As CommandBar
Dim ctlNewbtn As CommandBarButton
'Application.CommandBars("MyToolBar").Controls("По месяцам").Delete
'Application.CommandBars("MyToolBar").Controls("По Дням").Delete
'Application.CommandBars("MyToolBar").Controls("По Группам").Delete
Set cmdBarSm = Application.CommandBars("MyToolBar")
Set ctlNewbtn = cmdBarSm.Controls.Add(msoControlButton)
ctlNewbtn.Caption = "По месяцам"
ctlNewbtn.FaceId = 26
ctlNewbtn.OnAction = "getMonth"
Set ctlNewbtn = cmdBarSm.Controls.Add(msoControlButton)
ctlNewbtn.Caption = "По Дням"
ctlNewbtn.FaceId = 28
ctlNewbtn.OnAction = "getDay"
Set ctlNewbtn = cmdBarSm.Controls.Add(msoControlButton)
ctlNewbtn.Caption = "По группам"
ctlNewbtn.FaceId = 31
ctlNewbtn.OnAction = "GetGroup"
End Sub

В закоменченном коде команды для удаления этих кнопок. В первый раз макрос придется запускать так, иначе ругается, что не может найти кнопки.
Мы создали три кнопки для расчета затрат: «По дням»,«По месяцам»,«По группам»; иконки задаются в FaceId, вызываемые макросы в OnAction.

Итак макрос getMonth:

Sub getMonth()
Dim ActSheet As Worksheet
Dim BeginCell As Integer
Dim SumCell As Integer
Dim CurSumCell As Integer
Dim NewData As Boolean
Dim CurData As Date
Dim ValueP As Integer
Dim MonthNow As String

'Удалим старые записи
Set ActSheet = Worksheets.Item("Данные")
ActSheet.Activate
ActSheet.Range("A5", "D65536").Select
Selection.Clear
'Выбираем страницу Расходов
Set ActSheet = Worksheets.Item("Лист3")
BeginCell = 2
CurSumCell = 5
ActSheet.Activate

While ActSheet.Cells(BeginCell, 1).Value <> Empty
NewData = True
SumCell = 5
CurData = ActSheet.Cells(BeginCell, 1).Value
Set ActSheet = Worksheets.Item("Данные")
ActSheet.Activate
'Сравниваем
While ActSheet.Cells(SumCell, 1).Value <> Empty
If MonthName(Month(CurData)) = ActSheet.Cells(SumCell, 1).Value Then
NewData = False
End If
SumCell = SumCell + 1
Wend
'Если не нашли
If NewData Then
ActSheet.Cells(CurSumCell, 1).Value = MonthName(Month(CurData))
Set ActSheet = Worksheets.Item("Лист3")
ActSheet.Activate
ValueP = ActSheet.Cells(BeginCell, 2).Value
Set ActSheet = Worksheets.Item("Данные")
ActSheet.Activate
ActSheet.Cells(CurSumCell, 3).Value = ActSheet.Cells(CurSumCell, 3).Value + ValueP
CurSumCell = CurSumCell + 1
End If
'Суммируем
If Not NewData Then
Set ActSheet = Worksheets.Item("Лист3")
ActSheet.Activate
ValueP = ActSheet.Cells(BeginCell, 2).Value
Set ActSheet = Worksheets.Item("Данные")
ActSheet.Activate
ActSheet.Cells(CurSumCell - 1, 3).Value = ActSheet.Cells(CurSumCell - 1, 3).Value + ValueP
End If
Set ActSheet = Worksheets.Item("Лист3")
ActSheet.Activate
BeginCell = BeginCell + 1
Wend

'Выбираем страницу Доходов
Set ActSheet = Worksheets.Item("Лист1")
BeginCell = 2
CurSumCell = 5
ActSheet.Activate

'Колонка A есть Дата
While ActSheet.Cells(BeginCell, 1).Value <> Empty
NewData = True
SumCell = 5
CurData = ActSheet.Cells(BeginCell, 1).Value
Set ActSheet = Worksheets.Item("Данные")
ActSheet.Activate
'Сравниваем
MonthNow = ActSheet.Cells(SumCell, 1).Value
While ActSheet.Cells(SumCell, 1).Value <> Empty
If MonthName(Month(CurData)) = ActSheet.Cells(SumCell, 1).Value Then
NewData = False
End If
SumCell = SumCell + 1
Wend
'Если не нашли
If NewData Then
ActSheet.Cells(CurSumCell, 1).Value = MonthName(Month(CurData))
Set ActSheet = Worksheets.Item("Лист1")
ActSheet.Activate
ValueP = ActSheet.Cells(BeginCell, 2).Value
Set ActSheet = Worksheets.Item("Данные")
ActSheet.Activate
ActSheet.Cells(CurSumCell, 2).Value = ActSheet.Cells(CurSumCell, 2).Value + ValueP
CurSumCell = CurSumCell + 1
End If
'Суммируем
If Not NewData Then
Set ActSheet = Worksheets.Item("Лист1")
ActSheet.Activate
ValueP = ActSheet.Cells(BeginCell, 2).Value

Set ActSheet = Worksheets.Item("Данные")
ActSheet.Activate
If ActSheet.Cells(CurSumCell - 1, 1).Value <> MonthName(Month(CurData)) Then
ActSheet.Cells(CurSumCell, 4).FormulaR1C1 = "=RC[-2]-RC[-1]"
CurSumCell = CurSumCell + 1
End If
ActSheet.Cells(CurSumCell - 1, 2).Value = ActSheet.Cells(CurSumCell - 1, 2).Value + ValueP
End If
Set ActSheet = Worksheets.Item("Лист1")
ActSheet.Activate
BeginCell = BeginCell + 1
Wend
Set ActSheet = Worksheets.Item("Данные")
ActSheet.Activate
End Sub

Макрос getDay:

Sub getDay()
Dim ActSheet As Worksheet
Dim BeginCell As Integer
Dim SumCell As Integer
Dim CurSumCell As Integer
Dim NewData As Boolean
Dim CurData As Date
Dim ValueP As Integer
Dim MonthNow As String

'Удалим старые записи
Set ActSheet = Worksheets.Item("Данные")
ActSheet.Activate
ActSheet.Range("F5", "G65536").Clear
'Выбираем страницу Расходов
Set ActSheet = Worksheets.Item("Лист3")
BeginCell = 2
CurSumCell = 5
ActSheet.Activate

While ActSheet.Cells(BeginCell, 1).Value <> Empty
NewData = True
SumCell = 5
CurData = ActSheet.Cells(BeginCell, 1).Value
Set ActSheet = Worksheets.Item("Данные")
ActSheet.Activate
'Сравниваем
While ActSheet.Cells(SumCell, 6).Value <> Empty
If CurData = ActSheet.Cells(SumCell, 6).Value Then
NewData = False
End If
SumCell = SumCell + 1
Wend
'Если не нашли
If NewData Then
ActSheet.Cells(CurSumCell, 6).Value = CurData
Set ActSheet = Worksheets.Item("Лист3")
ActSheet.Activate
ValueP = ActSheet.Cells(BeginCell, 2).Value
Set ActSheet = Worksheets.Item("Данные")
ActSheet.Activate
ActSheet.Cells(CurSumCell, 7).Value = ActSheet.Cells(CurSumCell, 7).Value + ValueP
CurSumCell = CurSumCell + 1
End If
'Суммируем
If Not NewData Then
Set ActSheet = Worksheets.Item("Лист3")
ActSheet.Activate
ValueP = ActSheet.Cells(BeginCell, 2).Value
Set ActSheet = Worksheets.Item("Данные")
ActSheet.Activate
ActSheet.Cells(CurSumCell - 1, 7).Value = ActSheet.Cells(CurSumCell - 1, 7).Value + ValueP
End If
Set ActSheet = Worksheets.Item("Лист3")
ActSheet.Activate
BeginCell = BeginCell + 1
Wend

Set ActSheet = Worksheets.Item("Данные")
ActSheet.Activate
End Sub


И наконец последний GetGroup
Sub GetGroup()
Dim ActSheet As Worksheet
Dim BeginCell As Integer
Dim SumCell As Integer
Dim CurSumCell As Integer
Dim NewData As Boolean
Dim CurGroup As String
Dim ValueP As Integer

Set ActSheet = Worksheets.Item("Данные")
ActSheet.Activate
ActSheet.Range("I5", "J65536").Clear
Set ActSheet = Worksheets.Item("Лист3")
BeginCell = 2
CurSumCell = 5
ActSheet.Activate

While ActSheet.Cells(BeginCell, 3).Value <> Empty
NewData = True
SumCell = 5
CurGroup = ActSheet.Cells(BeginCell, 3).Value
Set ActSheet = Worksheets.Item("Данные")
ActSheet.Activate
'Сравниваем
While ActSheet.Cells(SumCell, 9).Value <> Empty
If CurGroup = ActSheet.Cells(SumCell, 9).Value Then
NewData = False
CurSumCell = SumCell + 1
End If
SumCell = SumCell + 1
Wend
'Если не нашли
If NewData Then
If ActSheet.Cells(CurSumCell, 9).Value <> Empty Then
CurSumCell = CurSumCell + 1
End If
ActSheet.Cells(CurSumCell, 9).Value = CurGroup
Set ActSheet = Worksheets.Item("Лист3")
ActSheet.Activate
ValueP = ActSheet.Cells(BeginCell, 2).Value
Set ActSheet = Worksheets.Item("Данные")
ActSheet.Activate
ActSheet.Cells(CurSumCell, 10).Value = ActSheet.Cells(CurSumCell, 10).Value + ValueP
CurSumCell = CurSumCell + 1
End If
'Суммируем
If Not NewData Then
Set ActSheet = Worksheets.Item("Лист3")
ActSheet.Activate
ValueP = ActSheet.Cells(BeginCell, 2).Value
Set ActSheet = Worksheets.Item("Данные")
ActSheet.Activate
ActSheet.Cells(CurSumCell - 1, 10).Value = ActSheet.Cells(CurSumCell - 1, 10).Value + ValueP
End If
Set ActSheet = Worksheets.Item("Лист3")
ActSheet.Activate
BeginCell = BeginCell + 1
Wend
Set ActSheet = Worksheets.Item("Данные")
ActSheet.Activate
ActiveSheet.Shapes("Chart 1").Select
ActiveChart.SetSourceData Source:=Sheets("Данные").Range("I5:J" + CStr(CurSumCell - 1)), PlotBy:= _
xlColumns
End Sub

Вот тут интересный момент
ActiveSheet.Shapes("Chart 1").Select
ActiveChart.SetSourceData Source:=Sheets("Данные").Range("I5:J" + CStr(CurSumCell - 1)), PlotBy:= _
xlColumns

В Range не забудьте указать ваш диапазон, если вы, конечно, меняли форматирование листа «Данные».

Заключение

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

О таблице учета доходов и расходов в excel

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

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

Ссылки для скачивания:

— Скачать учет доходов и расходов семейного бюджета в excel (архив 45КБ)

— Скачать учет доходов и расходов бизнеса в excel (архив 46КБ)

Как начать работу с учетом доходов и расходов в excel:

1. Разархивируйте скачанный архив с файлом с помощью программы 7zip или WinRar.

2. При появлении сообщения о доверенном источнике: закройте программу, кликните правой кнопкой мыши на файле — «Свойства», далее установите галочку напротив «Разблокировать».
сообщение безопасности платежного календаряразблокировать платежный календарь

3. Если в Вашем Excel запуск макросов по умолчанию отключен, в данном окне необходимо нажать «Включить содержимое».включить содержимое

4. Для полноценной работы с файлом необходимо нажать «Разрешить редактирование» при появлении данного сообщения.разрешить редактирование

Планирование доходов и расходов. Виды личных потребностей.

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

Какие же потребности можно отнести к необходимым базовым?

  • Физиологические потребности. Не будем перечислять их все, только те, которые относятся к нашим расходам. А именно потребность в пищи, воде, одежде и жилье (сюда отнесем оплату самого жилья и коммунальных услуг). Данные нужды непосредственно влияют на наше физическое и эмоциональное состояние, поэтому их нельзя игнорировать и необходимо удовлетворять в первую очередь.
  • Потребность в безопасности. В первую очередь сюда можно отнести защищенность собственного здоровья и здоровья членов наших семей. Человек должен быть уверен, что ему ничего не угрожает и, в случае возникновения непредвиденных обстоятельств (например, болезни), он и его семья смогут получить квалифицированную помощь. Сюда же относится и покупка лекарств, что особенно актуально в наше непростое время.
  • Потребность в комфорте. Наше психоэмоциональное состояние напрямую зависит от условий комфорта нашей жизни. Но здесь нужно видеть тонкую грань между необходимыми потребностями, такими как: удобная кровать для сна или обувь для работы, и навязанными: последняя модель телефона, компьютерные игры и т.д..

Инструкция макроса учет доходов и расходов в excel

Рассмотрим главную вкладку макроса «Настройки» на рисунке снизу для потребностей бизнеса. В данном примере учет идет по всей торговой точке. Заведите отдельные строки для каждого продавца, если нужно детализировать продажи:

учет доходов и расходов в excel ип

Рассмотрим главную вкладку макроса «Настройки» на рисунке снизу для ведения семейного бюджета:

учет доходов и расходов в excel

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

Пример учета для бизнеса:

учет доходов и расходов ИП в excel скачать

Пример учета для бизнеса с группировкой статей расходов/доходов:

учет продаж excel

Пример учета для семейного бюджета:

учет доходов и расходов семьи в excel скачать

Макрос создаст 3 таблицы: Перечень доходов, Перечень расходов и Сравнение итогов. Итак, Вы успешно создали шаблон на месяц для учета своих денежных потоков!

Ваши дальнейшие шаги по ведению учета доходов и расходов в excel:

  • Заполняйте столбец «Факт, сумма» таблицы «Перечень доходов» при поступлении средств в Ваш бюджет,
  • Расходы заполняются в детализации по дням, что позволит отслеживать траты в разрезе дневных и недельных сумм, столбец «Факт, сумма» таблицы «Перечень расходов» вычисляется формулами автоматически,
  • Контролируйте баланс доходов и расходов, а также отклонения от плана в сводной таблице «Сравнение итогов»,
  • Радуйтесь сэкономленным средствам!=)

Заказать доработку программы или разработку индивидуального ПО

Спасибо за прочтение данной статьи!

Буду рад, если данная программа окажется полезной для Вас и Вашего бизнеса, с удовольствием отвечу на любые Ваши вопросы в комментариях и по WhatsUp 8(950)709-47-70.

Учет доходов и расходов в excel является лишь скромной демонстрацией моих навыков программирования и работы в Microsoft Excel. Более 10 лет профессионально занимаюсь разработкой в области автоматизации: Excel, Python; парсинг сайтов, написание ботов, имитация действий пользователя и т.д.. Готов взяться за любую задачу, проконсультировать по автоматизации бизнес процессов Вашей организации. Связаться со мной можно по телефону, через сайт или написать на почту: goryaninov@bk.ru

Ссылки для скачивания:

— Скачать учет доходов и расходов семейного бюджета в excel (архив 45КБ)

— Скачать учет доходов и расходов бизнеса в excel (архив 46КБ)

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

— Дневной табель учета рабочего времени в excel
— Почасовой табель учета рабочего времени в excel
— Табель учета рабочего времени в днях по форме Т-13
— Табель расчет и планирование вахты
— Табель учета рабочего времени с учетом ночных смен

Понравилась статья? Поделить с друзьями:
  • Макросы excel для создания таблиц
  • Макросы excel для предприятия
  • Макрос цвет шрифта word
  • Макрос фильтрации столбца в excel
  • Макросы excel для построения диаграмм