Долго открывается или тормозит Excel? Ничего страшного

  • Tutorial

Предисловие

Так уж сложилось, что на сегодняшний день много кому приходится работать(писать макросы) на VBA в Excel. Некоторые макросы содержат сотни строк кода, которые приходится выполнять каждый день (неделю, месяц, квартал и так далее) и, при этом, они занимают изрядное количество времени. Вроде бы и и процесс автоматизирован и человеческого вмешательства не нужно, но время, занимаемое выполнением макроса, может охватывать десятки минут, а то и несколько часов. Время, как говориться, - деньги и в этом посте я постараюсь значительно ускорить время выполнения Вашего макроса и, возможно, это положительно скажется на ваших делах, а в итоге и деньгах.

Перед началом работы

Перед тем, как перейти прямо к сути, я хотел бы обратить внимание на пост: Несколько советов по работе с VBA в Excel . В частности, в блоке “Ускорение работы макросов” есть полезные примеры кода, которые стоит использовать вместе с моими советами по ускорению работы, для достижения максимального результата.

Ускоряем работу макроса

Итак, к сути… Для того что бы реально ускорить работу VBA в Ecxel нужно понимать, что обращение к ячейке на листе - занимает значительно время. Если Вы хотите записать в ячейку одно значение, то это не займет значительного времени, но если Вам потребуется записать(прочитать, обратиться) к тысячам ячеек, то это потребует гораздо большего времени. Что же делать в таких случаях? На помощь приходят массивы. Массивы хранятся в памяти, а операции в памяти VBA выполняет в сотни, а то и в тысячи раз быстрее. Поэтому, если у Вас в данных тысячи, сотни тысяч значений, то время выполнения макроса может занимать от нескольких минут до нескольких часов, а если эти данные перенести в массив, то выполнение макроса может сократиться до нескольких секунд (минут).

Я наведу пример кода и в комментариях объясню что к чему, так будет яснее. К тому же, могут пригодиться некоторые строки кода, не относящееся прямо к процессу ускорения.

Пример
Предположим, что у нас есть данные на “Лист1” (“Sheet1”). Данные содержаться в 50 колонках (колонки содержат названия) и 10 000 строк. К примеру, нам нужно в последнюю колонку внести значение, которое равно значению во второй колонке, деленное на значение в третьей колонке (начиная со 2-й строки, так как первая содержит заглавие). Потом мы возьмем первые 10 колонок и скопируем их на “Лист2” (“Sheet2”), для дальнейшей обработки (для других потребностей). Пусть пример и банальный, но, как мне кажется, он может отобразить всю суть данного поста.

"Для явной инициализации переменных, включаем эту опцию "Это поможет избежать многих ошибок Option Explicit Sub Test() "К листам будем обращаться через переменные Dim Sheet1_WS, Sheet2_WS As Worksheet "Переменная для прохождения срок на листе (в массиве) Dim i As Long "Массив, в котором будут храниться наши данные Dim R_data As Variant "Переменные последней строки и колонки Dim FinalRow, FinalColumn As Long "Можно инициализировать лист не по названию, а по порядковому номеру "Set Sheet1_WS = Application.ThisWorkbook.Worksheet("Sheet1") Set Sheet1_WS = Application.ThisWorkbook.Sheets(1) Set Sheet2_WS = Application.ThisWorkbook.Sheets(2) "Поиск последней не пустой строки в первой колонке "Нужно, что бы данные не были отфильтрованы, иначе последняя строка будет последней строкой в фильтре "Также в последней строке, в первой колонке, не должно быть пустой ячейки. Конечно, если в этой строке вообще есть данные. Иначе последней строкой будет последняя не пустая ячейка. FinalRow = Sheet1_WS.Cells(Rows.Count, 1).End(xlUp).Row "=10 000 "Поиск последней не пустой колонки в первой строке FinalColumn = Sheet1_WS.Cells(1, Columns.Count).End(xlToLeft).Column "=50 "Присваиваем массиву диапазон данных на Листе 1 R_data = Sheet1_WS.Range(Sheet1_WS.Cells(1, 1), Sheet1_WS.Cells(FinalRow, FinalColumn)) For i = 2 To FinalRow "Выполняем нужные нам операции с данными. "Проверяем, что бы не было деления на ноль. "Предполагается, что в колонке 2 и 3 стоят числовые данные "Иначе потребуется обработка ошибок If R_data(i, 3) <> 0 Then R_data(i, FinalColumn) = R_data(i, 2) / R_data(i, 3) End If Next i "Копируем данные из массива обратно на Лист1 "Перед этим очищаем данные на листе (если есть форматирование или формулы, то лучше Sheet1_WS.Cells.ClearContents) Sheet1_WS.Cells.Delete Sheet1_WS.Range(Sheet1_WS.Cells(1, 1), Sheet1_WS.Cells(FinalRow, FinalColumn)) = R_data "Копируем данные на Лист2, копируем первые 10 колонок. Sheet2_WS.Range(Sheet2_WS.Cells(1, 1), Sheet2_WS.Cells(FinalRow, 10)) = R_data "Закрываем книгу и сохраняем её Workbooks(Application.ThisWorkbook.Name).Close SaveChanges:=True End Sub

