Самая большая таблица excel
Если вы работаете в Excel ( или учитесь работать в Excel ), то вы постоянно сталкиваетесь с созданием таблиц. Данная статья будет полезна тем, у кого нет четкого понимания, как создавать правильные таблицы, что не надо делать при создании таблиц и почему построение данных очень важная часть создания таблиц!
Что мы рассмотрим в данной статье?
1. Какие таблицы обычно создает пользователь в Excel?
2. Научимся, как не надо создавать таблицы?
3. Что значит "плохие" таблицы в Excel?
4. Разберем плохо организованные таблицы с точки зрения ее структуры, построения данных.
5. Подготовим таблицы для дальнейшего анализа и создания отчетов.
Ошибки при создании таблиц в Excel
1. Отсутствует структура данных в таблицах
Первая и самая распространенная ошибка пользователей при создании таблиц в Excel - это отсутствие структуры в таблицах Excel.
Важно знать, что при проектировании таблиц, мы должны соблюдать основные правила создания, так называемой, реляционной модели базы данных.
Простыми словами, это база данных с упорядоченной информацией, связанная между собой определёнными отношениями. Такая база данных представлена в виде таблиц, в которых и лежит вся эта информация.
В таких базах данных существует такое понятие, как "нормализация" . Простым языком под нормализацией мы будем понимать - процесс удаления избыточных данных в таблицах. Такие таблицы будут называться - нормализованные таблицы.
Именно создание нормализованных таблиц по модели реляционной базы и есть главный критерий построения правильных таблиц в Excel.
Запомните! Это фундамент для построения будущих таблиц.
Зафиксируем сразу два важных момента:
1. Определяем какие данные мы хотим хранить в таблице. Проектируем структуру данных в таблице Excel.
2. Создаем таблицы без лишней и перегруженной (не нужной) информации.
Что такое большой файл? Ну так чтобы реально большой? В бытность свою я думал, что это файлик на 50-60 тыс строк записей. И оставался я бы в таком неведении до сих пор, но пришлось выполнять один проект, в котором надо было работать с файлами на 600-800 тыс строк. Хождение по мукам — под катом:
Что сначала
А сначала, друзья мои, ринулись мы в самое простое, что можно придумать. Interop.Excell, и все дела. Казалось. Ага, щаз. Как показали тестовые испытания, данный способ открытия приводил к тому, что за час было прочитано 200 тыс строк экселя, приложение активно потребляло оперативку, и раздвигало плечами остальные процессы на машине. Кончилось все ожидаемо, но следственный эксперимент надо было довести до конца — на 260 тысячах приложение свалилось в OutOfMemory на машине с 4 Гб. Стало понятно, что в лоб решить проблему не получится
Google it
Сколько нам открытий чудных… Гугль привел, как ни странно, в msdn, где я познакомился с двумя методами открытия очень больших файлов: DOM и SAX. Уж за давностью времен не вспомню, но какой то из них отвалился по причине опостылевшей уже на тот момент OutOfMemory, а второй был совершенно неюзабелен в плане доступа к данным. Почему — читаем ниже.
Из чего же, из чего же
Сделаны наши эксельки. Ни для кого, кто решил копнуть формат чуть глубже, не станет секретом, что в отличие от бинарным xls, xlsx — по сути zip архив с данными. Достаточно поменять расширение ручками и распаковать архив в папку — и мы получим всю внутреннюю структуру документа, что есть не что иное, как набор xml файлов и сопутствующей информации. Как оказалось, в корневом xml нет текстовых данных. Вместо этого мы имеем набор индексов, которые ссылаются на вспомогательный файл, в котором представлены пары «ключ/значение» Одним из вышеприведенных способов открыть то файл можно, но при этом нужно копаться в сопутствующих файлах и вытаскивать из них текстовые значения. Мрак.
И отступила тьма
После долгих мытарств и стенаний родилось следующее:
Наши любимые юзинги, которые некоторые личности забывают указывать:
using System;
using System.Collections. Generic ;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Linq;
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
* This source code was highlighted with Source Code Highlighter .
Собственно, сам код:
public delegate void MessageHave( string message);
public delegate void _DataLoaded( List < string >data);
public delegate void _NewProcent( int col);
public static _DataLoaded DataLoaded;
public static _NewProcent NewProcent;
public static MessageHave MessageHave_Event;
id++;
if (id == calc)
NewProcent(id);
calc += 1000;
>
>
DataLoaded(lines);
>
cnn.Close();
>
catch (Exception ex)
MessageHave_Event( "Exception: " + ex.Message);
cnn.Close();
>
>
>
* This source code was highlighted with Source Code Highlighter .
Код показал производительность порядка 15-20 минут на файлах в 600-800 тыс строк записей.
Если кому то реализация покажется кривой — сильно не пинать :) Выслушаю все комментарии
Чтобы упростить управление группой связанных данных и ее анализ, можно превратить диапазон ячеек в таблицу Excel (ранее Excel списком).
Примечание: Таблицы Excel не следует путать с таблицами данных, которые входят в набор команд для анализа "что если". Подробнее о таблицах данных читайте в статье Получение нескольких результатов с помощью таблицы данных.
Элементы таблиц Microsoft Excel
Таблица может включать указанные ниже элементы.
Строка заголовков. По умолчанию таблица включает строку заголовков. Для каждого столбца таблицы в строке заголовков включена возможность фильтрации, что позволяет быстро фильтровать или сортировать данные. Дополнительные сведения см. в сведениях Фильтрация данных и Сортировка данных.
Строку с заглавной строкой в таблице можно отключить. Дополнительные сведения см. в Excel или отключении Excel таблицы.
Чередование строк. Чередуясь или затеняя строками, можно лучше различать данные.
Вычисляемые столбцы. Введя формулу в одну ячейку столбца таблицы, можно создать вычисляемый столбец, ко всем остальным ячейкам которого будет сразу применена эта формула. Дополнительные сведения см. в статье Использование вычисляемой таблицы Excel столбцов.
Строка итогов После добавления строки итогов в таблицу Excel вы можете выбрать один из таких функций, как СУММ, С СРЕДНЕЕ И так далее. При выборе одного из этих параметров таблица автоматически преобразует их в функцию SUBTOTAL, при этом будут игнорироваться строки, скрытые фильтром по умолчанию. Если вы хотите включить в вычисления скрытые строки, можно изменить аргументы функции SUBTOTAL.
Дополнительные сведения см. в этойExcel данных.
Маркер изменения размера. Маркер изменения размера в нижнем правом углу таблицы позволяет путем перетаскивания изменять размеры таблицы.
Другие способы переумноизации таблицы см. в статье Добавление строк и столбцов в таблицу с помощью функции "Избавься от нее".
Создание таблиц в базе данных
В таблице можно создать сколько угодно таблиц.
Чтобы быстро создать таблицу в Excel, сделайте следующее:
Вы выберите ячейку или диапазон данных.
На вкладке Главная выберите команду Форматировать как таблицу.
Выберите стиль таблицы.
В диалоговом окне Форматировать как таблицу, если вы хотите, чтобы первая строка диапазона была строкой заглавных и нажмите кнопку ОК.
Эффективная работа с данными таблицы
Excel есть некоторые функции, которые позволяют эффективно работать с данными таблиц:
Использование структурированных ссылок. Вместо использования ссылок на ячейки, таких как A1 и R1C1, можно использовать структурированные ссылки, которые указывают на имена таблиц в формуле. Дополнительные сведения см. в теме Использование структурированных ссылок Excel таблиц.
Обеспечение целостности данных. Вы можете использовать встроенную функцию проверки данных в Excel. Например, можно разрешить ввод только чисел или дат в столбце таблицы. Дополнительные сведения о том, как обеспечить целостность данных, см. в теме Применение проверки данных к ячейкам.
Экспорт таблицы Excel на SharePoint
Если у вас есть доступ к SharePoint, вы можете экспортировать таблицу Excel в SharePoint список. Таким образом, другие люди смогут просматривать, редактировать и обновлять данные таблицы в SharePoint списке. Вы можете создать однонаправленную связь со списком SharePoint, чтобы на листе всегда учитывались изменения, вносимые в этот список. Дополнительные сведения см. в статье Экспорт таблицы Excel в SharePoint.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Если в один прекрасный момент вы осознаете, что ваш основной рабочий файл в Excel разбух до нескольких десятков мегабайт и во время открытия файла можно смело успеть налить себе кофе, то попробуйте пробежаться по описанным ниже пунктам - возможно один или несколько из них укоротят вашего "переростка" до вменяемых размеров и разгонят его "тормоза" :)
Проблема 1. Используемый диапазон листа больше, чем нужно
Если ваша таблица занимает 5 на 5 ячеек, то это отнюдь не означает, что Excel запоминает при сохранении этого файла только 25 ячеек с данными. Если вы в прошлом использовали какие-либо ячейки на этом листе, то они автоматически включаются в используемый диапазон (так называемый Used Range), который и запоминается при сохранении книги. Проблема в том, что при очистке используемых ячеек Excel далеко не всегда автоматически исключает их из используемого диапазона, т.е. начинает запоминать в файле больше данных, чем реально имеется.
Проверить это просто – нажмите на клавиатуре сочетание клавиш Ctrl+End и посмотрите куда переместится активная ячейка. Если она прыгнет на фактическую последнюю ячейку с данными на листе – отлично. А если вдруг ускачет сильно правее и/или ниже "в пустоту" – дело плохо: все эти ненужные пустые ячейки Excel тоже запоминает внутри файла.
Лечится это, тем не менее, достаточно легко:
- Выделите первую пустую строку под вашей таблицей
- Нажмите сочетание клавиш Ctrl+Shift+стрелка вниз – выделятся все пустые строки до конца листа.
- Удалите их, нажав на клавиатуре Ctrl+знак минус или выбрав на вкладке Главная – Удалить – Удалить строки с листа (Home – Delete – Delete rows) .
- Повторите то же самое со столбцами.
- Повторите все вышеописанные процедуры на каждом листе, где при нажатии на Ctrl+End активная ячейка перемещается не на фактическую последнюю ячейку с данными а "в пустоту" ниже и/или правее.
- Сохраните файл (обязательно, иначе изменения не вступят в силу!)
Если в вашей книге очень много таких листов, то проще, наверное, использовать короткий макрос.
Проблема 2. Используется старый формат XLS вместо новых XLSX, XLSM и XLSB
Много лет и версий подряд еще с начала девяностых в Excel был один формат файлов - XLS. Это, конечно, убирало проблемы совместимости, но, сам по себе, этот формат давно устарел и имел много неприятных недостатков (большой размер, непрозрачность внутренней структуры данных, легкую повреждаемость и т.д.)
Начиная с верии Excel 2007 Microsoft ввела новые форматы сохранения файлов, использование которых заметно облегчает жизнь и - ваши файлы:
- XLSX - по сути является зазипованным XML. Размер файлов в таком формате по сравнению с Excel 2003 меньше, в среднем, в 5-7 раз.
- XLSM - то же самое, но с поддержкой макросов.
- XLSB - двоичный формат, т.е. по сути - что-то вроде скомпилированного XML. Обычно в 1.5-2 раза меньше, чем XLSX. Единственный минус: нет совместимости с другими приложениями кроме Excel, но зато размер - минимален.
Проблема 3. Избыточное форматирование
Сложное многоцветное форматирование, само-собой, негативно отражается на размере вашего файла. А условное форматирование еще и ощутимо замедляет его работу, т.к. заставляет Excel пересчитывать условия и обновлять форматирование при каждом чихе.
Оставьте только самое необходимое, не изощряйтесь. Особенно в тех таблицах, которые кроме вас никто не видит. Для удаления только форматов (без потери содержимого!) выделите ячейки и выберите в выпадающем списке Очистить - Очистить форматы (Clear - Clear Formats) на вкладке Главная (Home) :
Особенно "загружают" файл отформатированные целиком строки и столбцы. Т.к. размер листа в последних версиях Excel сильно увеличен (>1 млн. строк и >16 тыс. столбцов), то для запоминания и обрабоки подобного форматирования нужно много ресурсов. В Excel 2013-2016, кстати, появилась надстройка Inquire, которая содержит инструмент для быстрого избавления от подобных излишеств - кнопку Удалить избыточное форматирование (Clean Excess Cell Formatting) :
Она мгновенно удаляет все излишнее форматирование до конца листа, оставляя его только внутри ваших таблиц и никак не повреждая ваши данные. Причем может это сделать даже для всех листов книги сразу.
Если вы не видите у себя в интерфейсе вкладку Inquire, то ее необходимо подключить на вкладке Разработчик - Надстройки COM (Developer - COM Addins) .
Проблема 4. Ненужные макросы и формы на VBA
Большие макросы на Visual Basic и особенно пользовательские формы с внедренной графикой могут весьма заметно утяжелять вашу книгу. Для удаления:
- нажмите Alt+F11, чтобы войти в редактор Visual Basic
- найдите окно Project Explorer’а (если его не видно, то выберите в меню View - Project Explorer)
- удалите все модули и все формы (правой кнопкой мыши - Remove - дальше в окне с вопросом о экспорте перед удалением - No):
Также код может содержаться в модулях листов - проверьте их тоже. Также можно просто сохранить файл в формате XLSX без поддержки макросов - все макросы и формы умрут автоматически. Также можно воспользоваться инструментом Очистить книгу от макросов из надстройки PLEX.
Проблема 5. Именованные диапазоны
Если в вашем файле используются именованные диапазоны (особенно с формулами, динамические или получаемые при фильтрации), то имеет смысл от них отказаться в пользу экономии размера книги. Посмотреть список имеющихся диапазонов можно нажав Ctrl+F3 или открыв окно Диспетчера имен (Name Manager) на вкладке Формулы (Formulas) :
Также вычищайте именованные диапазоны с ошибками (их можно быстро отобрать с помощью кнопки Фильтр в правом верхнем углу этого окна) - они вам точно не пригодятся.
Проблема 6. Фотографии высокого разрешения и невидимые автофигуры
Если речь идет о фотографиях, добавленных в книгу (особенно когда их много, например в каталоге продукции), то они, само-собой, увеличивают размер файла. Советую сжимать их, уменьшая разрешение до 96-150 точек на дюйм. На экране по качеству это совершенно не чувствуется, а размер файла уменьшает в разы. Для сжатия воспользуйтесь кнопкой Сжать рисунки (Compress pictures) на вкладке Формат (Format) :
Кроме видимых картинок на листе могут содержаться и невидимые изображения (рисунки, фотографии, автофигуры). Чтобы увидеть их, выделите любую картинку и на вкладке Формат (Format) нажмите кнопку Область выделения (Selection Pane) .
Для удаления вообще всех графических объектов на текущем листе можно использовать простой макрос:
Проблема 7. Исходные данные сводных таблиц
По-умолчанию Excel сохраняет данные для расчета сводной таблицы (pivot cache) внутри файла. Можно отказаться от этой возможности, заметно сократив размер файла, но увеличив время на обновление сводной при следующем открытии книги. Щелкните правой кнопкой мыши по сводной таблице и выберите команду Свойства таблицы (Pivot Table Properties) - вкладка Данные (Data) - снять флажок Сохранять исходные данные вместе с файлом (Save source data with file):
Если у вас несколько сводных таблиц на основе одного диапазона данных, то сократить размер файла здорово помогает метод, когда все сводные таблицы после первой строятся на основе уже созданного для первой таблицы кэша. В Excel 2000-2003 это делается выбором переключателя на первом шаге Мастера сводных таблиц при построении:
В Excel 2007-2016 кнопку Мастера сводных таблиц нужно добавлять на панель вручную - на ленте такой команды нет. Для этого щелкните по панели быстрого доступа правой кнопкой мыши и выберите Настройка панели быстрого доступа (Customize Quick Access Toolbar) и затем найдите в полном списке команд кнопку Мастер сводных таблиц (PivotTable and PivotChart Wizard) :
Проблема 8. Журнал изменений (логи) в файле с общим доступом
Если в вашем файле включен общий доступ на вкладке Рецензирование - Доступ к книге (Review - Share Workbook) , то внутри вашего файла Excel на специальном скрытом листе начинает сохраняться вся история изменений документа: кто, когда и как менял ячейки всех листов. По умолчанию, такой журнал сохраняет данные изменений за последние 30 дней, т.е. при активной работе с файлом, может запросто занимать несколько мегабайт.
Мораль: не используйте общий доступ без необходимости или сократите количество дней хранения данных журнала, используя вторую вкладку Подробнее (Advanced) в окне Доступ к книге. Там можно найти параметр Хранить журнал изменений в течение N дней (Keep change history for N days) или совсем отключить его:
Проблема 9. Много мусорных стилей
Про эту пакость я уже подробно писал ранее в статье о том, как победить ошибку "Слишком много форматов ячеек". Суть, если кратко, в том, что если вы разворачиваете на вкладке Главная список Стили ячеек (Home - Cell Styles) и видите там очень много непонятных и ненужных стилей, то это плохо - и для размера вашего файла Excel и для его быстродействия.
Удалить ненужные стили можно с помощью макроса или готовой команды из надстройки PLEX.
Проблема 10. Много примечаний
Примечания к ячейкам, конечно, не самый вредный момент из всех перечисленных. Но некоторые файлы могут содержать большое количество текста или даже картинок в примечаниях к ячейкам. Если примечания не содержат полезной для вас информации, то их можно легко удалить с помощью команды на вкладке Главная - Очистить - Очистить примечания (Home - Clear - Clear Comments) .
Я много работаю в Excel и постоянно стараюсь повысить скорость работы. Прохожу онлайн-курсы, смотрю ролики на YouTube. Часто сталкиваюсь с объёмными таблицами. Однажды работал с таблицей данных из 300 000 строк. Я собрал для вас 10 фишек, которые точно повысят скорость работы с большими таблицами в Excel.
1) Добавляйте новые строки / столбцы с помощью Ctrl +, удаляйте с помощью Ctrl -. Для этого выделяйте нужное кол-во строк / столбцов. Можно мышкой, а можно через Shift + Пробел / Ctrl + Пробел.
2) При построении широких таблиц для копирования формул используйте алгоритм ниже. Особенно актуально для прогноза по временным рядам, например, по месяцам на 5 лет.
- Заполните последний столбец единицами.
- После того, как вы записали формулу в первой ячейке строки, нажмите Ctrl + C, чтобы скопировать формулу.
- Далее нажмите Ctrl + Shift + Вправо. Так вы выделите всю строку, включая последний столько с единицей.
- Нажмите Ctrl + V. Всё готово.
3) Перемещайтесь межу началом и концом срок / столбцов с помощью Ctrl + Вправо / Влево / Вверх / Вниз.
4) Длинные формулы с логическими операторами типа Если и прочими удобно писать по строкам, как программный код. Так намного проще читать формулу. Excel никак не учитывает пробелы. Для перехода на новую строку нажимайте Alt + Enter. Попробуйте левый и правый Alt, бывает, что работает только один из двух.
5) У вас есть диапазон ячеек А1:А1000 (это столбец) с заполненными значениями. Вы написали формулу в ячейке B1. Вам нужно скопировать её вниз до ячейки B1000. Можно выделить ячейку B1, навести курсор в правый нижний угол, появится крестик, щёлкнуть на него дважды. Формула автоматом скопируется до нижней ячейки соседнего диапазона слева. Даже если соседний диапазон прерывистый, формула все равно заполнится до конца диапазона.
6) Есть значок Суммы на панели во вкладке Главное. Он суммирует диапазон ячеек сверху вниз. У вас есть диапазон ячеек A1:A1000, вам нужно посчитать их сумму в ячейке A1001. Выделяете ячейку А1001 и нажимаете Alt +. Всё готово.
7) Если значения указаны в столбец, а вам нужно в строку, можно использовать формулу ТРАНСП().
8) Через амперсанд "&" можно в одной ячейке совместить текст и значения разных ячеек. Например, в ячейке B10 у вас рассчитана сумма выручки за месяц, 1 500 000 руб. Тогда в другую ячейку вы можете записать формулу = "Выручка за месяц составила " & B10 и отобразить Выручка за месяц составила 1 500 000 руб.
10) Если нажать правой кнопкой мыши на поле со стрелочками слева от первого листа Книги, появится список всех листов. Это удобно, когда листов много и они не убираются на панель.
Читайте также: