Эксельки
61K

Как превратить таблицу «Эксель» в приложение по учету финансов

Опыт читателя Т⁠—⁠Ж
43
Этот текст написал читатель Т⁠—⁠Ж. Если вы тоже хотите поразмышлять о чем-то вслух и открыть свою дискуссию, заполните эту форму.

Я сделал собственное приложение для контроля за финансами.

Аватар автора

Lazy IT Man

провел самоизоляцию с пользой

Страница автора

Лет десять назад я, как и большинство жителей России, пользовался исключительно наличными. Позже появилась зарплатная карта в том самом банке. Вопросов, на что уходят деньги и сколько их у меня вообще, не возникало, так как денег в виде сбережений особо и не было ¯\_(ツ)_/¯

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

Лейбл заголовка

Первые попытки ведения бюджета

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

Что мне не нравилось в мобильных приложениях по ведению бюджета:

  1. Обязательная регистрация. Этого никогда не понимал!
  2. Требование дать доступ к конфиденциальной информации смартфона — контактам, файлам, системным настройкам. Особенно актуально для уже устаревших версий Андроида, где приложения запрашивали сразу все необходимые разрешения при установке.
  3. Неприятные нюансы вроде поддержки только одной валюты или наличия рекламы.
  4. Непонятно, как и кем используются мои данные и что вообще с безопасностью удаленного хранения финансовой информации.

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

Лейбл заголовка

Таблица в «Экселе»: плюсы, минусы, подводные камни

Возвращаться к мобильным приложениям я не хотел, так как помнил, какие с ними были проблемы. Делать свое веб-приложение — тогда я зарабатывал на жизнь именно этим — было лень. К тому же не хотелось зависеть от наличия интернета и тратить время и деньги на поддержку сервера. И тут на помощь пришел старый добрый «Эксель».

Преимуществ у электронных таблиц масса:

  1. Независимость от платформы. Хочешь — фиксируй траты на телефоне с Андроидом, а хочешь — анализируй сводку на Макбуке или традиционном компьютере с Виндоус.
  2. Функциональность ограничена только фантазией.
  3. Формулы либо элементарны, либо хорошо задокументированы.
  4. Абсолютно бесплатно!

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

В итоге таблица обрела следующую структуру.

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

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

Звучит слишком сложно? Полностью с вами согласен! Наиболее утомительная часть всего учета — переводы между счетами — была реализована в виде пары операций: расходной с одного счета и доходной для другого.

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

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

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

Лист 4. Категории. Раньше назывался «Бюджет», но когда я понял, что по факту еще не дорос до этой темы, лист превратился в источник категорий. Одно время я делал сводные таблицы по месяцам и категориям, но особой пользы не нашел.

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

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

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

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

Лейбл заголовка

Как сделать свое приложение на самоизоляции

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

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

  1. Управление операциями: расходы, доходы, переводы. Это само собой.
  2. Поддержку категорий и счетов. Обязательно с возможностью архивации, чтобы неактуальная категория или закрытый вклад не мозолили глаза.
  3. Мультивалютность и выделение цветом.
  4. Возможность выгрузить данные обратно в электронную таблицу для бэкапа или детального анализа.

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

Все задуманное удалось реализовать. Конечно же, пришлось дополнительно изучить массу документации по работе с базами данных и многопоточности на Андроиде, внедрить рекомендуемые «Гуглом» компоненты для построения архитектуры приложения, которое позже не будет мучительно больно поддерживать.

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

Я с самого начала планировал опубликовать приложение в «Гугл-плее», поэтому добавил пару подсказок для новых пользователей и перевод на английский для мира за пределами РФ. Хотя изначально приложение рассчитано на русскоязычную аудиторию.

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

Итого на онлайн-курсы по мобильной разработке я потратил три недели, на создание базовой версии приложения — четыре. И курсами, и приложением занимался по вечерам после работы, по выходным и праздникам. На публикацию приложения в «Гугл-плее» ушла ровно одна неделя и 25 $. За это время я верифицировал аккаунт разработчика, а приложение прошло проверку сотрудников «Гугла» на соответствие правилам платформы и отсутствие вреда для пользователей.

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

