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

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

Удалить пустые ячейки в Excel очень просто. Однако этот подход применим не во всех ситуациях. О возможных неприятных неожиданностях мы расскажем в этой статье. Чтобы обезопасить себя, обязательно сделайте резервную копию своего рабочего листа и прочтите эти предостережения, прежде чем действовать.

Удаляем пустые ячейки стандартными инструментами Excel.

Ну а теперь, когда вы предупреждены о возможных неприятных последствиях:

  1. Выберите диапазон, в котором вы хотите убрать пустоты. Чтобы быстро выбрать всю таблицу с данными, щелкните верхнюю левую позицию и затем нажмите Ctrl + Shift + End. Это сразу расширит выделение до последней использованной клетки.
  2. Нажмите F5 и щелкните Выделить… . Или перейдите на вкладку «Главная» и нажмите Найти…> Выделить группу ячеек.
  3. В диалоговом окне выберите «Пустые ячейки» и нажмите ОК. Это выделит все незаполненные позиции в вашем диапазоне.
как выделить все пустые ячейки в Экселе
  1. Щелкните правой кнопкой мыши на выделенном и выберите Удалить… из контекстного меню:
  2. В зависимости от макета ваших данных выберите сдвиг влево или вверх и нажмите кнопку «ОК». В этом примере мы используем второй вариант.

Вот и все. Вы успешно удалили пустоты в своей таблице:

Примечание. Если что-то пошло не так, не паникуйте и сразу нажмите Ctrl + Z, чтобы вернуть свои данные в исходное состояние.

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

Когда не следует удалять пустые ячейки.

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

  1. Удаляйте пустые строки и столбцы вместо отдельных ячеек.

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

  1. Удаление не работает для таблиц Excel.

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

  1. Вашими действиями могут быть повреждены формулы и именованные диапазоны.

Формулы Excel могут адаптироваться ко многим изменениям, внесенным в данные, которые они используют. Многим, но не всем. В некоторых случаях формулы, ссылающиеся на удалённые вами ячейки, перестают работать. Поэтому после удаления незаполненных ячеек взгляните внимательно на соответствующие формулы и именованные диапазоны, чтобы убедиться, что они работают нормально.

Как извлечь список данных без пустот.

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

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

Итак, наш список находится в диапазоне A2:A12. Причем, в A4 записано пустое значение "". Рассмотрим 5 методов, при помощи которых мы попытаемся избавиться от пустых ячеек и сформировать в нужном нам месте новый список без пробелов.

Способ 1.

Введите приведенную ниже формулу массива в C2, нажмите Ctrl + Shift + Enter, чтобы заполнить ее правильно, а затем скопируйте формулу в еще несколько ячеек вниз по столбцу. Количество ячеек, в которые вы копируете формулу, должно быть не меньше, чем количество элементов в вашем исходном списке.

Формулы для извлечения заполненных позиций:

=ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$12; НАИМЕНЬШИЙ(ЕСЛИ(НЕ(ЕПУСТО($A$2:$A$12)); СТРОКА($A$1:$A$11);""); СТРОКА(A1)));"")

Обратите внимание, что диапазон в функции СТРОКА($A$1:$A$11) должен всегда начинаться с $A$1. И включать в себя он должен столько же позиций, сколько их в нашей области поиска. Иначе говоря, если в $A$2:$A$12 — 11 позиций, значит столько же их нужно указать и в $A$1:$A$11.

На скриншоте ниже показан результат:

формула для извлечения всех заполненных ячек

Сразу отметим, что пустые значения "" здесь не исключаются из списка.

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

Итак, наша задача: вернуть первое значение, которое встретится в диапазоне A2:A12. В случае ошибки возвращаем пустоту ("").

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

У вас есть функция ИНДЕКС, возвращающая значение из $A$2:$A$12 на основе порядкового номера строки (не реального номера, а относительного номера в этом диапазоне). При этом нам нужно учесть еще 2 вещи:

  • Убедиться, что A2 не пустая
  • Вернуть второе непустое значение в C3, третье непустое значение в C4 и так далее.

Обе эти задачи выполняются функцией НАИМЕНЬШИЙ:

НАИМЕНЬШИЙ(ЕСЛИ(НЕ(ЕПУСТО($A$2:$A$12)); СТРОКА($A$1:$A$11);""); СТРОКА(A1)))

