Як видалити порожні рядки в Excel за допомогою VBA, формул і Power Query

  • Поділитися Цим
Michael Brown

Цей підручник навчить вас декільком простим трюкам, щоб безпечно видалити кілька порожніх рядків в 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( _ "Вибрати діапазон:" , "Видалити порожні рядки" , _ 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

    Після запуску макрос показує наступне вікно введення, ви вибираєте цільовий діапазон і натискаєте ОК:

    За мить всі порожні рядки у вибраному діапазоні будуть усунуті, а ті, що залишилися, змістяться вгору:

    Макрос 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 у власну книгу, або запустити макрос з нашого прикладу книги.

    Додавання макросу в робочу книгу

    Щоб вставити макрос у робочу книгу, виконайте такі дії:

    1. Відкрийте аркуш, на якому потрібно видалити порожні рядки.
    2. Натисніть Alt + F11, щоб відкрити редактор Visual Basic.
    3. На лівій панелі натисніть правою кнопкою миші ThisWorkbook , а потім натисніть Вставка > Модуль .
    4. Вставте код у вікні Код.
    5. Натисніть F5, щоб запустити макрос.

    Детальну покрокову інструкцію можна знайти в розділі Як вставити і використовувати VBA в Excel.

    Запуск макросу з нашого прикладу книги

    Завантажте наш зразок робочої книги з макросами для видалення порожніх рядків і запустіть звідти один з наступних макросів:

    DeleteBlankRows - видаляє порожні рядки у поточному виділеному діапазоні.

    RemoveBlankLines - видаляє порожні рядки і зсувається вгору в діапазоні, який ви виберете після запуску макросу.

    DeleteAllEmptyRows - видаляє всі порожні рядки на активному аркуші.

    DeleteRowIfCellBlank - видаляє рядок, якщо комірка в певному стовпчику порожня.

    Щоб запустити макрос в Excel, виконайте наступне:

    1. Відкрийте завантажену книгу та увімкніть макроси, якщо з'явиться відповідний запит.
    2. Відкрийте власну робочу книгу та перейдіть на аркуш, що вас цікавить.
    3. На робочому аркуші натисніть комбінацію клавіш Alt + F8, виберіть макрос і клацніть Біжи .

    Формула для видалення порожніх рядків в Excel

    Якщо ви хочете побачити, що саме ви видаляєте, скористайтеся наступною формулою для визначення порожніх рядків:

    =IF(COUNTA(A2:D2)=0, "Пусто", "Не пусто")

    Де A2 - перша, а D2 - остання використана комірка першого рядка даних.

    Введіть цю формулу в E2 або будь-який інший порожній стовпчик у рядку 2 і перетягніть маркер заповнення, щоб скопіювати формулу вниз.

    В результаті у Вас буде "Пусто" в порожніх рядках і "Не пусто" в рядках, які містять хоча б одну комірку з даними:

    Логіка формули очевидна: ви підраховуєте непорожні клітинки за допомогою функції COUNTA і використовуєте оператор IF, щоб повернути "Blank" при нульовому підрахунку, "Not Blank" в іншому випадку.

    Насправді можна чудово обійтися і без ІФ:

    =COUNTA(A2:D2)=0

    У цьому випадку формула поверне значення TRUE для порожніх рядків і значення FALSE для не порожніх рядків.

    Після введення формули виконайте такі дії, щоб видалити порожні рядки:

    1. Виділіть будь-яку комірку в рядку заголовка і натисніть Сортування та фільтрація > Фільтр на Головна сторінка у вкладці Формати Це додасть стрілки з випадаючим списком фільтрації до всіх комірок заголовка.
    2. Натисніть стрілку в заголовку стовпця формул, зніміть прапорець (Виділити все), виберіть Порожній і натисніть ГАРАЗД. :
    3. Виділіть всі відфільтровані рядки. Для цього клацніть по першій комірці першого відфільтрованого рядка і натисніть Ctrl + Shift + End, щоб розширити виділення до останньої комірки останнього відфільтрованого рядка.
    4. Клацніть правою кнопкою миші по виділенню, виберіть Видалити рядок з контекстного меню, а потім підтвердіть, що ви дійсно хочете видалити цілі рядки:
    5. Зніміть фільтр, натиснувши Ctrl + Shift + L . Або натисніть Головна сторінка вкладка> Сортування та фільтрація > Фільтр .
    6. Видаліть стовпчик з формулою, оскільки він Вам більше не потрібен.

    І все! В результаті маємо чисту таблицю без порожніх рядків, але зі збереженням всієї інформації:

    Порада. Замість видалення порожніх рядків можна копіювати непорожні рядки Для цього відфільтруйте рядки "Не пусті", виділіть їх і натисніть Ctrl + C для копіювання. Потім перейдіть на інший аркуш, виділіть ліву верхню комірку діапазону призначення і натисніть Ctrl + V для вставки.

    Як видалити порожні рядки в Excel за допомогою Power Query

    В Excel 2016 і Excel 2019 є ще один спосіб видалення порожніх рядків - за допомогою функції Надбудований запит. В Excel 2010 і Excel 2013 її можна завантажити як надбудову.

    Цей метод працює з наступним застереженням: Power Query перетворює вихідні дані в таблицю Excel і змінює форматування, наприклад, колір заливки, межі і деякі формати чисел. Якщо для вас важливе форматування вихідних даних, то вам краще вибрати інший спосіб видалення порожніх рядків в Excel.

    1. Виберіть діапазон, в якому потрібно видалити порожні рядки.
    2. Перейдіть на сторінку Дані вкладка> Отримуй та трансформуй згрупувати та натиснути З таблиці/діапазону Це призведе до завантаження таблиці в редактор Power Query Editor.
    3. Про це йдеться на Головна сторінка на вкладці редактора Power Query, натисніть Видалити рядки > Видалити порожні рядки .
    4. Натисніть на кнопку Закрити & Завантажити Це призведе до завантаження результуючої таблиці на новий аркуш і закриття редактора запитів.

    В результаті цих маніпуляцій я отримав наступну таблицю без порожніх рядків, але з парою неприємних змін - втрачено формат валют і дати відображаються в форматі за замовчуванням замість користувацького:

    Як видалити рядки, якщо комірка в певному стовпці порожня

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

    Як приклад, видалимо всі рядки, де клітинка в стовпчику А порожня:

    1. Вибираємо ключовий стовпець, в нашому випадку стовпець А.
    2. Про це йдеться на Головна сторінка вкладка, натисніть Знайти та вибрати > Перейти до спеціальних пропозицій Або натисніть F5 і клацніть по кнопці Особливий... кнопку.
    3. В рамках проекту Перейти до спеціальних пропозицій діалогове вікно, виберіть Заготовки і натисніть ГАРАЗД. Це виділить порожні клітинки у використовуваному діапазоні в стовпчику A.
    4. Клацніть правою кнопкою миші по будь-якій виділеній комірці і виберіть Видалити... з контекстного меню.
    5. В рамках проекту Видалити виберіть у діалоговому вікні Весь ряд і натисніть OK.

    Готово, рядків, які не мають значення в колонці А, більше немає:

    Такого ж результату можна досягти шляхом фільтрації пропусків у колонці ключів.

    Як прибрати зайві рядки під даними

    Іноді рядки, які виглядають повністю порожніми, насправді можуть містити деякі формати або недруковані символи. Щоб перевірити, чи дійсно остання комірка з даними є останньою використаною коміркою на аркуші, натисніть Ctrl + End . Якщо це привело вас до візуально порожнього рядка під вашими даними, з точки зору Excel, цей рядок не є порожнім. Щоб видалити такі рядки, виконайте наступні дії:

    1. Клацніть на заголовок першого порожнього рядка під Вашими даними, щоб вибрати його.
    2. Натисніть Ctrl + Shift + End, щоб виділити всі рядки, які містять що-небудь, включаючи формати, пробіли і недруковані символи.
    3. Клацніть правою кнопкою миші по виділеному і виберіть Видалити... > Весь ряд.

    Якщо у вас є відносно невеликий набір даних, ви можете позбутися всіх порожніх рядків під вашими даними, наприклад, для полегшення прокрутки. Хоча в Excel немає можливості видалити невикористовувані рядки, немає нічого, що завадило б вам переховування їх. Ось як:

    1. Виберіть рядок під останнім рядком з даними, клацнувши по його заголовку.
    2. Натисніть Ctrl + Shift + стрілка вниз, щоб розширити виділення до останнього рядка на аркуші.
    3. Натисніть Ctrl + 9, щоб приховати виділені рядки. Або клацніть правою кнопкою миші по виділенню, а потім натисніть Приховати .

    До розкрити рядки натисніть Ctrl + A, щоб виділити весь аркуш, а потім натисніть Ctrl + Shift + 9, щоб знову зробити всі рядки видимими.

    Аналогічним чином можна приховати невикористовувані порожні стовпці праворуч від даних. Для отримання детальної інформації див. статтю Приховати невикористовувані рядки в Excel так, щоб було видно тільки робочу область.

    Найшвидший спосіб видалити порожні рядки в Excel

    Коли ви читали попередні приклади, вам не здавалося, що ми використовуємо кувалду, щоб розбити горіх? Тут, в Ablebits, ми вважаємо за краще не робити речі складнішими, ніж вони є. Тому ми зробили крок далі і створили маршрут для видалення порожніх рядків в Excel в два кліки.

    З додаванням Ultimate Suite до вашої стрічки, ось як ви можете видалити всі порожні рядки на робочому аркуші:

    1. Про це йдеться на Ablebits Tools у вкладці Трансформація групу, натисніть Видалення пропусків > Порожні рядки :
    2. Надбудова повідомить, що всі порожні рядки будуть видалені з активного робочого аркуша, і попросить підтвердити це. Натисніть ОК, і через мить всі порожні рядки будуть видалені.

    Як показано на скріншоті нижче, ми видалили лише абсолютно порожні рядки які не мають жодної комірки з даними:

    Щоб дізнатися більше чудових функцій, включених в наш Ultimate Suite для Excel, ви можете завантажити пробну версію.

    Дякую за увагу і сподіваюсь побачити Вас на нашому блозі наступного тижня!

    Майкл Браун — відданий ентузіаст технологій із пристрастю до спрощення складних процесів за допомогою програмних засобів. Маючи понад десятирічний досвід роботи в технологічній індустрії, він відточив свої навички роботи з Microsoft Excel і Outlook, а також із Google Таблицями та Документами. Блог Майкла присвячений тому, щоб поділитися своїми знаннями та досвідом з іншими, надаючи прості поради та навчальні посібники для підвищення продуктивності та ефективності. Незалежно від того, чи є ви досвідченим професіоналом чи початківцем, блог Майкла пропонує цінну інформацію та практичні поради щодо отримання максимальної користі від цих основних програмних інструментів.