Лейбл заголовка

План развития

Основные функции реализованы, но развитие на этом не останавливается. План следующий.

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

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

Ценные бумаги. Та же проблема, что и с банками: исторически сложилось, что ИИС открыт у одного брокера, ОФЗ-н куплены у другого, а акции иностранных компаний — у третьего. Так что нужен инструмент для мониторинга суммарного баланса, роста и уменьшения стоимости. Это единственная область учета финансов, которая временно продолжит жить в моей электронной таблице. Но, так как от таблицы хочу полностью отказаться, учет ценных бумаг тоже перенесу в приложение.

Лейбл заголовка

Выводы

  1. В любой неожиданной и даже неприятной ситуации надо искать возможности! Из-за ограничений на перемещения, введенных по всему миру, у меня сорвались две долгожданные поездки, но взамен появилось свободное время. Мне удалось потратить его с пользой.
  2. Даже самое удобное банковское приложение не защищает клиента от ошибочных списаний его денег со счета. А если банков несколько? Для контроля нужен независимый источник информации об операциях.
  3. Главное в учете финансов — это понимание того, чего вы хотите добиться с его помощью. Единственно верного ответа нет: цели, задачи, потребности у всех разные. И здорово, что нам доступен большой выбор инструментов для решения наших задач.
РедакцияСледите за бюджетом при помощи той самой таблички или мобильного приложения? Рассказывайте, каких функций вам не хватает:
  • Alex Mobileслишком сложно0
  • LazarevvitzЗачем копировать формулы, когда можно превратить таблицу в умную и не париться на этот счет? Когда увидел, что начались проблемы с вычислениями из-за большого количества строк, ожидал явно не цифры в пять тысяч) Мутная история с экселем, короче, но ход конем в такой ситуации и создание своего приложения - это сильно!6
  • Lazy IT manЕсли вам близок мой подход к учету финансов, то вот ссылка на само приложение в Google Play: https://vk.cc/auQKUT С 10 по 17 июля его можно скачать бесплатно. Мне будет приятно, если результаты моего труда окажутся вам полезными :)26
  • Алекс МизантропLazy, 10 июля, он платное в сторе. Обман?0
  • Владимир ЛапшинПодскажите, пожалуйста: 1. Данные хранятся только в телефоне? При его утере / выходе из строя начинаем вести бюджет с нуля? 2. Синхронизации с ПК нет? Лично мне намного удобнее оперировать цифрами на большом экране с удобной клавиатурой.2
  • Владимир ЛапшинАлекс, сейчас бесплатное. Видимо Ваш часовой пояс не совпал с Гулом. :)3
  • Alex Freemanавтор молодец2
  • Lazy IT manВладимир, данные действительно хранятся только на телефоне. При этом в приложении реализована функция экспорта/импорта данных. Это поможет при запланированной смене телефона для миграции данных или, например, для передачи на ПК. При потере телефона или его выходе из строя, конечно же, экспорт/импорт не поможет, если нет привычки делать бекап. В принципе, потребность синхронизации понятна, но надо продумать, как сделать это безопасно и не во вред приватности данных.2
  • Nikita LeonovLazy, можно экспортировать таблицу в папку, которая будет синхронизироваться например с гугл диском. И сделать так чтобы приложение после каких либо манипуляций с таблицей автоматически сохраняло таблицу, и гугл диск автоматом сохранит её. Так возможно?)0
  • Lazy IT manNikita, уже сейчас можно вручную сделать экспорт данных с телефона в Google Drive, отправить по почте или через любую другую программу - экспорт делается в виде файла в формате CSV, который можно открыть в Excel. Автоматическую синхронизацию, наверное, тоже можно реализовать с учетом двух моментов: 1. Приложению потребуется дать разрешение на работу с файловой системой телефона, чтобы и приложение, и Google Drive могли взаимодействовать с одним и тем же файлом. 2. Надо реализовать решение конфликтных ситуаций: например, телефон был не в сети, пользователь отредактировал запись на телефоне, а потом отредактировал эту же запись на компьютере. Потом телефон подключился к сети - как ему понять, какую версию использовать? С телефона или с компьютера? Или спросить пользователя? А если он поменял 100 записей, спрашивать про каждую запись или сразу про все? Что делать, если пользователю не понравится результат? Google Drive сделает проще - сохранит обе версии файла, чтобы пользователь потом сам разбирался. А в финансовом приложении нужна точность. В общем, задача интересная и нетривиальная.3
  • Nikita LeonovLazy, окей, приложение топ. Спасибо)0
  • Сергей ОпрышкоЯ пользуюсь бесплатной версией Zenmoney, чтобы отслеживать все операции по нескольким картам разных банков (моя основная / зарплатная / для стипендии). А бюджет веду в “той самой” табличке Google из статьи 2015 года, которую я почти полностью переделал под себя. Помимо полей доходов, обязательных расходов и ежедневных трат, добавил поле с расчетом своей вариации «правила 50/20/30»: я обязательные расходы вычитаю из доходов, а уже остаток делю (процентное соотношение можно настроить под себя) на траты (из этой суммы рассчитывается лимит по ежедневным расходам), накопления, образование, инвестиции и благотворительность. И все это с возможностью контроля того, сколько уже потрачено, какой остаток и тд. Также добавил поле контроля доходов и расходов по сберегательным счетам. Если кому-то интересно посмотреть на мою версию таблицы, напишите, скину под комментом3
  • Lazy IT manМихаил, потратил, и даже не 10 минут =) чем не нравятся существующие приложения, подробно описал в начале статьи - см. список из 4 пунктов "Что мне не нравилось в мобильных приложениях по ведению бюджета".0
  • ЮРИЙ КИРИЦАСергей, добрый день. Интересно, посмотреть, Вашу версию таблицы. Скиньте, пожалуйста.0
  • Никита НосовСергей, добрый день! Тоже интересно посмотреть, скиньте, пожалуйста0
  • Сергей ОпрышкоЮРИЙ, ссылка на таблицу: https://vk.cc/awO7IT Для начала таблицу нужно скопировать себе и очистить поля (главное случайно не удалить формулы). Я там оставил 2 месяца и заполнил их примерными цифрами, чтоб понять, как все работает. Можно поиграться с цифрами, понажимать ячейки и посмотреть, какие там формулы используются и настроить под себя. Для создания нового месяца достаточно скопировать текущий лист и переименовать его. Можно сделать так, чтоб месяц начинался не с первого числа, для этого надо поменять дату начала. Цифры в скобочках - это даты доходов и обязательных расходов (чтоб понимать, когда чего ожидать). Остатки на счетах можно переносить с предыдущего месяца (смотрите формулы).0
  • Сергей ОпрышкоНикита, здравствуйте , вот: https://vk.cc/awO7IT Краткий гайд по таблице в моем комментарии выше1
  • Дмитрий МанушкинLazy, а можно глянуть на Вашу таблицу, а точнее - лист 5 ценные бумаги? И когда примерно планируете "учёт ценных бумаг" в приложении реализовать?0
  • Братец КроликЭксель не бесплатный, и уж тем более не абсолютно2
  • Lazy IT manДмитрий, скриншот есть прямо под текстом про лист 5 - вот он https://img-cdn.tinkoffjournal.ru/from-excel-to-app-accounts.0siffdi8hj6v.PNG Работа над "ценными бумагами" уже в процессе, но довольно велика по трудоемкости. Надеюсь, что внедрю изменения в течение 4-6 недель, но это неточно. До этого точно выйдет одно или несколько обновлений с другими улучшениями.0
  • Lazy IT manЛеонид, кроме Microsoft Excel, который действительно платный в версии для PC и Mac, есть много бесплатных аналогов: Google Spreadsheets, OpenOffice/LibreOffice, Numbers от Apple и другие реализации электронных таблиц. Если нет каноничного Экселя, то это не проблема - базовые формулы везде одинаковые.0
  • Vladimir NoskovУже 11 лет использую Дребеденьги для учета расходов-доходов и статистики, и ничего лучше так и не встречал. А вот для учета и отчетности по своему инвестиционному портфелю предпочитаю свою собственную гугло-таблицу - правда, боюсь, с годами она начнет тормозить от внесенного кол-ва операций, обновления котировок и перерасчетов1
  • Akumus KaurДайте нормальную ссылку на приложение, пожалуйста - меня кидает на короткие ссылки в Вк, а в гугл плее не находит приложения с таким же значком🤷‍♀️ Предлагаю немного изменить название приложения, что бы его могли легко найти в тысяче таких же приложений0
  • Lazy IT manAkumus, прямая ссылка https://play.google.com/store/apps/details?id=com.kb404.money Приложение можно найти по слову "kb404"0
  • Dmitry ShevelevВсе подобные программы предусматривали ввод каждой операции, да ещё по куче счетов, да ещё разные валюты.. и потом полную нечитаемость всего этого лога. Поэтому я ни одним из них так и не смог пользоваться, а сделал себе таблицу в один лист - один год, где траты это просто суммы в категориях и вводятся через + , там же остатки, бюджетирование, планирование, кредиты и тд. Может выглядит не очень красиво зато мне понятно) Приложение моё наверно тоже бы по другому выглядело)0
  • Братец КроликLazy, ожидаемый ответ. Функционал экселя значительно отличается от бесплатных аналогов. Не в обиду вам будет сказано, но если для вас эксель это сумма двух ячеек, то разницы, действительно, нет. Для меня, например, даже удобство в настройке сводных таблиц уже заставляет пользоваться привычным приложением от MS. А разбираться в бесплатных приложениях, это опять же неперспективная трата времени. Ну и потом, в гугле же вы авторизуетесь, и именно это вам и не нравилось в приложениях на рынке. Так что это точно не абсолютно бесплатно, именно это абсолютно меня и зацепило. Спасибо за статью!1
  • Akumus KaurLazy, нашла) Спасибо большое🤗1
  • Иван ОсиповПользуюсь таблицей, похожей на то, что было у автора в начале. Для удобства, каждый месяц начинаю новую табличку из шаблона. Еще один файл - сводная таблица за год, где можно посмотреть, как менялись доходы и расходы по категориям в течение года.1
  • You CanLazy, могу скинуть поудобнее таблицу только куда?0
  • Сережа ПолежаевВот, я нашел его. https://play.google.com/store/apps/details?id=com.kb404.money1
  • Lazy IT manБлагодаря комментариям здесь и отзывам в Google Play, в приложении появляются новые функции. В Google Play уже доступна новая версия с возможностью удаления операций и кошельков. Еще одно нововведение - возможность добавить валюты кроме RUB, USD, EUR - это пригодится пользователям, живущим за пределами РФ, Евро-зоны и США.3
  • Denis ZПользуюсь мобильным приложением Mofix Pro. Формат xlsx. Бэкапы, синхронизация с google диск.0
  • Chuprunovg.gray, попробовал. Висит сильно.0
  • как тутDmitry, могу посоветовать Moze 3.0 (правда, оно на английском). Там можно вести и кредитки. Отчёты в самом приложении самые мощные, которые я находил. К этому приложению пришёл спустя пару лет поиска подходящего.1
  • Dmitry Shevelevне рекламы ради, но в итоге я купил подписку на телеграм бот МОБС, которому отправляю расходы, на выходе имею аналогичную гугл таблицу по категориям) точность повысилась серьезно)0
  • DenysДобрый день! Хотел спросить, возможно ли посмотреть вашу табличку в Google Sheets более детально?0
  • DenysДобрый день, Спасибо за статью! Хотел спросить, возможно ли просмотреть вашу таблицу в "Экселе" более детально?0
  • EDGOR VeabilemА что на ЛОГО приложения изображено, не могу понять)0