Как удалить ненужные строки в excel
Как удалить строки по условию?
Предположу, что почти каждый сталкивался с ситуацией, когда необходимо удалить только определенные строки: имеется большая таблица и необходимо удалить из неё только те строки, которые содержат какое-то слово (цифру, фразу). Для выполнения подобной задачи можно воспользоваться несколькими способами.
Способ первый:
Использовать встроенное средство Excel — фильтр. Сначала его необходимо «установить» на листе:
- Выделяем таблицу с данными, включая заголовки. Если их нет — то выделяем с самой первой строки таблицы, в которой необходимо удалить данные
- устанавливаем фильтр:
- для Excel 2003 : Данные—Фильтр—Автофильтр
- для Excel 2007-2010 : вкладка Данные (Data) —Фильтр (Filter)(или вкладка Главная (Home) —Сортировка и фильтр (Sort&Filter) —Фильтр (Filter) )
Теперь выбираем условие для фильтра:
- в Excel 2003 надо выбрать Условие и в появившейся форме выбрать непосредственно условие(«равно», «содержит», «начинается с» и т.д.), а напротив значение в соответствии с условием.
- Для 2007-2010 Excel нужно выбрать Текстовые фильтры (Text Filters) и либо сразу выбрать одно из предлагаемых условий, либо нажать Настраиваемый фильтр (Custom Filter) и ввести значения для отбора в форме
После этого удалить отфильтрованные строки. В 2007 Excel могут возникнуть проблемы с удалением отфильтрованных строк, поэтому рекомендую сначала так же прочитать статью: Excel удаляет вместо отфильтрованных строк — все?! Как избежать.
Способ второй:
применить код VBA, который потребует только указания значения, которое необходимо найти в строке и номер столбца, в котором искать значение.
Sub Del_SubStr() Dim sSubStr As String ‘искомое слово или фраза(может быть указанием на ячейку) Dim lCol As Long ‘номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim lMet As Long Dim arr sSubStr = InputBox(«Укажите значение, которое необходимо найти в строке», «Запрос параметра», «») If sSubStr = «» Then lMet = 0 Else lMet = 1 lCol = Val(InputBox(«Укажите номер столбца, в котором искать указанное значение», «Запрос параметра», 1)) If lCol = 0 Then Exit Sub lLastRow = ActiveSheet.UsedRange.Row — 1 + ActiveSheet.UsedRange.Rows.Count arr = Cells(1, lCol).Resize(lLastRow).Value Application.ScreenUpdating = 0 Dim rr As Range For li = 1 To lLastRow ‘цикл с первой строки до конца If -(InStr(arr(li, 1), sSubStr) > 0) = lMet Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If Next li If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub
Если значение sSubStr не будет указано, то будут удалены строки, ячейки указанного столбца которых, пустые.
Данный код необходимо поместить в стандартный модуль. Вызвать с листа его можно нажатием клавиш Alt + F8 , после чего выбрать Del_SubStr и нажать Выполнить. Если в данном коде в строке
If -(InStr(Cells(li, 1), sSubStr) > 0) = lMet Then
вместо = lMet указать <> lMet , то удаляться будут строки, не содержащие указанное для поиска значение. Иногда тоже удобно.
Но. Данный код просматривает строки на предмет частичного совпадения указанного значения. Например, если Вы укажете текст для поиска «отчет», то будут удалены все строки, в которых встречается это слово(«квартальный отчет», «отчет за месяц» и т.д.). Это не всегда нужно. Поэтому ниже приведен код, который будет удалять только строки, указанные ячейки которых равны конкретно указанному значению:
Sub Del_SubStr() Dim sSubStr As String ‘искомое слово или фраза(может быть указанием на ячейку) Dim lCol As Long ‘номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim arr sSubStr = InputBox(«Укажите значение, которое необходимо найти в строке», «Запрос параметра», «») lCol = Val(InputBox(«Укажите номер столбца, в котором искать указанное значение», «Запрос параметра», 1)) If lCol = 0 Then Exit Sub lLastRow = ActiveSheet.UsedRange.Row — 1 + ActiveSheet.UsedRange.Rows.Count arr = Cells(1, lCol).Resize(lLastRow).Value Application.ScreenUpdating = 0 Dim rr As Range For li = 1 To lLastRow ‘цикл с первой строки до конца If CStr(arr(li, 1)) = sSubStr Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If Next li If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub
Здесь так же, как и в случае с предыдущим кодом можно заменить оператор сравнения( Cells(li, lCol) = sSubStr ) с равно на неравенство( Cells(li, lCol) <> sSubStr ) и тогда удаляться будут строки, значения ячеек которых не равно указанному.
УДАЛЕНИЕ СТРОК НА ОСНОВАНИИ СПИСКА ЗНАЧЕНИЙ(МНОЖЕСТВЕННЫЕ КРИТЕРИИ)
Иногда бывают ситуации, когда необходимо удалить строки не по одному значению, а по нескольким. Например, если строка содержит или Итог или Отчет. Ниже приведен код, при помощи которого можно удалить строки, указав в качестве критерия диапазон значений.
Значения, которые необходимо найти и удалить перечисляются на листе с именем «Лист2». Т.е. указав на «Лист2» в столбце А(начиная с первой строки) несколько значений — они все будут удалены. Если лист называется иначе(скажем «Соответствия») в коде необходимо будет «Лист2» заменить на «Соответствия». Удаление строк происходит на активном в момент запуска кода листе. Это значит, что перед запуском кода надо перейти на тот лист, строки в котором необходимо удалить.
Sub Del_Array_SubStr() Dim sSubStr As String ‘искомое слово или фраза Dim lCol As Long ‘номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim avArr, lr As Long Dim arr lCol = Val(InputBox(«Укажите номер столбца, в котором искать указанное значение», «Запрос параметра», 1)) If lCol = 0 Then Exit Sub Application.ScreenUpdating = 0 lLastRow = ActiveSheet.UsedRange.Row — 1 + ActiveSheet.UsedRange.Rows.Count ‘заносим в массив значения листа, в котором необходимо удалить строки arr = Cells(1, lCol).Resize(lLastRow).Value ‘Получаем с Лист2 значения, которые надо удалить в активном листе With Sheets(«Лист2») ‘Имя листа с диапазоном значений на удаление avArr = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)) End With ‘удаляем Dim rr As Range For lr = 1 To UBound(avArr, 1) sSubStr = avArr(lr, 1) For li = 1 To lLastRow ‘цикл с первой строки до конца If CStr(arr(li, 1)) = sSubStr Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If DoEvents Next li DoEvents Next lr If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub
Чтобы код выше удалял строки не по точному совпадению слов, а по частичному(например, в ячейке записано «Привет, как дела?», а в списке есть слово «привет» — надо удалить, т.к. есть слово «привет»), то надо строку:
Как удалить все пустые строки в Excel
В этой статье я объясню, почему удаление пустых строк в Excel при помощи выделить пустые ячейки > удалить строку – это плохая идея, и покажу Вам 2 быстрых и правильных способа, как удалить пустые строки не разрушая данные. Все эти способы работают в Excel 2013, 2010 и в более старых версиях.
Если Вы читаете эту статью, то, скорее всего, постоянно работаете в Excel с большими таблицами. Вы знаете, что пустые строки периодически появляются среди данных, ограничивая работу большинства инструментов Excel с таблицами (сортировка, удаление дубликатов, промежуточные итоги и так далее), не позволяя им правильно определять диапазон данных. И каждый раз приходится вручную определять границы, иначе итогом будет неверный результат и уйма потраченного времени на исправление ошибок.
Существует множество причин, почему появляются пустые строки. К примеру, Вы получили рабочую книгу Excel от другого человека или в результате экспорта из корпоративной базы данных, или ненужные данные в строках были удалены вручную. В любом случае, если Ваша цель – удалить все эти пустые строки и получить чистую и аккуратную таблицу, то следуйте простым шагам, приведённым ниже:
Никогда не удаляйте пустые строки, при помощи выбора пустых ячеек
Повсюду в интернете Вы можете встретить простой совет, якобы позволяющий удалить пустые строки:
- Выделите данные от первой до последней ячейки.
- Нажмите F5, чтобы открыть диалоговое окно Go to (Переход).
- В диалоговом окне нажмите кнопку Special (Выделить).
- В диалоговом окне Go to special (Выделить группу ячеек) отметьте пункт Blanks (Пустые ячейки) и нажмите ОК.
- Кликните правой кнопкой мыши по любой из выделенных ячеек и нажмите Delete (Удалить).
- В диалоговом окне Delete (Удаление ячеек) выберите Entire row (Строку) и нажмите ОК.
Это очень плохой способ, делайте так только с очень простыми таблицами с парой дюжин строк, которые помещаются на одном экране, а ещё лучше – не делайте так совсем! Главная причина – если строка с важными данными содержит хотя бы одну пустую ячейку, то удалена будет вся строка.
Например, у нас есть таблица клиентов, всего 6 строк. Мы хотим удалить строки 3 и 5, потому что они пустые.
Сделайте так, как предложено выше, и получите такой результат:
Строка 4 (Roger) тоже исчезла, потому что ячейка D4 в столбце Traffic source оказалась пуста
Если Ваша таблица не велика, то Вы заметите потерю данных, но в реальных таблицах с тысячами строк Вы можете неосознанно удалить дюжины нужных строк. Если повезёт, Вы обнаружите потерю в течение нескольких часов, восстановите рабочую книгу из резервной копии и продолжите работу. А что если не повезёт, и у Вас не будет резервной копии?
Далее в этой статье я покажу Вам 2 быстрых и надёжных способа удалить пустые строки из листов Excel.
Удаление пустых строк при помощи ключевого столбца
Этот метод работает, если в Вашей таблице есть столбец, который помогает определить, пуст рассматриваемый столбец или нет (ключевой столбец). К примеру, это может быть ID покупателя или номер заказа, или что-то подобное.
Нам важно сохранить порядок строк, поэтому мы не сможем просто отсортировать таблицу по этому столбцу, чтобы переместить все пустые строки вниз.
- Выделите всю таблицу, от первой до последней строки (нажмите Ctrl+Home, а затем Ctrl+Shift+End).
- Добавьте автофильтр к таблице. Для этого на вкладке Data (Данные) нажмите кнопку Filter (Фильтр).
- Примените фильтр к столбцу Cust#. Для этого нажмите кнопку со стрелкой в заголовке столбца, снимите галочку в опции Select All (Выделить все), пролистайте вниз к концу списка (на практике этот список может быть весьма длинным) и поставьте галочку в строке Blanks (Пустые) в самом низу списка. Нажмите ОК.
- Выделите все отфильтрованные строки: нажмите Ctrl+Home, затем стрелку вниз, чтобы перейти к первой строке с данными, а затем нажмите Ctrl+Shift+End.
- Кликните правой кнопкой мыши по любой выделенной ячейке и из контекстного меню выберите Delete row (Удалить строку) или просто нажмите Ctrl+-(знак минус).
- В появившемся окне с вопросом Delete entire sheet row? (Удалить всю строку листа?) нажмите ОК.
- Очистите применённый фильтр: на вкладке Data (Данные) нажмите кнопку Clear (Очистить).
- Отлично! Все пустые строки полностью удалены, а строка 3 (Roger) по-прежнему на месте (сравните с результатом предыдущей попытки).
Удаление пустых строк в таблице без ключевого столбца
Воспользуйтесь этим способом, если в Вашей таблице присутствуют многочисленные пустые ячейки, разбросанные по разным столбцам, а Вам нужно удалить только те строки, которые не имеют ни одной ячейки с данными.
В этом случае у нас нет ключевого столбца, который бы помог определить пуста строка или нет. Поэтому, мы добавляем вспомогательный столбец к таблице:
- В конце таблицы добавьте столбец с именем Blanks и вставьте следующую формулу в первую ячейку столбца:
Эта формула, как и обещает её имя, подсчитывает пустые ячейки в заданном диапазоне. A2 и C2 – это соответственно первая и последняя ячейки текущей строки.
Как удалить строки по условию?
Предположу, что почти каждый сталкивался с ситуацией, когда необходимо удалить только определенные строки: имеется большая таблица и необходимо удалить из неё только те строки, которые содержат какое-то слово (цифру, фразу). Для выполнения подобной задачи можно воспользоваться несколькими способами.
Способ первый:
Использовать встроенное средство Excel — фильтр. Сначала его необходимо «установить» на листе:
- Выделяем таблицу с данными, включая заголовки. Если их нет — то выделяем с самой первой строки таблицы, в которой необходимо удалить данные
- устанавливаем фильтр:
- для Excel 2003 : Данные—Фильтр—Автофильтр
- для Excel 2007-2010 : вкладка Данные (Data) —Фильтр (Filter)(или вкладка Главная (Home) —Сортировка и фильтр (Sort&Filter) —Фильтр (Filter) )
Теперь выбираем условие для фильтра:
- в Excel 2003 надо выбрать Условие и в появившейся форме выбрать непосредственно условие(«равно», «содержит», «начинается с» и т.д.), а напротив значение в соответствии с условием.
- Для 2007-2010 Excel нужно выбрать Текстовые фильтры (Text Filters) и либо сразу выбрать одно из предлагаемых условий, либо нажать Настраиваемый фильтр (Custom Filter) и ввести значения для отбора в форме
После этого удалить отфильтрованные строки. В 2007 Excel могут возникнуть проблемы с удалением отфильтрованных строк, поэтому рекомендую сначала так же прочитать статью: Excel удаляет вместо отфильтрованных строк — все?! Как избежать.
Способ второй:
применить код VBA, который потребует только указания значения, которое необходимо найти в строке и номер столбца, в котором искать значение.
Sub Del_SubStr() Dim sSubStr As String ‘искомое слово или фраза(может быть указанием на ячейку) Dim lCol As Long ‘номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim lMet As Long Dim arr sSubStr = InputBox(«Укажите значение, которое необходимо найти в строке», «Запрос параметра», «») If sSubStr = «» Then lMet = 0 Else lMet = 1 lCol = Val(InputBox(«Укажите номер столбца, в котором искать указанное значение», «Запрос параметра», 1)) If lCol = 0 Then Exit Sub lLastRow = ActiveSheet.UsedRange.Row — 1 + ActiveSheet.UsedRange.Rows.Count arr = Cells(1, lCol).Resize(lLastRow).Value Application.ScreenUpdating = 0 Dim rr As Range For li = 1 To lLastRow ‘цикл с первой строки до конца If -(InStr(arr(li, 1), sSubStr) > 0) = lMet Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If Next li If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub
Если значение sSubStr не будет указано, то будут удалены строки, ячейки указанного столбца которых, пустые.
Данный код необходимо поместить в стандартный модуль. Вызвать с листа его можно нажатием клавиш Alt + F8 , после чего выбрать Del_SubStr и нажать Выполнить. Если в данном коде в строке
If -(InStr(Cells(li, 1), sSubStr) > 0) = lMet Then
вместо = lMet указать <> lMet , то удаляться будут строки, не содержащие указанное для поиска значение. Иногда тоже удобно.
Но. Данный код просматривает строки на предмет частичного совпадения указанного значения. Например, если Вы укажете текст для поиска «отчет», то будут удалены все строки, в которых встречается это слово(«квартальный отчет», «отчет за месяц» и т.д.). Это не всегда нужно. Поэтому ниже приведен код, который будет удалять только строки, указанные ячейки которых равны конкретно указанному значению:
Sub Del_SubStr() Dim sSubStr As String ‘искомое слово или фраза(может быть указанием на ячейку) Dim lCol As Long ‘номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim arr sSubStr = InputBox(«Укажите значение, которое необходимо найти в строке», «Запрос параметра», «») lCol = Val(InputBox(«Укажите номер столбца, в котором искать указанное значение», «Запрос параметра», 1)) If lCol = 0 Then Exit Sub lLastRow = ActiveSheet.UsedRange.Row — 1 + ActiveSheet.UsedRange.Rows.Count arr = Cells(1, lCol).Resize(lLastRow).Value Application.ScreenUpdating = 0 Dim rr As Range For li = 1 To lLastRow ‘цикл с первой строки до конца If CStr(arr(li, 1)) = sSubStr Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If Next li If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub
Здесь так же, как и в случае с предыдущим кодом можно заменить оператор сравнения( Cells(li, lCol) = sSubStr ) с равно на неравенство( Cells(li, lCol) <> sSubStr ) и тогда удаляться будут строки, значения ячеек которых не равно указанному.
УДАЛЕНИЕ СТРОК НА ОСНОВАНИИ СПИСКА ЗНАЧЕНИЙ(МНОЖЕСТВЕННЫЕ КРИТЕРИИ)
Иногда бывают ситуации, когда необходимо удалить строки не по одному значению, а по нескольким. Например, если строка содержит или Итог или Отчет. Ниже приведен код, при помощи которого можно удалить строки, указав в качестве критерия диапазон значений.
Значения, которые необходимо найти и удалить перечисляются на листе с именем «Лист2». Т.е. указав на «Лист2» в столбце А(начиная с первой строки) несколько значений — они все будут удалены. Если лист называется иначе(скажем «Соответствия») в коде необходимо будет «Лист2» заменить на «Соответствия». Удаление строк происходит на активном в момент запуска кода листе. Это значит, что перед запуском кода надо перейти на тот лист, строки в котором необходимо удалить.
Sub Del_Array_SubStr() Dim sSubStr As String ‘искомое слово или фраза Dim lCol As Long ‘номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim avArr, lr As Long Dim arr lCol = Val(InputBox(«Укажите номер столбца, в котором искать указанное значение», «Запрос параметра», 1)) If lCol = 0 Then Exit Sub Application.ScreenUpdating = 0 lLastRow = ActiveSheet.UsedRange.Row — 1 + ActiveSheet.UsedRange.Rows.Count ‘заносим в массив значения листа, в котором необходимо удалить строки arr = Cells(1, lCol).Resize(lLastRow).Value ‘Получаем с Лист2 значения, которые надо удалить в активном листе With Sheets(«Лист2») ‘Имя листа с диапазоном значений на удаление avArr = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)) End With ‘удаляем Dim rr As Range For lr = 1 To UBound(avArr, 1) sSubStr = avArr(lr, 1) For li = 1 To lLastRow ‘цикл с первой строки до конца If CStr(arr(li, 1)) = sSubStr Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If DoEvents Next li DoEvents Next lr If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub
Чтобы код выше удалял строки не по точному совпадению слов, а по частичному(например, в ячейке записано «Привет, как дела?», а в списке есть слово «привет» — надо удалить, т.к. есть слово «привет»), то надо строку:
Удаляем в EXCEL пустые строки в таблице
Часто, особенно при импорте данных в EXCEL , на листе могут формироваться таблицы с ПОЛНОСТЬЮ пустыми строками. Научимся быстро удалять эти ненужные строки, которые в дальнейшем могут затруднить работу с таблицей.
Представим, что у нас есть таблица с какими-то значениями, в которой есть полностью пустые строки.
Приведем методы, которые используются при удалении пустых строк. Зачем нужно удалять пустые строки можно прочитать в статье Советы по построению таблиц .
Сортировка
Самым простым способом удаления пустых строк является сортировка таблицы: выделяем диапазон, в котором содержится таблица ( А2:C17 ), затем вызываем команду меню Данные/ Сортировка и фильтр/ Сортировка от минимального к максимальному или просто /Сортировка .
При сортировке таблиц с несколькими столбцами нужно быть осторожным, чтобы ячейки не перескочили из своих строк в другие. Поэтому, для сортировки нужно выделять всю таблицу. После сортировки по возрастанию пустые строки окажутся внизу таблицы.
Если важен порядок строк до сортировки, то перед сортировкой нужно создать столбец с порядковой нумерацией строк, а после удаления пустых строк, заново отсортировать таблицу уже по этому столбцу.
Фильтр
Для нахождения пустых ячеек можно также воспользоваться Фильтром ( Главная/ Редактирование/ Сортировка и фильтр/ Фильтр ). Выбираем подходящий столбец, отображаем только пустые ячейки, выделяем строки не содержащие данных и удаляем их.
Выделение группы ячеек
Другим способом выделения пустых ячеек является использование инструмента Выделение группы ячеек .
- выделяем диапазон А2:C17 ;
- выбираем пункт меню Главная/ Редактирование/ Найти и выделить/ Выделение группы ячеек… ,
- выберите пункт пустые ячейки в разделе Выделить ;
- далее нажимаем маленькую стрелочку в меню Главная/ Ячейки/ Удалить ;
- выберем Удалить ячейки (удалить ячейки, со сдвигом вверх) .
Здесь нужно быть аккуратным: если таблица сдержит помимо пустых строк, строки с заполненными и пустыми ячейками, то часть ячеек перескочит со своих строк на другие, что испортит таблицу. Если таблица в формате EXCEL 2007 , то EXCEL не даст испортить таким образом таблицу: появится сообщение «Данная команда неприменима для перекрывающихся диапазонов».
СОВЕТ: Стоит помнить, что ячейки, содержащие формулы (даже если это ссылки на пустые ячейки), не считаются пустыми по определению.
5 вариантов, как удалить пустые строки в Excel
Доброго времени суток друзья!
Эту статью я написал с целью описать 5 простых вариантов, как возможно удалить пустые строки в Excel. Частенько после импорта данных или простого копирования с другого источника мы получаем пустые строки и столбцы, что в дальнейшем может негативно сказаться и осложнить работу с информацией.
Разрывы, которые возникают в таблице благодаря возникшим пустотам, могут помешать вам эффективно ее использовать. Возникают такие проблемы:
- ошибки при автоматическом построении разнообразных формул, графиков, диаграмм;
- пустые строки, выполняют роль разделителя вычисляемой области и т.п.;
Избежать таких ошибок очень легко и очень просто, нужно всегда следить постоянно за качеством вашей информации и при выявлении ненужных пробелов в ваших данных, удалять их. Найти и удалить незаполненые строки, столбцы и ячейки можно 5 способами:
Сортировка
Это самый простой способ убрать с вашей рабочей области или вычисляемого диапазона чистые строки. Вам нужно выделить диапазон, выбрать на вкладке «Данные» кнопку «Сортировка» и в предоставленном диалоговом окне выбираем вариант сортировки. Программа всё отсортирует по полочкам, и вы можете удалить пустые строки. Будьте внимательны! При использовании сортировки в таблице, которая имеет в своем составе несколько столбцов, вы можете нарушить целостность информации, ваши данные могут сместиться на другие ряды. Для избегания этой проблемы при выборе сортировки, нужно выделить всю таблицу и применить сортировку для всего выделенного объема.
Если очень важен порядок следования строк в таблице, вам стоит для начала создать столбик с порядковой нумерацией рядов, а после сортировки и удаления пустых срок в таблице Excel, снова выстроить данные по этому столбику.
Фильтрация
Этот способ также является простым и доступным абсолютно любому пользователю. Для применения фильтра на таблицу вам необходимо на вкладке «Главная» в разделе «Редактирование» нажимать кнопку «Сортировка и фильтр» и в открывшемся пункте меню выбираете «Фильтр». После включения фильтра, вам нужно выбрать столбец и в выпадающем меню указать отображение пустых ячеек. Дольше вы выделяете полученные пустые строки и просто-напросто удаляете их.
Выделение группы ячеек
Я бы и этот способ причислил к достаточно простым и лёгким. Для применения этого варианта вам нужен инструмент «Выделение группы ячеек». Удалить незаполненые строки возможно в несколько этапов:
- выделение нужного диапазона;
- выбираем вкладку «Главная», в блоке «Редактирование», кликаем «Найти и выделить» и в выпадающем меню выбираете «Выделение группы ячеек»;
- в диалоговом окне, в разделе «Выделить» отмечаем пункт «пустые ячейки»;
- переходим во вкладку «Главная» и нажимаем кнопку «Ячейки» и выбираем пункт «Удалить»;
- в диалоговом окне выбираете пункт «удалить ячейки со сдвигом вверх» и все незаполненые строки будут удалены.
Формула массива
Этот способ уже на искушенного пользователя. Хотя ничего уж слишком сложного и нет, тем не менее, этот способ я увидел у Николая Павлова на его сайте и решил добавить его для полноты информации о возможностях чистки от пустых строк с применением формулы массива.
Итак, в чём же состоит этот способ по удалению пустых строк в Excel и как его применять:
- для большей простоты дадим имена нашим диапазонам, для этого на вкладке «Формулы» нажимаете «Диспетчер имен» и присваиваете для двух диапазонов имена, например для изначальных данных с пустыми ячейками – «Пустые», а для обработанных – «БезПустых». Обязательное условие в том, что диапазоны должны иметь одинаковый результат, но вот размещение этих диапазонов могут и отличатся, это не критично;
- следующим шагом это введение в первую ячейку второго диапазона формулу:
=ЕСЛИ( СТРОКА() — СТРОКА (БезПустых) +1> ЧСТРОК( Пустые) — СЧИТАТЬПУСТОТЫ (Пустые);»«; ДВССЫЛ ( АДРЕС (НАИМЕНЬШИЙ ((ЕСЛИ (Пустые <>»»; СТРОКА (Пустые); СТРОКА()+ ЧСТРОК( Пустые))); СТРОКА() — СТРОКА (БезПустых)+1); СТОЛБЕЦ( Пустые);4))). Да я сам знаю, что формула страшная, сам, когда ее увидел, обалдел, тем не менее, она рабочая и исправно выполняет возложенные на нее обязанности;
- после прописания формулы, вам нужно окончить введение формулы «гарячей» комбинацией клавишCtrl+Shift+Enter, это необходимо для того, что бы формула была введена как формула массива. Теперь используя возможность в Excel как авто заполнение (копирование формулы, протягивая за крестик в углу) вы получили исходный диапазон, но уже без пустых ячеек.
Макрос
Этот вариант также не прост, но, используя предоставленные коды, и инструкции к их применению ничего сложного и неосуществимого вы не увидите. Макрос стоит использовать, если вы уверены что такую процедуру по удалению пустых строк в Excel, а также, столбцов или ячеек будет очень частым и для выполнения этих работ стоит прописать скрипт.
Перейдите во вкладку «Сервис», выберите раздел «Макрос» и нажмите кнопку «Редактор Visual Basic» или нажав ALT+F11 и в появившемся диалоговом окне редактора нажимаем «Insert» — «Module». В открывшимся, пустом модуле ставим код:
- для удаления всех незаполненых рядов в таблице: