09.07.20
25K
38

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

Опыт читателя Т⁠—⁠Ж

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Выводы

  1. В любой неожиданной и даже неприятной ситуации надо искать возможности! Из-за ограничений на перемещения, введенных по всему миру, у меня сорвались две долгожданные поездки, но взамен появилось свободное время. Мне удалось потратить его с пользой.
  2. Даже самое удобное банковское приложение не защищает клиента от ошибочных списаний его денег со счета. А если банков несколько? Для контроля нужен независимый источник информации об операциях.
  3. Главное в учете финансов — это понимание того, чего вы хотите добиться с его помощью. Единственно верного ответа нет: цели, задачи, потребности у всех разные. И здорово, что нам доступен большой выбор инструментов для решения наших задач.
Редакция
Следите за бюджетом при помощи той самой таблички или мобильного приложения? Рассказывайте, каких функций вам не хватает:
Герой статьи

Если вам близок мой подход к учету финансов, то вот ссылка на само приложение в Google Play: https://vk.cc/auQKUT
С 10 по 17 июля его можно скачать бесплатно. Мне будет приятно, если результаты моего труда окажутся вам полезными :)

23

Lazy, 10 июля, он платное в сторе. Обман?

0

Алекс, сейчас бесплатное. Видимо Ваш часовой пояс не совпал с Гулом. :)

3
Герой Т—Ж 🏆

Зачем копировать формулы, когда можно превратить таблицу в умную и не париться на этот счет?
Когда увидел, что начались проблемы с вычислениями из-за большого количества строк, ожидал явно не цифры в пять тысяч)
Мутная история с экселем, короче, но ход конем в такой ситуации и создание своего приложения - это сильно!

6

Я пользуюсь бесплатной версией Zenmoney, чтобы отслеживать все операции по нескольким картам разных банков (моя основная / зарплатная / для стипендии).

А бюджет веду в “той самой” табличке Google из статьи 2015 года, которую я почти полностью переделал под себя. Помимо полей доходов, обязательных расходов и ежедневных трат, добавил поле с расчетом своей вариации «правила 50/20/30»: я обязательные расходы вычитаю из доходов, а уже остаток делю (процентное соотношение можно настроить под себя) на траты (из этой суммы рассчитывается лимит по ежедневным расходам), накопления, образование, инвестиции и благотворительность. И все это с возможностью контроля того, сколько уже потрачено, какой остаток и тд. Также добавил поле контроля доходов и расходов по сберегательным счетам.

Если кому-то интересно посмотреть на мою версию таблицы, напишите, скину под комментом

3

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

0

ЮРИЙ, ссылка на таблицу: https://vk.cc/awO7IT

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

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

0

Сергей, добрый день! Тоже интересно посмотреть, скиньте, пожалуйста

0

Никита, здравствуйте , вот: https://vk.cc/awO7IT
Краткий гайд по таблице в моем комментарии выше

1
Герой статьи

Благодаря комментариям здесь и отзывам в Google Play, в приложении появляются новые функции.

В Google Play уже доступна новая версия с возможностью удаления операций и кошельков. Еще одно нововведение - возможность добавить валюты кроме RUB, USD, EUR - это пригодится пользователям, живущим за пределами РФ, Евро-зоны и США.

3

Подскажите, пожалуйста:
1. Данные хранятся только в телефоне? При его утере / выходе из строя начинаем вести бюджет с нуля?
2. Синхронизации с ПК нет? Лично мне намного удобнее оперировать цифрами на большом экране с удобной клавиатурой.

2
Герой статьи

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

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

2

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

0
Герой статьи

Nikita, уже сейчас можно вручную сделать экспорт данных с телефона в Google Drive, отправить по почте или через любую другую программу - экспорт делается в виде файла в формате CSV, который можно открыть в Excel.

Автоматическую синхронизацию, наверное, тоже можно реализовать с учетом двух моментов:
1. Приложению потребуется дать разрешение на работу с файловой системой телефона, чтобы и приложение, и Google Drive могли взаимодействовать с одним и тем же файлом.
2. Надо реализовать решение конфликтных ситуаций: например, телефон был не в сети, пользователь отредактировал запись на телефоне, а потом отредактировал эту же запись на компьютере. Потом телефон подключился к сети - как ему понять, какую версию использовать? С телефона или с компьютера? Или спросить пользователя? А если он поменял 100 записей, спрашивать про каждую запись или сразу про все? Что делать, если пользователю не понравится результат? Google Drive сделает проще - сохранит обе версии файла, чтобы пользователь потом сам разбирался. А в финансовом приложении нужна точность. В общем, задача интересная и нетривиальная.

3

Lazy, окей, приложение топ. Спасибо)

0

Lazy, могу скинуть поудобнее таблицу только куда?

0
Герой Т—Ж

автор молодец

2

Эксель не бесплатный, и уж тем более не абсолютно

2
Герой статьи

Леонид, кроме Microsoft Excel, который действительно платный в версии для PC и Mac, есть много бесплатных аналогов: Google Spreadsheets, OpenOffice/LibreOffice, Numbers от Apple и другие реализации электронных таблиц. Если нет каноничного Экселя, то это не проблема - базовые формулы везде одинаковые.

0

Lazy, ожидаемый ответ. Функционал экселя значительно отличается от бесплатных аналогов. Не в обиду вам будет сказано, но если для вас эксель это сумма двух ячеек, то разницы, действительно, нет. Для меня, например, даже удобство в настройке сводных таблиц уже заставляет пользоваться привычным приложением от MS. А разбираться в бесплатных приложениях, это опять же неперспективная трата времени.

Ну и потом, в гугле же вы авторизуетесь, и именно это вам и не нравилось в приложениях на рынке. Так что это точно не абсолютно бесплатно, именно это абсолютно меня и зацепило. Спасибо за статью!

1

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

1

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

1

Вот, я нашел его. https://play.google.com/store/apps/details?id=com.kb404.money

1

слишком сложно

0

Дайте нормальную ссылку на приложение, пожалуйста - меня кидает на короткие ссылки в Вк, а в гугл плее не находит приложения с таким же значком🤷‍♀️
Предлагаю немного изменить название приложения, что бы его могли легко найти в тысяче таких же приложений

0
Герой статьи

Akumus, прямая ссылка https://play.google.com/store/apps/details?id=com.kb404.money
Приложение можно найти по слову "kb404"

0

Lazy, нашла) Спасибо большое🤗

1

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

0

Пользуюсь мобильным приложением Mofix Pro.
Формат xlsx.
Бэкапы, синхронизация с google диск.

0

Вот что еще мы писали по этой теме

Сообщество Т—Ж

Лучшее за неделю