В данном примере массив заполняется указанным диапазоном. Если у нас будет явно заданный двумерный массив, то скопировать его значение на лист можно таким образом:

Dim R_new() As Variant ............................................ " Явно указываем размер массива ReDim R_new(1 To FinalRow, 1 To 50) As Variant ........................................... Sheet1_WS.Range(Sheet1_WS.Cells(1, 1), Sheet1_WS.Cells(FinalRow, 50)) = R_new()

Заключение

Большинство операций над данными можно выполнять в массиве, при этом, отображать на лист только результат. Иногда целесообразным бывает показать результат на лист, потом выполнить некоторые действия (например, сортировку) и снова загрузить данные в массив.

Для меня было большой неожиданностью ускорения работы макроса за счет массивов, так как данные на листах, на самом деле, итак представляют собой двумерный массив. Но, оказывается, обращение к памяти происходит гораздо быстрей, чем к ячейкам на листе.

В дальнейшем я планирую написать советы (примеры) по быстрому поиску данных на листе, но это уже будет другой пост. Если будут вопросы, комментарии, пожалуйста, пишите.

Спасибо за внимание. Удачных разработок.

Вам прислали файл Excel большого размера? Он сильно тормозит и долго сохраняется? После каждого действия необходимо ждать. При этом, в файле не так много информации. Почему тормозит Excel, причины и следствия, а главное как с этим бороться? Сейчас разберемся.

Тормоза программ пакета MS Office дело распространенное. Excel тормозит из-за целого ряда причин: неправильное использование функций программы (лишнее условное форматирование, сводные таблицы основанные на огромных массивах, лишние строки в документах). Excel тоже не идеален и тормоза происходят из-за не совершенства программной части (появляющиеся объекты, папка printerSettings в структуре). Поэтому рекомендуем вам пройтись по всем 10 шагам ниже и не останавливаться на одном.

Иногда диапазон отформатирован в виде специальной таблицы (Верхняя панель — вкладка Вставка — Таблица), это может привести к тому, что сильно тормозит Excel файл, особенно если таблицы большие.

Чтобы определить такой формат, выделите любую ячейку таблицы. Появляется панель «Работа с таблицами» в верхнем меню, самая правая. Выберите всю таблицу затем вкладку Работа с Таблицами, Конструктор — Раздел сервис — Преобразовать в диапазон.

2. Убрать излишнее условное форматирование (если Excel тормозит при прокрутке)

Что такое условное форматирование, читайте . Очень полезная штука, если правильно применять, если нет, то это заставит Ваш файл работать медленно.

Дело в том, что при копирование ячеек, копируется и форматирование — если в файл постоянно копируются новая информация, то в ней сохраняются условия формата, в особенности условного форматирования.

Убираем так. Выбираете лист. Выберите нужный диапазон или весь лист. В верхней панели Главная — Условное форматирование — Удалить правила — Удалить правила из выделенных ячеек/с листа. Жмем.

3. Удалить лишние строки/столбцы (если ползунок прокрутки очень маленький)

Самая частая проблема для excel с которой я встречаюсь. Если кто-то случайно переместился на конец листа (на строку номер 1 млн) и так сохранил книгу. Размер файла сразу увеличился. Дойти до конца таблицы можно и случайно — если нажать сочетание Ctrl + стрелка вниз или вправо. Бывает, что в конце книги находится какой-нибудь случайный символ или заливка.

