Тема
Серверные таблицы
На тарифе «Корпоративный» большие данные хранятся на сервере: в файле остаётся таблица на листе, а браузер получает только те строки, что видны на экране. Так в одном файле помещается до 1 млрд ячеек (~100 млн строк), а прокрутка, сортировка и фильтр остаются быстрыми — их выполняет сервер.
Серверные таблицы включаются для пространства по запросу.
Как создать
- Импорт файла. CSV, Parquet или книга Excel, которые не помещаются в файл — крупнее предела импорта или вместе с уже занятым больше 10 млн ячеек, — становятся серверными таблицами. CSV и Parquet встают в выбранное место, книга — таблицей на каждый лист с данными, каждая на своём листе с именем листа книги; первая строка данных листа — заголовки. Кодировку и разделитель CSV Табуля определяет сама: кодировки — UTF-8, UTF-16, Windows-1251, KOI8-R, DOS-866 и другие, разделители — точка с запятой, запятая, табуляция, вертикальная черта и пробел. Книга читается в форматах .xlsx, .xlsm, .xlsb и .ods: значения и результаты формул, без самих формул и оформления; ошибки формул становятся пустыми ячейками, время — текстом вида 9:05:00, листы диаграмм пропускаются. Книгу Excel 97–2003 (.xls) сначала сохраните в Excel как .xlsx.
- Импорт с главной. Такой файл, импортированный в новую таблицу, создаёт её пустой: она открывается и сразу загружает файл в серверную таблицу. Импортировать так можно по одному файлу.
- SQL-запрос. В редакторе SQL-ячейки подключения PostgreSQL или MySQL кнопка «Выполнить целиком в серверную таблицу» выгружает весь результат запроса в серверную таблицу на месте ячейки. Ссылки
{{…}}в запросе получают значения листа, в том числе строк серверных таблиц. Таблица помнит запрос, и ссылки в нём следуют за ячейками, как в SQL-ячейке: вставка и удаление строк и столбцов, перенос ячеек, переименование листа или таблицы. Пункт «Обновить из запроса» в меню таблицы выполняет запрос снова — со свежими значениями ссылок — и ставит новые строки на место прежних. Имя таблицы остаётся, а если запрос вернул те же столбцы — их имена на листе, оформление, сортировка, фильтр и вычисляемые столбцы; оформление отдельных ячеек строк снимается: строки новые. Столбцы данных, добавленные в таблицу, обновление убирает — в новой выгрузке их нет; если такой столбец читает вычисляемый, таблица встаёт как из нового запроса: без вычисляемых столбцов, прежних имён, оформления и вида. Отмена возвращает прежнюю выгрузку. Сама по правкам листа такая таблица не обновляется — только этим пунктом.
Что можно делать
- Прокручивать, сортировать и фильтровать таблицу из её меню — как обычную.
- Править ячейки: ввод, вставка, очистка, в том числе целых столбцов из миллионов строк. Отмена и повтор работают, соавторы видят правки сразу.
- Вставлять и удалять строки — пунктами «Добавить → Строку выше» и «Строку ниже», «Удалить → Строку» в меню ячейки таблицы или растягивая таблицу за нижний край. Вставлять строки можно, когда у таблицы нет сортировки и фильтра, — новая встаёт на выбранное место; удалять — и в отсортированной или отфильтрованной таблице. Отмена возвращает удалённые строки на их места вместе с оформлением, соавторы видят изменение сразу. За раз удаляется до 100 000 выделенных строк.
- Добавлять столбцы данных — пунктом «Добавить столбец данных» в меню таблицы или «Добавить → Столбец данных» в меню столбца и ячейки таблицы: имя и тип (текст, число, дата, дата и время, логическое). Пустой столбец встаёт за столбцами таблицы, перед вычисляемыми, — в него вводят и вставляют значения его типа, как в остальные. Удалять столбцы — из меню столбца или пунктом «Удалить → Столбец» в меню ячейки таблицы: столбец пропадает из таблицы, формул, выгрузки и списков столбцов, сортировка и фильтр по нему снимаются, отмена возвращает всё это. Столбец, на который ссылается формула вычисляемого, не удаляется; вычисляемый удаляет пункт «Удалить вычисляемый столбец».
- Добавлять вычисляемые столбцы — пунктом «Добавить вычисляемый столбец» в меню таблицы или «Добавить → Вычисляемый столбец» в меню столбца: значения по формуле от значений своей строки, например
=[@Цена]*[@Количество], считает сервер, хоть по миллионам строк. Формула ссылается на столбцы таблицы левее нового —[@Цена]илиЗаказы[@Цена]— и знает арифметику, сравнения, склейку&, проценты и функции ЕСЛИ, ЕСЛИОШИБКА, И, ИЛИ, НЕ, ABS, ОКРУГЛ, ОКРУГЛВНИЗ, ОКРУГЛВВЕРХ, ЦЕЛОЕ, ОСТАТ, КОРЕНЬ, СТЕПЕНЬ, МИН, МАКС, ДЛСТР, ЛЕВСИМВ, ПРАВСИМВ, ПСТР, СТРОЧН, ПРОПИСН, СЖПРОБЕЛЫ, СЦЕПИТЬ, СЦЕП, ГОД, МЕСЯЦ, ДЕНЬ, ДАТА, ЕПУСТО, ЕЧИСЛО, ЕТЕКСТ и ЗНАЧЕН — и считает так же, как та же формула на листе. У столбца один тип, его задаёт формула по типам столбцов, которые она читает: дата плюс число — дата, склейка — текст; значение другого типа в строке — пустая ячейка (например,[@Срок]+30при пустом сроке). Где формула даёт ошибку — деление на ноль, текст в ОКРУГЛ, — ячейка тоже пустая; пустой текст""в ветви ЕСЛИ — пустая ячейка, и столбец остаётся числовым. Разность дат, где есть время, — длительность, такой столбец не создаётся. Арифметику с текстом столбец тоже не принимает: лист читает такой текст как набранное значение — числом, датой или временем, — переведите его в число функцией ЗНАЧЕН:ЗНАЧЕН([@Код])+1. Столбец встаёт справа, его сортируют, фильтруют и оформляют, по нему считают формулы и сводные, строят диаграммы, в нём ищут, его скачивают и выгружают в Excel — как остальные столбцы; править его ячейки нельзя. «Изменить формулу столбца» и «Удалить вычисляемый столбец» — в меню самого столбца; столбец, на который ссылается формула другого, не удаляется, а переименование столбцов формулы не ломает. В таблице — до 100 вычисляемых столбцов, в формуле — до 32 уровней вложенности: длинную склейку многих столбцов пишите через СЦЕПИТЬ. - Считать итоги формулами по столбцу таблицы (
Рейсы[Задержка]) или по диапазону листа в её строках (B5:B1000), хоть по миллионам строк: СУММ, СРЗНАЧ, МИН, МАКС, СЧЁТ, СЧЁТЗ, СЧИТАТЬПУСТОТЫ, ПРОИЗВЕД, СУММКВ, МЕДИАНА, ДИСП, СТАНДОТКЛОН, НАИБОЛЬШИЙ и НАИМЕНЬШИЙ, с условиями — СЧЁТЕСЛИ, СУММЕСЛИ, СРЗНАЧЕСЛИ, СЧЁТЕСЛИМН, СУММЕСЛИМН, СРЗНАЧЕСЛИМН, МАКСЕСЛИ и МИНЕСЛИ. Искать — ВПР, ПРОСМОТРX и ПОИСКПОЗ со всеми режимами и ИНДЕКС. Формулы учитывают сортировку и фильтр таблицы. Запуск по расписанию считает такие формулы так же: итоги ему отдаёт сервер, и код, который их читает, выполняется уже с ними. Если сервер не ответил, у формулы остаётся прежний итог. - Ссылаться в формуле на ячейку строк таблицы или диапазон до 10 000 её ячеек — как на обычные: значения приходят с сервера, и с ними работает любая функция.
- Искать по строкам таблицы в окне поиска (Ctrl+F), по всему листу или в выделении, с учётом регистра, ячейкой целиком и регулярным выражением. Сервер находит значения в порядке её сортировки и с её фильтром, а заголовки столбцов ищутся как обычные ячейки. Значения сравниваются в обычном виде: числа — с десятичной запятой, даты — дд.мм.гггг, дата и время — дд.мм.гггг чч: мм, логические — true и false; формат столбца (валюта, проценты, свой формат даты) поиск не учитывает. Показываются первые 10 000 совпадений в таблице, заменять в её строках нельзя.
- Давать строки таблицы ИИ-аналитику, MCP и внешнему API: чтение ячеек отдаёт значения её строк, поиск MCP и внешнего API ищет и по строкам таблицы, а их выгрузка в PDF печатает строки так же, как печать в Табуле. Строки, которых нет на экране, отдаёт сервер. MCP и внешний API читают за раз до 100 000 ячеек, как и обычные диапазоны, ИИ-аналитик — страницами.
- Брать строки таблицы в другой файл формулой
IMPORTRANGE— до 100 000 ячеек, как и обычный диапазон: их отдаёт сервер с правами того, кто открыл файл с формулой. - Читать строки таблицы из Python —
t.cells("A3:B5000")— до 1 млн ячеек за раз и подставлять их в SQL-запрос подключения —{{A3:A100}}— до 100 000 значений в одной ссылке. Строки, которых нет на экране, Табуля берёт у сервера; SQL-запрос уходит в базу, когда придут все. Так же код читает строки и в запусках по расписанию. Когда таблицу правят, такие ячейки перезапускаются, как и с обычными ячейками; открытие файла их не перезапускает. - Строить сводную таблицу по серверной таблице — целиком или по её строкам вместе со строкой заголовков, — как по обычной: группировку и итоги считает сервер, хоть по миллионам строк. Работают все итоги (сумма и среднее точные, как у обычной таблицы), группировка дат и чисел, фильтры, скрытые элементы, сортировка и «Показать детали» — до 100 000 строк за ячейкой (у широкой таблицы — до миллиона ячеек), если её элементы среди первых 100 000 значений своих полей (у поля чисел, дат или с группировкой — если значений в нём не больше 100 000). Сводная учитывает фильтр таблицы и обновляется сама, когда таблицу правят. В ней до 8 полей строк и столбцов и до 500 000 ячеек итогов; отбор по полю, где больше 100 000 разных значений, не строится.
- Строить диаграмму по строкам таблицы — как по обычной: она берёт до 10 000 строк диапазона в порядке сортировки таблицы и с её фильтром и перерисовывается, когда таблицу правят. Чтобы показать на диаграмме всю таблицу, постройте по ней сводную и диаграмму по сводной.
- Строить табло по таблице — целиком или по её строкам вместе со строкой заголовков. Итоги показателей сервер считает по всем строкам источника — таблицы целиком или взятых её строк — с фильтром таблицы и выбранными значениями срезов, значения среза берутся тоже из всех строк источника. Список и канбан показывают первые 10 000 строк, отобранных срезами, в порядке сортировки таблицы, а диаграмма строится как диаграмма на листе. Правки из списка и перенос карточек канбана уходят в таблицу; добавлять, удалять и переставлять её строки из табло нельзя.
- Видеть сумму, среднее, минимум, максимум и количество выделенного в строке состояния — по строкам таблицы их считает сервер, хоть по миллионам строк, в порядке и с фильтром её вида.
- Скачать таблицу файлом CSV или Parquet — пунктом «Скачать CSV» или «Скачать Parquet» в её меню: строки идут в порядке её сортировки и с её фильтром, столбцы — только видимые. Так же выгружаются выделение внутри таблицы — «Скачать выделение как CSV» (Ctrl+Shift+E) или «Скачать выделение как Apache Parquet» в палитре команд — и лист, где кроме таблицы ничего нет (меню «Файл → Скачать»). Скачивает только вошедший пользователь. CSV — для русского Excel: точка с запятой, десятичная запятая, кодировка UTF-8 с BOM.
- Выгрузить файл в Excel вместе с серверными таблицами, если каждая помещается на лист Excel (до 1 048 576 строк), а все они вместе с собственными ячейками файла — в 10 млн ячеек: таблица попадает в книгу со всеми строками в порядке её сортировки, с оформлением столбцов и отдельных ячеек, а строки, скрытые её фильтром, идут за видимыми и в книге скрыты.
- Копировать до 1 млн ячеек: строки, которых нет на экране, Табуля берёт у сервера, и копирование заканчивается само. Вырезать и переносить — до 50 тыс. ячеек за раз.
- Протягивать маркер заполнения по строкам таблицы — вниз, вверх и вбок в пределах её строк: одно значение или повторяющийся образец заполняет хоть весь столбец, а серия (числа, даты) — до миллиона ячеек за раз. Протягивать можно и из строк таблицы в соседние ячейки листа. Двойной щелчок по маркеру тянет до первой пустой ячейки соседнего столбца, как и в обычных ячейках; рядом с таблицей он заполняет за раз не больше 100 000 строк. Оформление строкам таблицы не переносится.
- Брать список проверки данных (выпадающий список) из столбца таблицы или его строк: в списке — первые 100 000 разных значений в порядке её сортировки и с её фильтром (выпадающий список показывает 500 из них и сужается по мере ввода), а значение не из списка помечается или, если выбрана «Остановка», не вводится — в том числе через MCP и внешний API. Пометки сохраняются в файле и видны соавторам, а когда строки таблицы меняются, Табуля перепроверяет их сама. Пока значения не пришли с сервера, и если разных значений больше 100 000, значение, которого нет среди первых, не отклоняется, а выпадающий список предупреждает, что в нём не все значения. В виджетах табло список длиннее 500 значений не раскрывается — значение вводится вручную.
- Оформлять отдельные ячейки строк таблицы — шрифт, цвет, заливку, выравнивание, формат чисел и дат: оформление держится за строкой и при сортировке и фильтре переезжает вместе с ней. За раз оформляется до 100 000 строк таблицы, столбец целиком — без предела; оформление столбца заменяет оформление его отдельных ячеек и действует на все его строки: «Очистить формат», вставка и кисть на отдельных ячейках снимают только их собственное оформление, а оформление столбца снимается со столбцом целиком. Оформление копируется, вставляется, переносится кистью и снимается при вырезании, печатается и попадает в книгу Excel. Через MCP и внешний API таблица оформляется только столбцами целиком: отдельные строки оформляются в Табуле.
- Печатать лист с таблицей и сохранять его в PDF: строки, которых нет на экране, Табуля берёт у сервера — на страницах до 1 млн ячеек таблицы. Превью печати берёт только строки показанных страниц.
- Дублировать файл в пространство, где серверные таблицы включены: копия получает свои копии таблиц. В другом пространстве у копии таблицы будут без данных — Табуля предупредит об этом. Если сервис таблиц не ответил, Табуля тоже предупредит: данные таблиц файла, если они в нём есть, в копию не попали.
Зрители по публичной ссылке видят таблицу, но не правят её.
Связь с сервером
Если сервер таблиц недоступен или занят дольше нескольких секунд, Табуля сообщает об этом и повторяет запросы сама, а когда связь вернётся — сообщает снова. Правки, не дошедшие до сервера, хранятся в браузере и уходят, как только связь появится, — в том числе если закрыть вкладку и открыть файл снова в течение недели.
Ограничения
По строкам серверной таблицы пока не работают: выгрузка выделения, где кроме таблицы есть другие ячейки, протяжка, которая захватывает и строки таблицы, и ячейки за её пределами, границы отдельных ячеек (они остаются на местах листа, а не у строк), условное форматирование, проверка данных в самих строках таблицы, вставка столбца в середину таблицы (новый встаёт за её столбцами), вставка и удаление строк и столбцов листа внутри таблицы (строки и столбцы таблицы правит меню её ячейки). Книга Excel с таблицей больше листа Excel не выгружается — такую таблицу скачайте CSV или Parquet. Сводную по серверной таблице строит браузер: через MCP и внешний API она пока не создаётся и не меняется. Больший диапазон строк таблицы формула читает только в перечисленных итогах и поиске и только целиком в её строках; если он задевает и другие ячейки (например, СУММ(B:B) с заголовками), возьмите столбец таблицы: СУММ(Рейсы[Задержка]). Формулы правил условного форматирования и проверки данных в других ячейках берут у серверной таблицы только итоги её столбца целиком, по ссылке на столбец (СРЗНАЧ(Рейсы[Задержка])), — не её ячейки и не диапазоны её строк. Правку вычисляемого столбца, сделанную одновременно с добавлением столбца соавтором, таблица может отнести к соседнему столбцу — повторите её.