В нашем случае аргумент массива генерируется динамически следующим образом:

  • НЕ(ЕПУСТО($A$2:$A$12)) определяет, какие позиции в целевом диапазоне заполнены, и для них возвращается ИСТИНА, в противном случае - ЛОЖЬ. Результирующий массив ИСТИНА и ЛОЖЬ проходит логическую проверку функции ЕСЛИ.
  • ЕСЛИ оценивает каждый элемент массива ИСТИНА / ЛОЖЬ и возвращает соответствующий номер позиции для ИСТИНА, и ничего — для ЛОЖЬ:
    В результате мы получаем массив {1; 2; ""; 4; ""; “”; 7; 8; ""; 10; 11} и наша сложная функция преобразуется:

НАИМЕНЬШИЙ({1; 2; ""; 4; ""; “”; 7; 8; ""; 10; 11}; СТРОКА(A1))

Как видите, аргумент массива содержит только номера непустых ячеек (заметьте, это относительные положения элементов в массиве, т.е. A2 – имеет порядковый номер 1, A3 — это 2 и так далее).

Во втором аргументе мы имеем СТРОКА(A1), что указывает функции НАИМЕНЬШИЙ вернуть самое маленькое число. Из-за использования относительной ссылки номер увеличивается с шагом 1 при копировании формулы вниз. Итак, в C3 формула вернет номер второй по величине минимальный номер заполненной позиции в диапазоне (то есть, 2) и так далее.

Однако на самом деле нам не нужны номера позиций, а нужны их значения. Итак, мы вкладываем функцию НАИМЕНЬШИЙ в аргумент функции ИНДЕКС, заставляя возвращать значение из соответствующей позиции в диапазоне.

В качестве последнего штриха мы заключаем всю конструкцию в функцию ЕСЛИОШИБКА, чтобы заменить ошибки пустотами. Ошибки будут неизбежны, потому что вы не можете заранее знать, сколько непустых ячеек находится в целевом диапазоне, и копируете формулу вниз по столбцу в заведомо большее количество ячеек, чем это необходимо.

Способ 2.

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

=ЕСЛИ(СТРОКА() -СТРОКА($C$2:$C$12)+1>ЧСТРОК($A$2:$A$12) -СЧИТАТЬПУСТОТЫ($A$2:$A$12);"";ДВССЫЛ(АДРЕС(НАИМЕНЬШИЙ((ЕСЛИ($A$2:$A$12<>"";СТРОКА($A$2:$A$12);СТРОКА()+ЧСТРОК($A$2:$A$12)+1));СТРОКА() -СТРОКА($C$2:$C$12)+1);СТОЛБЕЦ($A$2:$A$12);4)))

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

Естественно, не забываем ввод заканчивать комбинацией  Ctrl + Shift + Enter.

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

Способ 3.

Это тоже формула массива. Но, в отличие от предыдущих двух, ее нужно вводить сразу в диапазон. Если основываться на наших условных данных, то выделяем при помощи мыши диапазон C2:C12, а затем в строку формул записываем следующее выражение:

=ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$12;НАИМЕНЬШИЙ(ЕСЛИ($D$1<>$A$2:$A$12;СТРОКА(ДВССЫЛ("1:"&ЧСТРОК($A$2:$A$12)));"");СТРОКА(ДВССЫЛ("1:"&ЧСТРОК($A$2:$A$12)))));"")

Естественно, заканчиваем всё нажатием Ctrl + Shift + Enter.

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

формируем список буз пустых значений

Сравниваем значение D1 с каждым элементом исходного диапазона $A$2:$A$12.

СТРОКА(ДВССЫЛ("1:"&ЧСТРОК($A$2:$A$12))))) - счетчик массива от первого до его последнего элемента.

При помощи функции ИНДЕКС выводим только непустые элементы.

При сравнении ячейки с нулями и нулевой длиной приравниваются к пустым.

НАИМЕНЬШИЙ позволяет выводить значения по порядку — с 1 до конца массива.

Способ 4.

Несомненным достоинством трёх описанных выше формул является то, то не нужно вносить никаких дополнительных изменений в данные, делать какие-то промежуточные расчеты.

Однако, формулы массива с большими объемами данных работают довольно медленно. А на особо больших массивах в несколько тысяч строк Эксель и вовсе может «зависнуть». Поэтому в таких случаях проще и быстрее будет создать на листе дополнительный столбец для промежуточных вычислений. Зато быстродействие вырастет многократно.

удаление пустых ячеек при помощи дополнительного стролбца в Excel

Создаем дополнительный столбец А. В нем будем нумеровать непустые ячейки.   

Для этого проверяем выполнение 2 условий:

  • ячейка в столбце В непустая,
  • она не равна 0.