Главный признак тормозов — это размер ползунка, он очень маленький, когда файл сохранен неверно, как на картинке.

Исправьте ситуацию, удалите лишние строки или столбцы. Найдите последнюю полезную ячейку для вас, выделите первую пустую ячейку после нее (а лучше первую пустую строку/столбец после нее), нажмите . Такое сочетание клавиш выделяет ячейки ниже выбранной строки или правее выбранного столбца. Правая кнопка мыши – Удалить – Удалить строку или столбец (как правило, проходит долго). После удаления выберите ячейку А1 и сохраните файл. Ползунок должен увеличиться.

4. Удалить лишние объекты

Очень часто, особенно при копировании из других файлов или сайтов в таблицах прячутся скрытые объекты — рисунки, фигуры и т.п.

Чтобы удалить такие объекты , нажмите Alt + F11 и копируйте текст ниже.

Sub DelOb() For Each i In ActiveSheet.Shapes i.Delete Next end sub

Или выделите и удалите объекты вручную. Перейдите в меню Главная — Редактирование — Найти и выделить — пункт Выделение группы ячеек — Объекты. Теперь удаляйте.

5. Удалить лишние данные в структуре файла Excel

Даже опытные пользователи не знают, что файл Excel, как говорит Википедия , это файл-архив. Начиная с 2007 выпуска.

Т.е. файл Excel открывается, к примеру, архиваторами 7-zip или WinRar. Внутри открытого файла могут храниться ненужные файлы, что тормозит Excel порой в десятки раз.

Удалим неудобство? Сперва сделайте резервную копию файла:) Затем запустите 7-zip или другой архиватор, меню «Файл» — «Открыть внутри». Возможно открыть файл кликнув правой кнопкой мыши — Открыть с помощью и выбрав.exe файл WinRar или 7-zip.

Откроется архив, он же файл Excel c папками и файлам.

Находим папки «drawings» и/или «printerSettings» (скорее всего они будут в папке xl) и удаляем их.

Для WinRar делаем тоже самое.

После чего открываем книгу как файл Excel, он немного поругается, выведет несколько системных сообщений, что не находит данных и т.п. На все окна нажимаем ОК, файл восстановится.

Будьте внимательны, если в вашем файле есть нарисованные кнопки или другие фигуры, то удалять всю папку drawings — значит и удалять полезные фигуры.

Поэтому, в папке, удалите только файлы vmlDrawing.vml, они могут накапливать информацию и весить до 100 мб.

6. Тормозит Excel — правильно настройте сводные таблицы

Если сводная таблица ссылается на большой диапазон ячеек от 10 тыс. строк, она хранит результаты расчетов, которые могут быть очень большими. От этого вся книга excel тормозит, конечно же. Чтобы устранить эту причину, нажмите на сводную таблицу правой кнопкой мыши — Параметры сводной таблицы — вкладка Данные — уберите галочку Сохранять исходные данные вместе с файлом.

Что позволит уменьшить файл почти в два раза.

7. Измените формат файла на.xlsb

Если вы работаете с огромными таблицами и ваши файлы больше 0,5 мб весом, то лучше сохранять такие книги в формате . Двоичный формат книги Excel, т.е. специальный формат для создания «базы данных» на основе электронных таблиц. Если сохранить большой файл в таком формате, вес книги уменьшится в два-три раза. Расчеты в файл тоже будут проходить быстрее, в некоторых случаях в 2 раза быстрее.

8. Установлен неопознанный принтер

Если у Вас на компьютере не определен принтер, т.е. не стоит принтер по умолчанию, то зайдите в устройства и принтеры и измените принтер по умолчанию на любой другой (даже если физически принтера нет), если принтер есть, лучше сменить дрова.

Бывает что даже при удалении настроек принтера из пункта 5 настройки принтера тормозят файл.

9. Удалите файл PERSONAL

Зайдите в …Application Data\Microsoft\Excel\XLSTART или …Microsoft Office\Office12 найдите в этих папках файл под название PERSONAL и удалите его. Подробнее читайте .

10. Замените много созданных формул макросами

Часто матрица 10 000 строк на 10 столбцов со сложными формулами ссылающимися на другие листы, хуже книги, жутко тормозит файл. Попробуйте формульные расчеты заменить на записанные , переводящий формулы в скопированные как значения числа или текст. Это поможет, если с файлом с производится много действий — а значит файл часто пересчитывается. Сам недавно попробовал — помогло. Пишите в комментариях, если нужна помощь.

11. Уменьшите размер рисунков

Самый простой способ для версии 2007 и выше — выбрать рисунок, на верхней панели появиться вкладка Работа с рисунками — Формат.

Найдите раздел Изменить и выберите действия по сжатию рисунка, подробнее читайте .

12. Перейдите на поздний Excel — 2013 или 2016

Разработчики нашего любимого редактора действительно не останавливаются в развитии продукта. Проведя ряд экспериментов, я выявил, что большинство сложных операций таких как расчет ячеек, выполнение макроса, сохранение и другие в версии 2016 выполняются быстрее ~на 15% от 2007.

Для некоторых случаев Excel 2007 просто отказывается выполнять действия с файлом, тогда как в современных выпусках программы файл работает.

Так что еще один хороший способ ускорить работу в Excel — перейти на MS Office 2013 и выше.

Теперь попробуйте сами.

Если эти 12 шагов не помогли, то лучше перенесите или скопируйте всю информацию в новый файл. Возможно поврежден сам файл.

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

Если ничего не помогает пишите комментарии, постараемся помочь.

Поделитесь нашей статьей в ваших соцсетях:

Долгое открытие файлов Excel может возникать из-за:

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

Избавляемся от тормозов в Excel

Наличие огромного количества форматирования существенно тормозит работу Excel
Представьте себе таблицу 65000 строк и 50 столбцов. У каждой ячейки отличаются цвета, уникальный шрифт и размер текста. Как думаете, будет по такому файлу курсор перемещаться шустро? Если у вас не MainFrame, то вряд ли.
Старайтесь оформлять только то, что нужно оформить. Не применяйте форматирование ко всему столбцу или строке, если можно выделить только необходимое количество ячеек. Ну а если попался такой "форматированный" файл, то в Excel есть замечательная кнопка - Очистить Форматы

Тормозить Excel может и из-за проблем с принтером
А точнее, если не подключен тот принтер, который в редакторе выбран по-умолчанию. Но эта проблема характерна для Экселя 2007 и старше. При этом запуск файла происходит очень медленно. Исправляется это выбором нового работающего принтера или включением не работающего. Или установкой по-умолчанию виртуального принтера "Microsoft XPS Document Writer"

Наличие скрытых объектов
Скрытые объекты могут попасть в таблицу в результате копирования данных из другого файла. Причем объект переносится с нулевыми размерами, из-за чего, при выделении его не видно. При большом их количестве, это может существенно затормозить работу.
Открываем проблемный файл и убеждаемся, что можем найти и выделить скрытые объекты. Для этого нажимаем Alt+F11, откроется редактор Microsoft Visual Basic. Нажимаем F4, в выпадающем списке выбираем ЭтаКнига Workbook и в поле DisplayDrawingObjects ставим значение -4104 -xlDisplayShapes. Далее, на Листе Экселя выполняем Главная - Найти и выделить - Выделение группы ячеек - Объекты, нажимаем ОК и потом клавишу Delete. Естественно, лучше сделать копию файла и потренироваться на нем.

Перегруженность формулами
Если документ большой, с несколькими листами и по некоторым из них проводится агрегация данных, то вычисление на слабых машинах, ноутбуках и нетбуках будет проходить медленно и долго. Если документ "свой" и его можно переделать, то желательно заменить неиспользуемые формулы - значениями. Делается это так. Выделяете необходимый диапазон ячеек, щелкаете правой кнопкой мыши и выбираете Копировать.

И так же на этот выделенный диапазон щелкаете ПКМ, выбираете Специальная вставка и указываете Значения. Таким образом, уменьшается количество формул, по которым Excel должен проводить расчеты.

Так же не забывайте использовать более быстрые формулы:
Используйте ЕСЛИОШИБКА, она отрабатывает быстрее комбинации ЕСЛИ + ЕОШ
Используйте -- для конвертации логических значений в ноли и единицы.
Предпочтительней использовать комбинацию ИНДЕКС + ПОИСКПОЗ вместо ВПР
МАКС(А1;0) работает быстрее ЕСЛИ(А1>0;A1;0)

