Когда Google Таблиц хватает, а когда уже нужна база данных

Google Таблицы в малом бизнесе почти всегда появляются раньше учётной системы — и это разумно: процесс меняется быстрее, чем его успевают описать. Вопрос не в том, хороший ли это инструмент, а в том, где у него граница. Обычно её ищут в объёме данных, а находят в другом месте: в числе людей, которые одновременно правят один лист, и в цене ошибки, которую никто не проверяет.

Коротко

  • Технический предел листа Google Таблиц — 20 млн ячеек или 100 МБ, в одну ячейку влезает до 50 000 символов. Реестр из 300 заявок в месяц при 20 колонках — это около 72 тысяч заполненных ячеек в год, то есть до предела далеко.
  • Через API лист читается 60 раз в минуту на пользователя и 300 раз на проект, а запрос дольше 180 секунд завершается ошибкой. Значит, «живая» таблица как хранилище для сайта или бота работает только на небольших объёмах.
  • В полевых аудитах с 1995 года ошибки нашли в 88% из 113 проверенных реальных таблиц (сводка Панко, Journal of End User Computing); даже после аккуратной разработки ошибки есть примерно в 1% формульных ячеек.
  • Таблица ломается не от объёма, а от людей: одновременная правка одних строк, права только на файл целиком, история без контекста, связи между листами через ВПР и ручная сборка сводки.
  • Переезд не обязательно означает «всё сразу»: таблица может остаться интерфейсом для ввода и выгрузки, а хранение, права и связи уходят в базу — так работу не останавливают.

Почему таблица выигрывает у учётной системы на старте

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

Второе преимущество — доступ. Таблица открывается с телефона, её расшаривают на подрядчика и бухгалтера, в ней работают формулы, фильтры, сводные и скрипты. Для многих задач этого достаточно навсегда: реестр заявок на 200–300 строк в месяц, график смен, остатки по партиям, план закупок, список клиентов с историей заказов.

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

Предел наступает по людям, а не по объёму

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

  • Одновременная правка. Пока пишет один, конфликтов нет. Когда трое правят одни и те же строки, появляются перезаписанные значения: двое открыли заявку, оба поменяли статус, сохранился последний вариант — и никто не заметил.
  • Права. В таблице доступ дают на файл или на лист, а не на строку клиента. Менеджеру, которому нужен только свой блок, приходится открывать выручку всего отдела.
  • История. Версии файла показывают, кто и когда менял ячейку, но не объясняют, почему заявка стала «закрыта» без оплаты. Разбор занимает вечер.
  • Связи. Как только появляется третий лист и ВПР между ними, перестановка колонки ломает формулы молча: ключ не находится, в половине строк появляется «#Н/Д», а часть расчётов остаётся с прежними числами.
  • Ручной перенос. Самый дорогой пункт: сводка собирается копированием из трёх файлов, и в ней каждый раз немного разные цифры — потому что копировали в разное время.

Что показывают цифры: лимиты и цена ошибок

Точные пределы полезно знать: они снимают часть страхов. «Таблица не выдержит» обычно относится не к объёму, а к способу работы с ней.

20 млн ячеек
предел листа Google Sheets (или 100 МБ)
50 тыс. символов
максимум в одной ячейке
60 в минуту
чтений через API на пользователя
180 сек
таймаут одного запроса к API
Официальные ограничения Google: файл таблицы — до 20 млн ячеек или 100 МБ; в ячейку влезает до 50 000 символов; в Sheets API — 300 чтений и 300 записей в минуту на проект и по 60 на пользователя, запрос дольше 180 секунд завершается ошибкой. Источники: справка Google Drive и документация Sheets API.

Для ориентира: реестр из 300 заявок в месяц при 20 колонках — это 72 тысячи заполненных ячеек в год. До 20 миллионов далеко, и телефон такие объёмы открывает. Значит, технический предел наступает не от размера, а от ошибок и от ручной работы вокруг таблицы.

Ошибки — вторая сторона. Сводка Рэймонда Панко (Journal of End User Computing, 1998, ред. 2008) собирает 13 полевых аудитов реальных таблиц: с 1995 года ошибки нашли в 88% из 113 проверенных таблиц, а доля ошибок в формульных ячейках — примерно 1% и выше даже после аккуратной разработки. В больших таблицах с тысячами формул это десятки необнаруженных ошибок.

Доля таблиц с ошибками в полевых аудитахДоля проверенных таблиц, в которых нашли ошибки: 91% в аудите Coopers and Lybrand 1997 года (23 таблицы), 91% в аудите KPMG 1998 года (22 таблицы), 88% по итогу семи исследований с 1995 года (113 таблиц), 64% в исследовании Powell и коллег 2007 года (25 таблиц)0255075100Доля таблиц с найденными ошибками, %Coopers & Lybrand, 199791%KPMG, 199891%Итог 7 аудитов с 199588%Powell и др., 200764%
Рисунок можно прокрутить вбок →
Сводка полевых аудитов Рэймонда Панко (Journal of End User Computing, 1998, ред. 2008): у Coopers & Lybrand — 23 таблицы длиннее 150 строк с расхождением не менее 5%, у KPMG — 22 таблицы и только значимые ошибки, итог с 1995 года — 113 таблиц в 7 исследованиях, у Powell, Lawson и Baker — 25 таблиц. Методики аудита и определение «ошибки» в исследованиях разные, поэтому столбцы показывают порядок величины, а не строгий рейтинг.

Цена таких ошибок хорошо видна в подборке EuSpRIG: полиция Северной Ирландии опубликовала персональные данные 10 799 сотрудников из-за лишнего листа в таблице — регулятор оштрафовал организацию на 750 тысяч фунтов; норвежский суверенный фонд потерял около 92 миллионов долларов из-за неверно введённой даты; а в деле о поддельных данных список клиентов выдал себя тем, что в нём оказалось ровно 1 048 576 строк — предельный размер листа в Excel.

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

Как таблица превращается в операционную систему

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

Путь от заявки до решения внутри таблицыПять шагов: заявка приходит из почты или мессенджера, вручную превращается в строку листа, проверяется глазами менеджера, попадает в сводку копированием и становится основанием для решения. Красным отмечено, где появляются расхождения1Заявкапочта, мессенджер,звонок2Строка в листеручной ввод или форма3Проверкаглазами менеджерадубли не ловятся4Сводкакопирование из 3листовцифры расходятся5Решениераз в неделю, посводкеКрасным — где таблица теряет точность: ручная проверка и ручная сводка
Рисунок можно прокрутить вбок →
Схема структурная: это типичный путь таблицы в малом бизнесе, а не отраслевая статистика. Красные метки — шаги, с которых начинают автоматизацию: проверка на дубли при вводе и сборка сводки без копирования.

Три признака, что пора базу

Решение принимается не по объёму, а по свойствам процесса. Достаточно ответить на несколько вопросов — и таблица сама покажет, где ей тесно.

Сравнение по признакам процесса, а не по размеру файла. Первые три строки — организационные, их видно без технических замеров; оценка по последней строке — наша практика, а не отраслевой норматив.
ПризнакКак это выглядит в таблицеЧто даёт база
Один факт нужен в двух местахВПР между листами и ручное копированиеОдна запись, связи по ключу
Нужны разные права на части данныхДоступ на файл или лист целикомПрава на запись и на роль
Нужно знать, кто и почему изменилВерсии файла без контекстаЖурнал изменений по записи
Данные приходят с сайта, из бота, из 1ССкрипт пишет в лист, при одновременной записи теряются строкиПриём через API с проверкой и повторами
Объём растёт быстрее 1–2 тысяч строк в месяцСводные пересчитываются долго, телефон подвисаетИндексы и выборки по срезу

Если «да» получено только по последней строке — чаще всего достаточно навести порядок в самой таблице: обязательные поля, проверка форматов, отдельный лист-справочник вместо копий. Если «да» по первым трём — переезд в базу не роскошь, а способ перестать сводить цифры руками.

Половина решений — не «таблица или база», а «таблица и база»

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

  • Что переносить первым: справочники — клиенты, товары, сотрудники. Именно они дублируются чаще всего, и именно из-за них расходятся суммы.
  • Что оставить в таблице: разовые расчёты, планы, сценарии «что если», выгрузки для бухгалтера и подрядчика.
  • Что нельзя оставлять: персональные данные с доступом на весь файл и всё, что служит основанием для платежа без второй проверки.
  • Как не остановить работу: сначала система начинает заполняться параллельно с таблицей, потом таблица становится отчётом, потом её отключают.

