Доброго времени суток друзья!
Эту статью я написал с целью описать 5 простых вариантов, как возможно удалить пустые строки в Excel. Частенько после импорта данных или простого копирования с другого источника мы получаем пустые строки и столбцы, что в дальнейшем может негативно сказаться и осложнить работу с информацией.
Разрывы, которые возникают в таблице благодаря возникшим пустотам, могут помешать вам эффективно ее использовать. Возникают такие проблемы:
- ошибки при автоматическом построении разнообразных формул, графиков, диаграмм;
- пустые строки, выполняют роль разделителя вычисляемой области и т.п.;
Избежать таких ошибок очень легко и очень просто, нужно всегда следить постоянно за качеством вашей информации и при выявлении ненужных пробелов в ваших данных, удалять их. Найти и удалить незаполненые строки, столбцы и ячейки можно 5 способами:
- С помощью сортировки информации;
- С помощью наложения фильтра;
- С помощью меню выделения группы ячеек;
- С помощью формулы массива;
- С помощью макроса (VBA).
Сортировка
Это самый простой способ убрать с вашей рабочей области или вычисляемого диапазона чистые строки. Вам нужно выделить диапазон, выбрать на вкладке «Данные» кнопку «Сортировка» и в предоставленном диалоговом окне выбираем вариант сортировки. Программа всё отсортирует по полочкам, и вы можете удалить пустые строки. Будьте внимательны! При использовании сортировки в таблице, которая имеет в своем составе несколько столбцов, вы можете нарушить целостность информации, ваши данные могут сместиться на другие ряды. Для избегания этой проблемы при выборе сортировки, нужно выделить всю таблицу и применить сортировку для всего выделенного объема.
Если очень важен порядок следования строк в таблице, вам стоит для начала создать столбик с порядковой нумерацией рядов, а после сортировки и удаления пустых срок в таблице Excel, снова выстроить данные по этому столбику.
Фильтрация
Этот способ также является простым и доступным абсолютно любому пользователю. Для применения фильтра на таблицу вам необходимо на вкладке «Главная» в разделе «Редактирование» нажимать кнопку «Сортировка и фильтр» и в открывшемся пункте меню выбираете «Фильтр». После включения фильтра, вам нужно выбрать столбец и в выпадающем меню указать отображение пустых ячеек. Дольше вы выделяете полученные пустые строки и просто-напросто удаляете их.
Выделение группы ячеек
Я бы и этот способ причислил к достаточно простым и лёгким. Для применения этого варианта вам нужен инструмент «Выделение группы ячеек». Удалить незаполненые строки возможно в несколько этапов:
- выделение нужного диапазона;
- выбираем вкладку «Главная», в блоке «Редактирование», кликаем «Найти и выделить» и в выпадающем меню выбираете «Выделение группы ячеек»;
- в диалоговом окне, в разделе «Выделить» отмечаем пункт «пустые ячейки»;
- переходим во вкладку «Главная» и нажимаем кнопку «Ячейки» и выбираем пункт «Удалить»;
- в диалоговом окне выбираете пункт «удалить ячейки со сдвигом вверх» и все незаполненые строки будут удалены.
Формула массива
Этот способ уже на искушенного пользователя. Хотя ничего уж слишком сложного и нет, тем не менее, этот способ я увидел у Николая Павлова на его сайте и решил добавить его для полноты информации о возможностях чистки от пустых строк с применением формулы массива.
Итак, в чём же состоит этот способ по удалению пустых строк в Excel и как его применять:
- для большей простоты дадим имена нашим диапазонам, для этого на вкладке «Формулы» нажимаете «Диспетчер имен» и присваиваете для двух диапазонов имена, например для изначальных данных с пустыми ячейками – «Пустые», а для обработанных – «БезПустых». Обязательное условие в том, что диапазоны должны иметь одинаковый результат, но вот размещение этих диапазонов могут и отличатся, это не критично;
- следующим шагом это введение в первую ячейку второго диапазона формулу:
=ЕСЛИ( СТРОКА()— СТРОКА (БезПустых) +1> ЧСТРОК( Пустые)— СЧИТАТЬПУСТОТЫ (Пустые);»«; ДВССЫЛ ( АДРЕС (НАИМЕНЬШИЙ ((ЕСЛИ (Пустые <>»»; СТРОКА (Пустые); СТРОКА()+ ЧСТРОК( Пустые))); СТРОКА()— СТРОКА (БезПустых)+1); СТОЛБЕЦ( Пустые);4))). Да я сам знаю, что формула страшная, сам, когда ее увидел, обалдел, тем не менее, она рабочая и исправно выполняет возложенные на нее обязанности;
- после прописания формулы, вам нужно окончить введение формулы «гарячей» комбинацией клавиш Ctrl+Shift+Enter, это необходимо для того, что бы формула была введена как формула массива. Теперь используя возможность в Excel как авто заполнение (копирование формулы, протягивая за крестик в углу) вы получили исходный диапазон, но уже без пустых ячеек.
Макрос
Этот вариант также не прост, но, используя предоставленные коды, и инструкции к их применению ничего сложного и неосуществимого вы не увидите. Макрос стоит использовать, если вы уверены что такую процедуру по удалению пустых строк в Excel, а также, столбцов или ячеек будет очень частым и для выполнения этих работ стоит прописать скрипт.
Перейдите во вкладку «Сервис», выберите раздел «Макрос» и нажмите кнопку «Редактор Visual Basic» или нажав ALT+F11 и в появившемся диалоговом окне редактора нажимаем «Insert»— «Module». В открывшимся, пустом модуле ставим код:
- для удаления всех незаполненых рядов в таблице:
1 2 3 4 5 6 7 |
Sub DeleteEmptyRows() LastRow=ActiveSheet.UsedRange.Row—1+ActiveSheet.UsedRange.Rows.Count Application.ScreenUpdating=False Forr=LastRow To1Step—1 IfApplication.CountA(Rows(r))=0ThenRows(r).Delete Next EndSub |
- для удаления незаполненых клеточек из диапазонов:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
FunctionNoBlanks(DataRange AsRange)AsVariant() DimNAsLong Dim N2 AsLong Dim Rng AsRange Dim MaxCells AsLong Dim Result()AsVariant DimRAsLong DimCAsLong MaxCells=Application.WorksheetFunction.Max(_ Application.Caller.Cells.Count,DataRange.Cells.Count) ReDim Result(1ToMaxCells,1To1) ForEachRng InDataRange.Cells IfRng.Value<>vbNullString Then N=N+1 Result(N,1)=Rng.Value EndIf Next Rng ForN2=N+1ToMaxCells Result(N2,1)=vbNullString Next N2 IfApplication.Caller.Rows.Count=1Then NoBlanks=Application.Transpose(Result) Else NoBlanks=Result EndIf EndFunction |
Вставив код вы можете закрыть редактор и вернутся в Excel. Теперь выбрав «Сервис»— «Макрос»— «Макросы» или просто нажав ALT+F8, в открывшемся диалоговом окне будет перечень всех доступных макросов для использования, включая и тот, что вы создали. Ставите на него курсор, кликаете на кнопку «Выполнить» и задача прописана в макросе будет исполнена. А на этом у меня всё! Я очень надеюсь, что способы удалить пустые строки в Excel, ячейки и столбцы вам понятны. Буду очень благодарен за оставленные комментарии, так как это показатель читаемости и вдохновляет на написание новых статей! Делитесь с друзьями прочитанным и ставьте лайк!
Не забудьте поблагодарить автора!
Правильная формула будет, исправьте пжлст. Если массив начинался с пустой строки, то первый ставился 0 в отсортированном массиве. Да и с ковычками и тире напутали…
=ЕСЛИ(СТРОКА() -СТРОКА(БезПустых)+1>ЧСТРОК(Пустые) -СЧИТАТЬПУСТОТЫ(Пустые);»«;ДВССЫЛ(АДРЕС(НАИМЕНЬШИЙ((ЕСЛИ(Пустые<>»»;СТРОКА(Пустые);СТРОКА()+ЧСТРОК(Пустые)+1));СТРОКА() -СТРОКА(БезПустых)+1);СТОЛБЕЦ(Пустые);4)))
Спасибо ))