Долгое открытие из-за большого размера
Причем, часто бывает, что количество данных в таблицах, пропорционально не соответствует размеру файла. Последний, чаще всего больше. Такое может быть, когда файл побывал или находится в Общем доступе. При установке этого режима, Excel ведет журнал изменений, куда попадают все изменения за период, указанный в параметрах.
Отключить или поменять период, можно в Excel 2007 и старше, во вкладке Рецензирование - Доступ к книге. И на вкладке Подробнее выставляете значения какие нужно.

Если документ сохранен в формате xlsx или xls, то можно сохранить его в формат xlsb. И скорость, с какой будет открываться файл, приятно удивит. Увеличение скорости достигается за счет того, что все данные в этом файле сохраняются в бинарном формате, более "родном" для Excel, который требует меньше ресурсов для разбора и преобразования документа. Плюс ко всему этому, размер файла станет меньше.

Опять же, если документ сохранен в формате xlsx и долго открывается, можно открыть его с помощью любого архиватора (например winrar) и поудалять папки revisions и worksheets. Первая хранит все изменения, при включенном режиме Общий доступ. Вторая папка содержит изображения. Данные операции проводите на копии файла. Кстати, если в документе имеются изображения, не забывайте их сжимать. Делается это через вкладку Формат - группа Изменить - Сжатие рисунков и указать предпочтительное качество. Поможет уменьшить размеры изображений, что положительно отразится на размере файла.

Медленно запускаться файл может в Excel 2003 и 2007, если документ открывается с сетевого ресурса. Но при копировании на локальный компьютер - запуск происходит быстро. Лечится это созданием отсутствующих разделов и добавлением значения:
HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\12.0\Excel\Security\FileValidation (для 2007)
HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\11.0\Excel\Security\FileValidation (для 2003)
Enableonload=dword:00000000
Данный параметр отключает функцию Office File Validation, которая отвечает за проверку двоичного формата файла и проверяет, соответствуют ли он формату файла MS Office.

Включаем\Отклчючаем многопоточные вычисления
Данный параметр находится в Настройки - Дополнительно - вкладка Формулы. При наличии нескольких ядер процессора нужно включить данный пункт и указать количество потоков равное количеству ядер. Если же приложением тормозило и до этого с включенным параметром, то отключите. В идеале, эта настройка ускоряет работу при работе с формулами.

Надеюсь, после всех манипуляций, файл у вас больше не будет долго открываться, а Excel не будет тормозить при запуске.
И ниже, очень интересное и подробное видео с комментариями, как ускорить работу Excel

Павлов Николай

В этой статье мне хотелось бы представить вам самые эффективные приемы работы в Microsoft Excel, собранные мной за последние 10 лет работы над проектами и проведения тренингов по этой замечательной программе. Здесь нет описания суперсложных технологий, но есть приемы на каждый день - простые и эффективные, описанные без "воды" - только "сухой остаток". На освоение большинства из этих примеров у вас уйдет не более одной-двух минут, а вот сэкономить они вам помогут гораздо больше.

Быстрый переход к нужному листу

Случается ли вам работать с книгами Excel, состоящими из большого количества листов? Если их больше десятка, то каждый переход к очередному нужному листу сам по себе становится маленькой проблемой. Простое и элегантное решение такой задачи - щелкнуть в левом нижнем углу окна по кнопкам прокрутки ярлычков листов не левой, а правой кнопкой мыши - появится оглавление книги с полным списком всех листов и на нужный лист можно будет перейти в одно движение:

Это намного быстрее, чем прокручивать ярлычки листов этими же кнопками в поисках нужного.


Копирование без повреждения форматирования

Сколько сотен (тысяч?) раз я видел эту картину, стоя за спиной своих слушателей во время тренингов: пользователь вводит формулу в первую ячейку затем и "протягивает" ее на весь столбец, нарушая форматирование нижерасположенных строк, поскольку такой способ копирует не только формулу, но и формат ячейки. Соответственно, дальше приходится вручную исправлять повреждения. Секунда на копирование и потом 30 - на починку испорченного копированием дизайна.

Начиная с Excel 2002, есть решение этой проблемы - простое и изящное. Сразу после копирования (протаскивания) формулы на весь столбец, нужно воспользоваться смарт-тегом - небольшим значком, который временно появляется в правом нижнем углу диапазона. Нажатие на него выведет список возможных вариантов копирования, где и можно выбрать Копировать только значения (Fill without formatting). В этом случае формулы копируются, а форматирование - нет:


Копирование только видимых ячеек

Если вы работаете в Microsoft Excel больше недели, то должны были уже сталкиваться с подобной проблемой: в некоторых случаях при копировании-вставке ячеек их вставляется больше, чем было, на первый взгляд, скопировано. Это может происходить, если копируемый диапазон включал в себя скрытые строки/столбцы, группировки, промежуточные итоги или фильтрацию. Рассмотрим в качестве примера один из таких случаев:

В этой таблице посчитаны промежуточные итоги и сделана группировка строк по городам - это легко понять по кнопкам "плюс-минус" слева от таблицы и по разрывам в нумерации видимых строк. Если выделить, скопировать и вставить данные из этой таблицы обычным способом, то мы получим 24 лишних строки. Нам же хочется скопировать и вставить только итоги!

Можно решить проблему, кропотливо выделяя каждую строку итогов и удерживая при этом клавишу CTRL - как для выделения несмежных диапазонов. Но если таких строк не три-пять, а несколько сотен или тысяч? Есть другой, более быстрый и удобный путь:

Выделите копируемый диапазон (в нашем примере - это A1:C29)

Нажмите на клавиатуре клавишу F5 и затем кнопку Выделить (Special) в открывшемся окне.
Появится окно, позволяющее пользователю выделять не все подряд, а только нужные ячейки:

В этом окне выберите опцию Только видимые ячейки (Visible cells only) и нажмите ОК.

Полученное выделение теперь можно смело копировать и вставлять. В результате мы получим копию именно видимых ячеек и вставим вместо ненужных 29-ти только необходимые нам 5 строк.

Если есть подозрение, что подобную операцию вам придется проделывать часто, то имеет смысл добавить на панель инструментов Microsoft Excel кнопку для быстрого вызова такой функции. Это можно сделать через меню Сервис>Настройка (Tools> Customize), затем перейти на вкладку Команды (Commands), в категории Правка (Edit) найти кнопку Выделить видимые ячейки (Select visible cells) и перенести ее мышью на панель инструментов:


Превращение строк в столбцы и обратно

Простая операция, но если не знать как сделать ее правильно - можно потратить полдня на перетаскивание отдельных ячеек вручную:

На самом деле все просто. В той части высшей математики, которая описывает матрицы есть понятие транспонирования - действия, которое меняет строки и столбцы в матрице местами друг с другом. В Microsoft Excel это реализуется в три движения: Копируем таблицу

Щелкаем правой кнопкой мыши по пустой ячейке и выбираем команду Специальная вставка (Paste Special)

В открывшемся окне ставим флаг Транспонировать (Transpose) и жмем ОК:


Быстрое добавление данных в диаграмму

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

Другой путь - простой, быстрый и красивый - выделить ячейки с новыми данными, скопировать их (CTRL+C) и вставить (CTRL+V) прямо в диаграмму. Excel 2003, в отличие от более поздних версий, поддерживает даже возможность перетаскивания выделенного диапазона ячеек с данными и забрасывания его прямо в диаграмму с помощью мыши!

Если хочется контролировать все нюансы и тонкости, то можно использовать не обычную, а специальную вставку, выбрав в меню Правка>Специальная вставка (Edit> Paste Special). В этом случае Microsoft Excel отобразит диалоговое окно, позволяющее настроить куда и как именно будут добавлены новые данные:

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


Заполнение пустых ячеек

После выгрузки отчетов из некоторых программ в формат Excel или при создании сводных таблиц пользователи часто получают таблицы с пустыми ячейками в некоторых столбцах. Эти пропуски не позволяют применять к таблицами привычные и удобные инструменты типа автофильтра и сортировки. Естественным образом возникает необходимость заполнить пустоты значениями из вышестоящих ячеек:

Безусловно, при небольшом количестве данных, это легко можно сделать простым копированием - вручную протянув каждую заглавную ячейку в столбце А вниз на пустые ячейки. А если в таблице несколько сотен или тысяч строк и несколько десятков городов?

Есть способ решить эту задачу быстро и красиво при помощи одной формулы:

Выделите все ячейки в столбце с пустотами (т.е. диапазон A1:A12 в нашем случае)

Чтобы в выделении остались только пустые ячейки, нажмите клавишу F5 и в открывшемся окне переходов - кнопку Выделить. Увидите окно, позволяющее выбрать - какие именно ячейки мы хотим выделить:

Установите переключатель в положение Пустые (Blank) и нажмите ОК. Теперь в выделении должны остаться только пустые ячейки:

Не меняя выделения, т.е. не трогая мышь, введем формулу в первую выделенную ячейку (А2). Нажмите на клавиатуре на знак "равно" и затем на "стрелку вверх". Получим формулу, которая ссылается на предыдущую ячейку:

Чтобы ввести созданную формулу сразу во все выделенные пустые ячейки, нажмите не клавишу ENTER, а сочетание CTRL+ ENTER. Формула заполнит все пустые ячейки:

Теперь осталось только заменить формулы на значения для фиксации результатов. Выделите диапазон A1:A12, скопируйте его и вставьте в ячейки их значения, используя специальную вставку.


Выпадающий список в ячейке

Прием, который, без преувеличения, должен знать каждый, кто работает в Excel. Его применение способно улучшить, практически, любую таблицу вне зависимости от ее назначения. На всех тренингах я стараюсь показать его своим слушателям в первый же день.

Идея очень проста - во всех случаях, когда вы должны ввести данные из какого-либо набора, вместо ручного ввода в ячейку с клавиатуры выбирать нужное значение мышью из выпадающего списка:

Выбор товара из прайс-листа, имени клиента из клиентской базы, ФИО сотрудника из штатного расписания и т.д. Вариантов применения этой функции множество.

Чтобы создать выпадающий список в ячейке:

Выделите ячейки, в которых вы хотите создать выпадающий список.

Если у вас Excel 2003 или старше, то выберите в меню Данные>Проверка (Data>Validation). Если у вас Excel 2007/2010, то перейдите на вкладку Данные (Data) и нажмите кнопку Проверка данных (Data validation).

В открывшемся окне выберите вариант Список (List) из раскрывающегося списка.

В поле Источник (Source) надо указать значения, которые должны быть в списке. Тут возможны варианты:

Вписать в это поле текстовые варианты через точку с запятой

Если диапазон ячеек с исходными значениями находится на текущем листе - достаточно его просто выделить мышью.

Если он находится на другом листе этой книги, то ему придется заранее дать имя (выделить ячейки, нажать CTRL+F3, ввести имя диапазона без пробелов), а затем прописать это имя в поле

Вмещается 32 767 знаков. Поэтому функция быстрого изменения ширины столбца по его содержимому не всегда удобна. :) Хотя в большинстве случаев она выручает. Наведите курсор мыши на правую границу заголовка столбца и дважды кликните по ней, чтобы программа подобрала оптимальную ширину столбца. Этот трюк работает и для нескольких столбцов, а также для всего листа.

2. Как быстро выделить всю строку или столбец

При работе с большими объёмами данных невозможно обойтись без клавиатурных сокращений, с помощью которых легко перемещаться по листу и выделять отдельные столбцы или строки. Комбинации Ctrl + Spacebar и Shift + Spacebar как раз и отвечают за быстрое выделение текущего столбца или строки.

Однажды я наблюдал, как четырёхлетний использовал горячие клавиши копирования и вставки для ввода ключа к игре. Похоже, неразлучная троица Ctrl + C , Ctrl + V и Ctrl + A впитывается молодым поколением вместе с молоком матери. К слову, команда «Выделить всё» в Excel имеет небольшую особенность: одиночное нажатие Ctrl + A выделяет текущий диапазон, а двойное - таблицу целиком.

4. Как внести изменения на нескольких листах одновременно

Пареная репа, твой выход! К примеру, чтобы поменять размер шрифта сразу на всех листах, необходимо собрать их в группу с помощью щелчков мышью по закладкам листов, удерживая клавишу Ctrl.

5. Как перенести строку в текущей ячейке

Хочешь поиздеваться над новичком в - попроси его вписать данные внутри ячейки в несколько строк. Конечно, школьный трюк, но со старшим поколением работает на ура. Комбинация Alt + Enter предотвращает переход к другой ячейке и переводит курсор на новую строку в пределах текущей ячейки.

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

7. Как быстро вставить текущую дату

Судя по всему, горячие клавиши Ctrl + ; и Ctrl + Shift + ; нужно крутить по радио вместо утреннего гимна. Эти комбинации стоит повторять до той поры, пока на планете не останется того трудяги, который вбивает дату и время вручную.