Сводка из отчётов филиалов: каждая точка присылает свою таблицу, скрипт собирает общую
Сводить отчёты филиалов руками — день работы в конце месяца. Разбираю, как скрипт собирает таблицы точек в одну и что делать с разными форматами.
Коротко (TL;DR)
- Когда каждая точка присылает свою таблицу, общую сводку кто-то собирает руками. Скрипт может делать это сам: читать файлы филиалов и складывать их в одну таблицу.
- Скрипт понимает разные версии шаблона, проверяет пустые ячейки и текст вместо чисел и сразу показывает, где ошибка.
- Владелец видит общий итог и сравнение точек, а тем, кто не прислал отчёт, уходит напоминание. Следующий шаг — брать данные прямо из учёта.
У сети несколько точек. Каждая в конце дня или недели присылает таблицу: выручка, чеки, расходы, остатки. Файлы приходят в почту, в мессенджер, в общую папку. Потом бухгалтер или управляющий открывает их по одному и переносит цифры в сводную таблицу. Это долго, и ошибки неизбежны. Я настраиваю скрипты, которые собирают такие отчёты сами. Расскажу, как это устроено и что нужно учесть заранее.
Почему ручная сводка ломается
Проблема не в том, что людям лень. Проблема в том, что таблицы у всех немного разные. Одна точка добавила столбец. Другая переименовала лист. Третья пишет выручку с пробелами и словом «руб.». Четвёртая прислала файл за прошлую неделю под новым именем.
Человек, который сводит отчёты, всё это исправляет в голове. Пока он на месте, сводка работает. Когда он в отпуске или болеет, сводки нет. А ошибка при переносе одной цифры может неделю искажать картину по всей сети.
Единый шаблон или скрипт, который понимает старые
Самый надёжный путь — один шаблон для всех точек. Одинаковые листы, одинаковые столбцы, защищённые ячейки с формулами. Точка заполняет только поля для ввода. Скрипту тогда легко читать файлы, а людям легко привыкнуть.
Но сразу перевести всех на новый шаблон получается не всегда. Есть архив за прошлые месяцы, и его тоже хочется видеть в сводке. Поэтому скрипт учится читать и старые версии. Он ищет нужные столбцы по заголовкам и знает, что «Выручка», «Выручка, руб» и «Выр.» — одно и то же. Список таких совпадений мы составляем вместе на старте.
Если таблицы живут в облаке, скрипт читает их напрямую. Как устроены такие скрипты в самих таблицах, я разбирал в статье скрипт для Google Таблиц.
Проверка ошибок до того, как цифры попадут в итог
Сводка полезна, только если ей можно верить. Поэтому каждый файл сначала проходит проверку. Скрипт смотрит, заполнены ли обязательные ячейки. Проверяет, что в поле для суммы стоит число, а не текст. Замечает отрицательную выручку, дату не из того периода и цифры, которые сильно отличаются от обычных для этой точки.
| Проблема в таблицах филиалов | Как решает скрипт | Что видит владелец |
|---|---|---|
| Разные версии шаблона | Находит столбцы по заголовкам и списку синонимов | Все точки в одной сводке, включая старые месяцы |
| Пустые обязательные ячейки | Помечает файл и не берёт его в итог молча | Точку с пометкой «данные неполные» |
| Текст вместо чисел | Убирает пробелы и валюту, остальное отмечает как ошибку | Чистые суммы или явную пометку об ошибке |
| Файл не за тот период | Сверяет дату в отчёте с ожидаемой | Предупреждение вместо неверных цифр |
| Отчёт не прислан | Отправляет напоминание ответственному | Список точек, от которых ещё нет данных |
| Странный скачок цифр | Сравнивает с обычными значениями точки | Флажок «проверить» рядом с цифрой |
Главное правило: ошибочный файл не попадает в итог тихо. Лучше честная пометка «точка не сдала», чем сумма, в которой половина цифр неверна.
Общий итог и сравнение точек
Сводная таблица делится на два слоя. Первый — сырые данные: одна строка на точку и период. Этот лист скрипт перезаписывает сам. Второй — отчёт для владельца: итог по сети, сравнение точек между собой, динамика по неделям. Здесь формулы и графики, которые можно менять без риска сломать сбор.
Сравнение точек обычно самое полезное. Видно, где средний чек ниже, где расходы растут быстрее выручки, какая точка стабильно отстаёт. Подробнее о том, какие показатели смотреть по каждой точке, я писал в статье выручка каждой точки и контроль сети.
Напоминания тем, кто не прислал
Отчёт должен прийти к сроку. Если к назначенному времени файла от точки нет, скрипт пишет ответственному в Telegram или MAX. Коротко: какой отчёт, за какой период, куда положить. Если отчёта нет и после второго напоминания, сообщение уходит управляющему.
Так никому не нужно обзванивать точки. А владелец в сводке видит не только цифры, но и дисциплину: кто сдаёт вовремя, а кто постоянно тянет.
Следующий шаг — сбор напрямую из учёта
Таблицы от филиалов — это переходный этап. Если точки работают в 1С или другой учётной системе, данные можно брать оттуда напрямую. Тогда никто ничего не заполняет, а ошибок ввода просто нет.
Но начинать с таблиц часто разумнее. Это быстро, привычно для людей и сразу показывает, какие цифры реально нужны. Когда набор показателей устоится, его проще перенести на прямую выгрузку из учёта.
Как это выглядит, когда настроено
Вечером управляющие точек заполняют привычную таблицу и кладут её в общую папку. Ночью скрипт собирает все файлы, проверяет их и обновляет сводку. Одна точка забыла прислать отчёт, и ответственному ушло напоминание ещё вечером.
Утром владелец открывает сводную таблицу. Вверху дата обновления и список точек, от которых всё пришло. Ниже итог по сети и сравнение точек. У одной точки стоит флажок: выручка сильно ниже обычной. Владелец пишет управляющему и за пять минут узнаёт причину. Никто не сидел полдня над файлами.
Как заказать такую задачу
Пришлите примеры таблиц от двух-трёх точек, лучше разных версий. Напишите, как файлы сейчас попадают к вам и какой итог вы хотите видеть. Расскажите, кто сейчас сводит отчёты и сколько времени это занимает.
Я смотрю файлы и даю оценку. Потом договариваемся о шаблоне, правилах проверки и сроках сдачи. Настраиваю сбор, сверяю сводку за прошлый период с тем, что вы считали руками. Передаю таблицу, инструкцию для точек и владельца, доступы. После сдачи есть гарантийный срок на исправление ошибок в моей работе.
Если точек немного и шаблон устоялся, это разовая задача. Если сеть растёт, точки добавляются, а показатели меняются, удобнее абонентка. Формат разовых работ описан на странице разовые задачи: скрипты, парсеры, выгрузки.
Частые вопросы
Точки присылают файлы в мессенджер, а не в папку. Это подойдёт?
Да. Бот может принимать файлы в Telegram или MAX и сам класть их в нужное место.
Что делать с Excel-файлами на компьютерах точек?
Их можно загружать в общую папку. Скрипт читает и такие файлы, и облачные таблицы.
Можно ли добавить новую точку без программиста?
Да. В инструкции описано, как завести точку в списке, и скрипт начнёт её ждать.
Увидят ли управляющие цифры других точек?
Нет, если так договориться. Сводку видят только владелец и те, кому он дал доступ.
Сколько точек потянет такая сводка?
Для сети из нескольких десятков точек таблицы хватает. Дальше разумнее переходить на выгрузку из учёта.
Коротко о главном
Ручная сводка отчётов филиалов держится на одном человеке и копит ошибки. Скрипт забирает таблицы точек, понимает разные версии шаблона и собирает общую картину без переписывания цифр.
Каждый файл проходит проверку: пустые ячейки, текст вместо чисел, не тот период. Ошибки видны сразу, а не через месяц. Тем, кто не прислал отчёт, уходит напоминание, а владелец видит итог и сравнение точек.
Если у вас кто-то каждую неделю сводит таблицы филиалов руками, пришлите пару примеров файлов. Скажу, что можно собирать автоматически. Напишите в Telegram, MAX или VK.
Небольшие задачи без большого проекта
- Сводки, выгрузки и отчёты в таблицы
- Скрипты и обработка каталога пачкой
- Боты для сотрудников и клиентов
- Абонентка: присмотр и поддержка
Бесплатно: чек-лист «Готов ли ваш бизнес к 152-ФЗ»
12 пунктов, которые проверяют готовность за час: данные, согласия, уведомление в РКН, локализация, защита. Отметьте, что уже сделано, и увидите дыры, за которые сейчас штрафуют.
Готовы обсудить вашу задачу?
Бесплатная консультация — разберём, как внедрить это в вашем бизнесе под ключ. Без форм, пишите напрямую.
Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.


