Этот набор данных слишком велик для сетки: ограничение на количество строк Excel и что делать
Лист Excel содержит 1,048,576 ряды и 16,384 столбцы. Это 2^20 и 2^14, выбранные при переписывании формата файла для Excel 2007, и с тех пор они не менялись. Если в файле больше строк, Excel сообщит вам, что набор данных слишком велик для сетки, и предложит частичную загрузку.
Что вы делаете в первую очередь: выясните, действительно ли что-то было потеряно, потому что усеченный файл, который выглядит полным, — гораздо большая проблема, чем предупреждающее сообщение.
Краткая версия. Если количество строк равно 1 048 576, вы не просматриваете все свои данные.
Проверьте, не потеряли ли вы строки
- Нажмите Ctrl+Конец. Если курсор попадает на строку 1 048 576, файл считается усеченным, пока не будет доказано обратное.
- Подсчитайте строки источника, не открывая его. В PowerShell:
(Get-Content big.csv | Measure-Object -Line).Lines. В очень большом файлеGet-Content -ReadCount 10000быстрее. - Сравните это количество минус один для заголовка с тем, что попало в лист.
- Сравните последнюю дату или идентификатор на листе с последним в файле. Усеченная выдержка обычно останавливается в середине периода, что является признаком любого отчета, построенного на ее основе.
Четыре выхода наружу
| Маршрут | Усилие | Используйте, когда |
|---|---|---|
| Агрегировать до того, как он достигнет Excel | Низкий | Вам нужны итоги, а не строки. Большинство случаев. |
| Power Query к модели данных | Низкий | Оставаясь в Excel, вам нужно все контролировать |
| DuckDB или SQLite | Средне | Повторяющиеся вопросы, объединения, настоящая фильтрация |
| pandas или полярные | Средне | Это шаг в конвейере, который вы запустите повторно. |
Сначала агрегировать
Честный вопрос обычно не касается трех миллионов строк. Речь идет о нескольких сотнях итоговых строк. Если файл поступает из системы с экраном экспорта, измените экспорт на группу по месяцам и категориям, прежде чем он будет доставлен. Это навсегда решает проблему, и люди пропускают этот вариант, потому что это означает, что нужно кого-то спросить.
Power Query к модели данных
Данные, Получить данные, Из файла, Из текста/CSV, затем Загрузить в и выбери Только создать соединение с Добавьте эти данные в модель данных поставил галочку. Строки никогда не касаются листа, поэтому ограничение в миллион строк не применяется. Создайте сводную таблицу на основе модели и агрегируйте данные Excel по всему файлу.
Две вещи, которые нужно знать. Модель сжата в памяти, поэтому файл размером 2 ГБ на диске может содержать несколько сотен мегабайт, но 32-разрядному Excel все равно будет не хватать около 2 ГБ адресного пространства. И ограничение сетки по-прежнему применяется ко всему, что вы детализируете.
Запросить файл, в котором он находится
DuckDB читает CSV напрямую с помощью SQL без необходимости импорта:
SELECT region, COUNT(*) AS rows, SUM(amount) AS total
FROM 'big.csv'
GROUP BY region
ORDER BY total DESC;
Это вернет несколько строк, которые вы можете вставить в Эксель. Установка занимает несколько минут и описана в настройка DuckDB. Если вы запросите более двух раз, загрузите это в SQLite и сохраните.
Ограничение столбца и причина его достижения
Кажется, что 16 384 столбца недостижимы, и это мешает ровно одному: повороту длинной таблицы по ширине поля со слишком большим количеством значений. Один столбец на каждого клиента или в день в течение нескольких лет. Это признак того, что форма неправильная, а не ограничение жестко. Сохраняйте данные длинными и позволяйте опорной точке расширяться во время чтения.
Другие ограничения, которые стоит знать, прежде чем их встретить
| Лимит | ценить | Где оно кусает |
|---|---|---|
| Строки на листе | 1,048,576 | Сырые экстракты |
| Столбцов на листе | 16,384 | Чрезмерно повернутые таблицы |
| Персонажи в клетке | 32,767 | Заметки с произвольным текстом, капли JSON |
| Символы, показанные в ячейке | 1,024 | Текст, который выглядит обрезанным, но это не так |
| Цифры точности | 15 | Длинные идентификаторы превращаются в 1.23457E+17 |
| Выбранные сводные поля | 16 384 объекта | Развороты с очень высокой кардинальности |
15-значный ловит людей постоянно: вставьте 16-значный номер счета в ячейку «Общие», и последняя цифра навсегда станет нулевой. Перед вставкой отформатируйте столбец как текст, такая же защита, как и в ведущие нули при импорте CSV.
Как применить это в своей работе
- Добавьте количество строк в каждую книгу, начиная с импорта, и сравните его с исходным количеством. Одна клетка, одна привычка.
- Когда файл приближается к миллиону строк, вообще прекратите открывать его в Excel, даже один раз.
- Прежде чем придумывать что-нибудь умное, попросите владельца системы предоставить агрегированный экспорт.
- Изучите маршрут модели данных один раз. Это пятнадцать минут, и это снимает ограничение для большинства отчетов.
- Перед вставкой отформатируйте столбцы идентификаторов как текст и проверьте последние цифры некоторых из них после этого.
Единственная привычка, которую нужно сохранить
Никогда не доверяйте количеству строк, которое вы не вычислили. Счетчик — это самый дешевый анализ проверки, он выявляет усечения, дублированные соединения и неудачные фильтры, и все это прекрасно выглядит на экране.
В книге, на которую вы больше всего полагаетесь, указано где-нибудь, со скольких строк она началась?
Excel для аналитиков состоит из 378 страниц, на которых каждая формула и диалог читаются по одному, поэтому книга перестает быть местом, где появляются числа, и становится тем местом, которое вы можете проверить.
Excel для аналитиков, 19 долларов США →Обработка больших наборов данных работает двухгигабайтный файл впритык, Настройка базы данных SQL получает CSV в SQLite примерно за десять минут и DuckDB запрашивает файл, в котором он находится.
Прочтите «Обработка больших наборов данных» →