Оглавление
Этот учебник научит вас нескольким простым приемам безопасного удаления нескольких пустых строк в Excel без потери информации. .
Пустые строки в Excel - это проблема, с которой мы все сталкиваемся время от времени, особенно при объединении данных из разных источников или импорте информации из других мест. Пустые строки могут вызвать большой хаос в ваших рабочих листах на разных уровнях, а их удаление вручную может занять много времени и привести к ошибкам. В этой статье вы узнаете несколько простых и надежных методов удаления пустых строк в Excel.свои рабочие листы.
Как НЕ удалять пустые строки в Excel
Существует несколько различных способов удаления пустых строк в Excel, но на удивление многие интернет-ресурсы придерживаются самого опасного из них, а именно Найти и выбрать > Перейти к специальному > Заготовки .
Что не так в этой технике? Она выбирает все заготовки в диапазоне, и, следовательно, в итоге вы удалите все строки, содержащие хоть одну пустую ячейку.
На рисунке ниже показана исходная таблица слева и результирующая таблица справа. В результирующей таблице исчезли все неполные строки, даже строка 10, где отсутствовала только дата в столбце D:
Итог: если вы не хотите испортить данные, никогда не удаляйте пустые строки, выделяя пустые ячейки. Вместо этого используйте один из более продуманных подходов, рассмотренных ниже.
Как удалить пустые строки в Excel с помощью VBA
Excel VBA может исправить множество вещей, включая несколько пустых строк. Самое лучшее в этом подходе то, что он не требует никаких навыков программирования. Просто возьмите один из приведенных ниже кодов и запустите его в Excel (инструкции здесь).
Макрос 1. Удаление пустых строк в выбранном диапазоне
Этот код VBA молча удаляет все пустые строки в выбранном диапазоне, не показывая пользователю никакого сообщения или диалогового окна.
В отличие от предыдущей техники, макрос удаляет строку, если в поле весь ряд пуст Он полагается на функцию рабочего листа CountA для получения количества непустых ячеек в каждой строке, а затем удаляет строки с нулевым количеством.
Public Sub DeleteBlankRows() Dim SourceRange As Range Dim EntireRow As Range Set SourceRange = Application.Selection If Not (SourceRange Is Nothing ) Then Application.ScreenUpdating = False For I = SourceRange.Rows.Count To 1 Step -1 Set EntireRow = SourceRange.Cells(I, 1).EntireRow If Application.WorksheetFunction.CountA(EntireRow) = 0 Then EntireRow.Delete End If Next Application.ScreenUpdating= True End If End SubПредоставить пользователю возможность выбрать целевой диапазон после запуска макроса используйте этот код:
Public Sub RemoveBlankLines() Dim SourceRange As Range Dim EntireRow As Range On Error Resume Next Set SourceRange = Application.InputBox( _ "Select a range:" , "Delete Blank Rows" , _ Application.Selection.Address, Type :=8) If Not (SourceRange Is Nothing ) Then Application.ScreenUpdating = False For I = SourceRange.Rows.Count To 1 Step -1 Set EntireRow = SourceRange.Cells(I, 1).EntireRow IfApplication.WorksheetFunction.CountA(EntireRow) = 0 Then EntireRow.Delete End If Next Application.ScreenUpdating = True End If End SubПосле запуска макрос отображает следующее поле ввода, вы выбираете целевой диапазон и нажимаете OK:
Через мгновение все пустые строки в выбранном диапазоне будут удалены, а оставшиеся сдвинутся вверх:
Макрос 2. Удаление всех пустых строк в Excel
Для удаления все пустые строки на активный лист , определить последнюю строку используемого диапазона (т.е. строку, содержащую последнюю ячейку с данными), а затем перейти вверх, удаляя строки, для которых CountA возвращает ноль:
Sub DeleteAllEmptyRows() Dim LastRowIndex As Integer Dim RowIndex As Integer Dim UsedRng As Range Set UsedRng = ActiveSheet.UsedRange LastRowIndex = UsedRng.Row - 1 + UsedRng.Rows.Count Application.ScreenUpdating = False For RowIndex = LastRowIndex To 1 Step -1 If Application.CountA(Rows(RowIndex)) = 0 Then Rows(RowIndex).Delete End If Next RowIndex Application.ScreenUpdating = True End SubМакрос 3. Удаление строки, если ячейка пуста
С помощью этого макроса можно удалить всю строку, если ячейка в указанном столбце пуста.
Следующий код проверяет столбец А на наличие пробелов. Чтобы удалить строки на основе другого столбца, замените "А" на соответствующую букву.
Sub DeleteRowIfCellBlank() On Error Resume Next Columns("A" ).SpecialCells(xlCellTypeBlanks).EntireRow.Delete End SubНа самом деле, макрос использует функцию Перейти к специальному > Заготовки функцию, и вы можете добиться того же результата, выполнив эти действия вручную.
Примечание. Макрос удаляет пустые строки в весь лист Поэтому, пожалуйста, будьте очень осторожны при его использовании. В качестве меры предосторожности, возможно, имеет смысл создать резервную копию рабочего листа перед запуском этого макроса.
Как удалить пустые строки в Excel с помощью VBA
Чтобы удалить пустые строки в Excel с помощью макроса, вы можете либо вставить код VBA в свою собственную рабочую книгу, либо запустить макрос из нашего образца рабочей книги.
Добавьте макрос в рабочую книгу
Чтобы вставить макрос в рабочую книгу, выполните следующие действия:
- Откройте рабочий лист, на котором нужно удалить пустые строки.
- Нажмите Alt + F11, чтобы открыть редактор Visual Basic.
- На левой панели щелкните правой кнопкой мыши ThisWorkbook , а затем нажмите Вставка > Модуль .
- Вставьте код в окно Код.
- Нажмите F5, чтобы запустить макрос.
Подробные пошаговые инструкции см. в статье Как вставить и использовать VBA в Excel.
Запустите макрос из нашего образца рабочей книги
Загрузите наш образец рабочей книги с макросом для удаления пустых строк и запустите один из следующих макросов из него:
DeleteBlankRows - удаляет пустые строки в текущем выбранном диапазоне.
RemoveBlankLines - удаляет пустые строки и сдвигает вверх в диапазоне, который вы выбираете после запуска макроса.
DeleteAllEmptyRows - удаляет все пустые строки на активном листе.
DeleteRowIfCellBlank - удаляет строку, если ячейка в определенном столбце пуста.
Чтобы запустить макрос в Excel, сделайте следующее:
- Откройте загруженную рабочую книгу и при появлении запроса включите макросы.
- Откройте собственную рабочую книгу и перейдите к интересующему вас рабочему листу.
- В рабочем листе нажмите Alt + F8, выберите макрос и нажмите кнопку Запускайте .
Формула для удаления пустых строк в Excel
Если вы хотите видеть, что вы удаляете, используйте следующую формулу для определения пустых строк:
=IF(COUNTA(A2:D2)=0, "Пусто", "Не пусто")
Где A2 - первая, а D2 - последняя используемая ячейка первого ряда данных.
Введите эту формулу в E2 или любой другой пустой столбец в строке 2 и перетащите ручку заполнения, чтобы скопировать формулу вниз.
В результате вы получите "Пусто" в пустых строках и "Не пусто" в строках, содержащих хотя бы одну ячейку с данными:
Логика формулы очевидна: вы подсчитываете непустые ячейки с помощью функции COUNTA и используете оператор IF, чтобы вернуть "Пусто" при нулевом количестве, "Не пусто" в противном случае.
На самом деле, вы можете прекрасно обойтись и без IF:
=COUNTA(A2:D2)=0
В этом случае формула будет возвращать TRUE для пустых строк и FALSE для непустых.
При наличии формулы выполните следующие действия для удаления пустых строк:
- Выберите любую ячейку в строке заголовка и нажмите кнопку Сортировка и фильтр > Фильтр на Главная во вкладке Форматы Это добавит выпадающие стрелки фильтрации во все ячейки заголовка.
- Нажмите стрелку в заголовке столбца формул, снимите флажок (Выбрать все), выберите Пустой и нажмите OK :
- Выберите все отфильтрованные строки. Для этого щелкните по первой ячейке первой отфильтрованной строки и нажмите Ctrl + Shift + End, чтобы расширить выделение до последней ячейки последней отфильтрованной строки.
- Щелкните правой кнопкой мыши по выделению, выберите Удалить строку из контекстного меню, а затем подтвердите, что вы действительно хотите удалить целые строки:
- Удалите фильтр, нажав Ctrl + Shift + L. Или нажмите кнопку Главная вкладка> Сортировка и фильтр > Фильтр .
- Удалите столбец с формулой, поскольку он вам больше не нужен.
Вот и все! В результате у нас получилась чистая таблица без пустых строк, но вся информация сохранена:
Совет. Вместо того чтобы удалять пустые строки, вы можете копировать непустые строки в другое место. Чтобы сделать это, отфильтруйте строки "Не пустые", выделите их и нажмите Ctrl + C для копирования. Затем перейдите на другой лист, выделите левую верхнюю ячейку диапазона назначения и нажмите Ctrl + V для вставки.
Как удалить пустые строки в Excel с помощью Power Query
В Excel 2016 и Excel 2019 есть еще один способ удаления пустых строк - с помощью функции Power Query. В Excel 2010 и Excel 2013 ее можно загрузить как дополнение.
Важное замечание! Этот метод работает со следующей оговоркой: Power Query преобразует исходные данные в таблицу Excel и изменяет форматирование, такое как цвет заливки, границы и некоторые форматы чисел. Если для вас важно форматирование исходных данных, то лучше выбрать другой способ удаления пустых строк в Excel.
- Выберите диапазон, в котором нужно удалить пустые строки.
- Перейти к Данные вкладка> Получить & преобразовать группу и нажмите кнопку Из таблицы/диапазона Это загрузит вашу таблицу в Power Query Editor.
- На Главная на вкладке Power Query Editor нажмите кнопку Удалить строки > Удаление пустых строк .
- Нажмите кнопку Закрыть & Загрузить В результате результирующая таблица будет загружена на новый рабочий лист, а редактор запросов будет закрыт.
В результате этих манипуляций я получил следующую таблицу без пустых строк, но с парой неприятных изменений - формат валюты потерян, а даты отображаются в формате по умолчанию вместо пользовательского:
Как удалить строки, если ячейка в определенном столбце пуста
В начале этого руководства мы предостерегали вас от удаления пустых строк путем выделения пустых мест. Однако этот метод пригодится, если вы хотите удалить строки на основе пробелы в определенном столбце .
В качестве примера удалим все строки, в которых ячейка в столбце A пуста:
- Выберите ключевой столбец, в нашем случае столбец A.
- На Главная вкладка, нажмите Найти и выбрать > Перейти к специальному Или нажмите F5 и нажмите кнопку Специальный... кнопка.
- В Перейти к специальному диалоговое окно, выберите Заготовки и нажмите OK Это позволит выбрать пустые ячейки в используемом диапазоне в столбце A.
- Щелкните правой кнопкой мыши на любой выделенной ячейке и выберите Удалить... из контекстного меню.
- В Удалить диалоговое окно, выберите Весь ряд и нажмите OK.
Готово! Строки, в которых нет значения в столбце A, больше нет:
Такого же результата можно добиться, фильтруя пустые места в столбце ключей.
Как удалить лишние строки под данными
Иногда строки, которые выглядят абсолютно пустыми, на самом деле могут содержать некоторые форматы или непечатные символы. Чтобы проверить, действительно ли последняя ячейка с данными является последней используемой ячейкой в рабочем листе, нажмите Ctrl + End . Если это привело вас к визуально пустой строке под вашими данными, с точки зрения Excel, эта строка не является пустой. Чтобы удалить такие строки, сделайте следующее:
- Щелкните заголовок первой пустой строки под вашими данными, чтобы выбрать ее.
- Нажмите Ctrl + Shift + End. Это позволит выбрать все строки, содержащие что-либо, включая форматы, пробелы и непечатные символы.
- Щелкните выделение правой кнопкой мыши и выберите Удалить... > Весь ряд.
Если у вас относительно небольшой набор данных, вы можете захотеть избавиться от всех пустых строк под данными, например, чтобы облегчить прокрутку. Хотя в Excel нет возможности удалить неиспользуемые строки, ничто не мешает вам сделать это следующим образом скрыть их. Вот как:
- Выберите строку под последней строкой с данными, щелкнув ее заголовок.
- Нажмите Ctrl + Shift + стрелка вниз, чтобы расширить выделение до последней строки на листе.
- Нажмите Ctrl + 9, чтобы скрыть выделенные строки. Или щелкните правой кнопкой мыши на выделении, а затем щелкните Скрыть .
На скрыть строки , нажмите Ctrl + A, чтобы выделить весь лист, а затем нажмите Ctrl + Shift + 9, чтобы все линии снова стали видимыми.
Аналогичным образом можно скрыть неиспользуемые пустые столбцы справа от данных. Подробные шаги описаны в статье Скрыть неиспользуемые строки в Excel, чтобы была видна только рабочая область.
Самый быстрый способ удаления пустых строк в Excel
Когда вы читали предыдущие примеры, не было ли у вас ощущения, что мы используем кувалду, чтобы расколоть орех? Мы в Ablebits предпочитаем не делать вещи более сложными, чем они должны быть. Поэтому мы сделали еще один шаг вперед и создали маршрут удаления пустых строк в Excel в два клика.
Добавив Ultimate Suite в свою ленту, вот как вы можете удалить все пустые строки в рабочем листе:
- На Инструменты Ablebits во вкладке Преобразование группу, нажмите Удалить заготовки > Пустые строки :
- Надстройка сообщит вам, что все пустые строки будут удалены из активного рабочего листа, и попросит подтвердить. Нажмите OK, и через мгновение все пустые строки будут удалены.
Как показано на скриншоте ниже, мы удалили только абсолютно пустые строки в которых нет ни одной ячейки с данными:
Чтобы узнать больше о потрясающих возможностях, включенных в наш Ultimate Suite for Excel, вы можете загрузить пробную версию.
Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!