Такой порядок снимает главный риск — простой на время переезда. Люди продолжают видеть привычный лист, но данные в нём появляются не от руки, а из системы. Чем процесс описывается до переезда — в статье про карту процесса и про регламент.

Как измерить, что таблица уже мешает

Спор «таблица или база» решается замером, а не вкусом. Четыре метрики снимаются за неделю и не требуют отдельного проекта.

  1. Время на сборку сводки: сколько минут в день уходит на копирование и сверку. Двадцать минут в день — это около семи часов в месяц.
  2. Доля строк, поправленных после ввода. Наш ориентир: если больше 10–15%, значит, на входе нет проверок формата и обязательных полей.
  3. Число версий файла за месяц. Больше десяти копий вида «итог_финал» — признак, что общей цифре не доверяют.
  4. Количество ручных переносов между таблицами. Каждый перенос — место, где появляются дубли и расходятся итоги.

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

Порядок действий на этой неделе

  1. Выписать, какие данные вводятся вручную и куда потом переносятся. Одна страница текста, без схем и диаграмм.
  2. Отметить факты, которые живут в двух местах: клиент, заказ, оплата. Это и есть кандидаты на первую нормальную запись.
  3. Посчитать объём: строк в месяц и заполненных ячеек. Если меньше нескольких сотен строк — таблица остаётся, вопрос только в правилах ввода.
  4. Проверить организационные признаки из таблицы выше. Если два и больше — планировать базу, начиная со справочников.
  5. Замерить время на сводку до изменений. Без этой цифры через месяц никто не вспомнит, стало ли лучше.

Таблица — не «плохой инструмент», а инструмент с известными границами: она хороша там, где процесс ещё меняется и где работает один-два человека. За границей начинаются обычные требования — одна запись в одном месте, права на часть данных, история изменений, транзакции. Но эти требования появляются не от размера компании, а от цены ошибки. Что мы делаем с процессами — в разделе услуг, примеры — в кейсах, разбор вашей таблицы — на диагностике. Если таблица уже стала «операционной системой», посмотрите разбор автоматизации заявок.

Посмотрим на вашу таблицу и скажем, где её достаточно, а где нужна база.

Получить диагностику

Источники

  1. Google Drive Help — Files you can store in Google Drive (размеры файлов) — таблица Google Sheets — до 20 млн ячеек или 100 МБ; при конвертации из Excel ячейки длиннее 50 000 символов удаляются; в Connected Sheets сводные — до 200 тысяч строк, выгрузки — до 500 тысяч строк или 5 млн ячеек
  2. Google for Developers — Google Sheets API: Usage limits — 300 чтений и 300 записей в минуту на проект, по 60 на пользователя в проекте; рекомендованный размер запроса — 2 МБ; запрос дольше 180 секунд завершается таймаутом; пакетный запрос считается одним обращением
  3. Raymond R. Panko, What We Know About Spreadsheet Errors (Journal of End User Computing, 1998, ред. 2008) — архивная копия — с 1995 года ошибки в 88% из 113 таблиц в 7 полевых аудитах; Coopers & Lybrand (1997) — 23 таблицы длиннее 150 строк, 91% с расхождением не менее 5%; KPMG (1998) — 22 таблицы, 91% только значимых ошибок; Powell, Lawson, Baker (2007) — 25 таблиц, 64% с ошибками, у всех 10 таблиц с известным размером ошибки она превысила 100 тысяч долларов; ошибки в формульных ячейках — около 1% и выше; консультанты оценивали долю таблиц с ошибками в 20–40%
  4. EuSpRIG — Horror Stories (подборка публичных случаев ошибок в таблицах) — PSNI (август 2023): опубликованы персональные данные 10 799 сотрудников из-за лишнего листа таблицы, штраф регулятора — 750 тысяч фунтов (май 2024); NBIM (2024): потеря около 980 млн норвежских крон, примерно 92 млн долларов, из-за неверно введённой даты; дело Frank/JPM: список содержал ровно 1 048 576 строк — предел строк Excel

Читайте также

Что мы делаем

Заявка

Обсудим вашу задачу

Опишите процесс, который отнимает время, — вернёмся с планом автоматизации и оценкой.

Заявка получена

Мы свяжемся с вами с вопросами для диагностики. Обычно отвечаем в течение рабочего дня.

Не удалось отправить

Что-то пошло не так. Напишите нам в Telegram или на i@islenkov.ru.