Удаление пустых строк (Microsoft Excel)
У Криса есть рабочий лист с большим количеством пустых строк в данных. Он ищет простой макрос, который удалит все полностью пустые строки.
Есть несколько способов выполнить эту задачу. В следующих разделах рассматриваются все различные идеи, как избавиться от этих проблемных строк.
Выбор пробелов
Один из быстрых способов проверить, где находятся пробелы, — это просто выбрать пробелы в ваших данных. Выполните следующие действия:
-
Выберите все данные, с которыми вы работаете.
-
Нажмите F5. Excel отображает диалоговое окно «Перейти».
-
Щелкните Special. Excel отображает диалоговое окно «Перейти к специальному». (См. Рис. 1.)
-
Выберите радиокнопку Пробелы.
-
Щелкните ОК. Excel выбирает эти ячейки в вашем начальном диапазоне (шаг 1)
это пустые.
-
Откройте вкладку «Главная» на ленте.
-
Щелкните инструмент Удалить. Excel удаляет строки.
При таком подходе есть серьезная оговорка: он удалит все строки, в которых любая ячейка пуста. Другими словами, этот подход лучше всего, если в ваших данных есть только те строки, которые вы действительно хотите удалить.
Если среди данных, которые вы действительно хотите сохранить, есть пустые ячейки, не используйте этот метод, поскольку он также удалит эти строки.
Сортировка
Если ваши данные не состоят из очень большого количества строк (скажем, всего десять столбцов или меньше), вы можете просто отсортировать данные. Если вы включите каждый столбец в свою спецификацию сортировки, у вас останутся пустые строки рядом друг с другом, и вы легко сможете их удалить.
Если в ваших данных много столбцов, и вы не против добавить вспомогательный столбец, вы можете избавиться от пустых строк в одном из вариантов метода сортировки. Допустим, ваши данные находятся в столбцах от A до P. В столбце Q введите одну из следующих формул:
=COUNTA(A1:P1) =IF(COUNTBLANK(A1:P1)=16,"DELETE","")
Неважно, какой вы используете; они оба предоставят вам информацию, с которой вы можете работать. В случае формулы COUNTA вам просто нужно отсортировать на основе столбца Q и удалить все, что имеет 0 в этом столбце.
В случае формулы СЧИТАТЬПУСТОТЫ вы захотите изменить приравненное значение (16) на количество столбцов, которое учитывает функция СЧИТАТЬПУСТОТЫ. (В данном случае 16 — это количество столбцов в диапазоне A: P включительно.) После того, как формула будет на месте, вы можете отсортировать по столбцу Q, а затем просто удалить все строки, в которых есть слово «DELETE». .
Другой вариант подхода к сортировке — просто использовать возможности фильтрации Excel для фильтрации вашего списка, чтобы он содержал только пробелы в одном из столбцов данных. (Например, вы можете отфильтровать пробелы в столбце A.) Затем вы можете отсортировать оставшиеся столбцы, чтобы у вас были целые пустые строки в одном месте, а затем удалить эти строки.
Macros
Если вам нужно удалять пустые строки довольно часто, вам стоит серьезно подумать об использовании макроса для выполнения тяжелой работы. Ваш макрос можно легко добавить на ленту или назначить сочетанию клавиш, чтобы его можно было очень легко вызвать.
Ранее в этом совете я упоминал, что при желании вы можете использовать диалоговое окно «Перейти к специальному», чтобы выбрать пустые ячейки в диапазоне ваших данных, а затем удалить строки, в которых находятся эти пустые ячейки. Вы можете сделать то же самое в очень простом макросе:
Sub DeleteBlanks() Dim R As Range Set R = Range("A1:" & ActiveCell.SpecialCells(xlLastCell).Address) R.SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub
Однако помните, что этот макрос удалит все строки, в которых есть пробелы, даже если вы хотите сохранить другие данные, которые могут быть в этой строке.
Лучшим подходом было бы провести более тщательную проверку каждой строки на листе:
Sub DeleteBlankRows() Dim lRows As Long Dim J As Long lRows = ActiveCell.SpecialCells(xlLastCell).Row Application.ScreenUpdating = False For J = lRows To 1 Step -1 If WorksheetFunction.CountA(Rows(J)) = 0 Then Rows(J).Delete Next J Application.ScreenUpdating = True End Sub
Обратите внимание, что макрос определяет последнюю ячейку, используемую в книге, и устанавливает значение lRows, равное строке, в которой находится эта ячейка. A For … Далее цикл проходит по каждой строке (от последней к первой)
и использует функцию СЧЁТ, чтобы определить, есть ли что-нибудь в этой строке. Если нет, строка удаляется.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (254) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365.