=ЕСЛИ((B3<>"")+(B3<>0)=2;СЧЁТ(A$2:A2)+1;"")

Если условия выполнены, считаем количество чисел, находящихся в этом столбце выше текущей позиции, и увеличиваем результат на 1 (своего рода счётчик). То есть, записываем, какая по счету непустая позиция найдена. Если же клетка в столбце В пустая, то ставим "".    

Копируем эту формулу вниз по столбцу. Получаем последовательную нумерацию непустых ячеек.

Переходим ко второму шагу. Функция ВПР (VLOOKUP) последовательно ищет значения начиная с 1 в столбце А и выводит соответствующие им значения из В.

=ЕСЛИОШИБКА(ВПР(СТРОКА(A1);A$3:B$16;2;0);"")

Для получения последовательности чисел используем СТРОКА().

Копируем формулу вниз, получаем список без пустот. Работает такая конструкция быстро, независимо от количества данных. Да и сами формулы просты и вполне доступны для понимания, в отличие от формул массива. Так что можете взять на вооружение и этот способ.

Способ 5.

Предвидя то, что многим может не понравиться торчащий на самом виду вспомогательный столбец А с цифрами, предлагаю еще один метод избавления от пустых ячеек. Здесь мы используем так называемый «левый ВПР». Поэтому вспомогательный столбец можно размещать в любом месте, где он не будет мешать. Чтобы не портить внешний вид вашей таблицы, можно использовать любой другой столбец, находящийся правее (например — Z). Мы же используем B для наглядности результатов.

как использовать левый ВПР для удаления пустых ячеек

В позиции B2 записываем вспомогательную формулу

=ЕСЛИ(A2<>$D$1;1;"")

D1 будет служить нам эталоном как абсолютно пустая. Последовательно сравниваем столбец А с ней. При этом игнорируются нули, а также содержимое нулевой длины "".

В С2 записываем:  

=ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$21;ПОИСКПОЗ(СТРОКА(1:1);$B$2:$B$21;0);1);"")

При помощи ПОИСКПОЗ ищем в столбце B порядковые номера от 1 и далее, и функцией ИНДЕКС выводим соответствующее значение из столбца A. В результате в столбце С мы избавились от пустых ячеек в списке. При этом исходные данные мы не меняли, чем гарантировали себя от возможных ошибок.

Как удалить пустые ячейки после последней позиции с данными.

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

Как найти последнюю использованную ячейку на листе

Чтобы перейти к последней ячейке на листе, содержащей данные или форматирование, щелкните в любом месте вашей таблицы и нажмите Ctrl + End.

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

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

Как удалить ячейки после последней позиции с данными.

Чтобы очистить все содержимое и форматирование после последней заполненной ячейки, выполните следующие действия:

  1. Щелкните заголовок первого незаполненного столбца справа от вашей таблицы и нажмите Ctrl + Shift + End. Это позволит выбрать диапазон справа между вашими данными и последней использованной позицией на листе.
  2. На вкладке «Главная» нажмите «Очистить». Или щелкните на выделении правой кнопкой мыши и выберите Удалить.
  3. Щелкните заголовок первой чистой строчки под данными и нажмите Ctrl + Shift + End.
  4. Выполните те же действия, которые выполнялись в п.2.
  5. Нажмите Ctrl + S, чтобы сохранить книгу.

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

Примечание. Учитывая, что Microsoft Excel 2007–2019 содержит более 1 000 000 строк и более 16 000 столбцов, вы можете уменьшить размер рабочей области, чтобы пользователи не могли случайно вводить данные в неправильные места.

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

  1. Выберите строчку под последней позицией с данными (чтобы выделить её целиком, щелкните заголовок).
  2. Нажмите Ctrl + Shift + ↓ (стрелка вниз), чтобы расширить выделение до нижней части листа.
  3. Нажмите Ctrl + 9, чтобы скрыть выбранные строки.

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

Подобным же образом вы скрываете неиспользуемые столбцы:

  1. Выберите чистый столбец после последнего столбца с данными.
  2. Нажмите Ctrl + Shift + → (стрелка вправо), чтобы выделить все остальные неиспользуемые столбцы до конца листа.
  3. Нажмите Ctrl + 0, чтобы скрыть выбранные колонки. Готово!

Если позже вы решите отобразить все ячейки, выберите весь лист (можно при помощи Ctrl + A), затем нажмите Ctrl + Shift + 9, чтобы показать все строки, и Ctrl + Shift + 0, чтобы показать все столбцы.

Вот как вы можете избавиться от пустых ячеек в Excel. Благодарю вас за чтение!