Как удалить строки в Excel: полное руководство с примерами

Почему удаление строк в Excel требует внимания

Работа с большими таблицами в Microsoft Excel часто превращается в борьбу с лишними данными. Пустые строки после импорта, дубликаты при объединении файлов, устаревшие записи — всё это засоряет таблицу и мешает анализу. Но просто выделить строку и нажать Delete работает не всегда: иногда это приводит к сдвигу данных или ошибкам в формулах.

В этой статье разберём 7 способов удаления строк — от базовых до автоматизированных, с учётом нюансов разных версий Excel (2013, 2016, 2019, 365 и Excel Online). Вы узнаете, как удалять строки выборочно (по условию), массово (с фильтрацией) и даже с помощью макросов, если ручные методы не справляются. Особое внимание уделим скрытым ловушкам: почему после удаления строки формулы возвращают ошибку #ССЫЛКА! и как этого избежать.

Способ 1: Удаление строк вручную (классический метод)

Самый простой способ — удаление через контекстное меню. Он подходит для единичных строк или небольших диапазонов, когда не нужно автоматизировать процесс. Вот как это работает:

  1. Выделите номер строки (или несколько строк) слева от таблицы. Например, чтобы удалить строки 5–10, кликните по цифре 5, затем удерживайте Shift и выберите 10.
  2. Нажмите правую кнопку мыши и выберите Удалить.
  3. В открывшемся окне подтвердите действие, выбрав Всю строку (чтобы не сдвинуть только содержимое ячеек).

⚠️ Внимание: Если в удаляемых строках есть связанные данные (например, ячейки используются в формулах на других листах), Excel не предупредит об этом! Перед удалением проверьте зависимости через Формулы → Зависимости формул → Влияющие ячейки.

Способ 2: Удаление пустых строк (автоматически)

Пустые строки — частая проблема при импорте данных из CSV или после очистки таблицы. Удалять их вручную неэффективно, особенно если их сотни. Вот три способа автоматизации:

  • 🔍 Фильтрация + удаление:
    1. Выделите диапазон данных (включая заголовки).
    2. Перейдите в Данные → Фильтр (или нажмите Ctrl+Shift+L).
    3. В выпадающем списке любого столбца снимите галочку с (Пустые).
    4. Выделите отфильтрованные пустые строки и удалите их (см. Способ 1).
    5. Снимите фильтр через Данные → Фильтр.
  • 📊 Сортировка: Отсортируйте таблицу по любому столбцу — пустые строки окажутся внизу или вверху. Затем удалите их группой.
  • 🤖 Макрос VBA: Для больших файлов (10 000+ строк) используйте скрипт:
    Sub DeleteEmptyRows
    

    Dim rng As Range, row As Range

    Set rng = ActiveSheet.UsedRange

    For Each row In rng.Rows

    If WorksheetFunction.CountA(row) = 0 Then row.Delete

    Next row

    Endcode>

    Как вставить макрос: Alt+F11 → Вставка → Модуль, вставьте код и нажмите F5.
  • Выделить весь диапазон данных (включая заголовки)|

    Проверить, нет ли в"пустых" строках скрытых символов (пробелов, табуляций)|

    Сохранить резервную копию файла|

    Отключить связные формулы (если есть)-->

    Способ 3: Удаление строк по условию (фильтр и формулы)

    Допустим, вам нужно удалить строки, где в столбце B значение меньше 100, или где в столбце D указан статус"Отменено". Для этого подойдёт расширенный фильтр или вспомогательный столбец с формулами.

    Метод 1: Фильтр по условию

    1. Выделите диапазон данных (включая заголовки).
    2. Перейдите в Данные → Фильтр → Расширенный фильтр.
    3. В поле Исходный диапазон укажите вашу таблицу (например, A1:D100).
    4. В поле Диапазон условий укажите ячейки с критериями (например, F1:F2, где F1 — заголовок"Статус", а F2 —"Отменено").
    5. Нажмите ОК — отобразятся только строки, соответствующие условию. Их можно выделить и удалить.

    Метод 2: Вспомогательный столбец

    Добавьте новый столбец (например, E) и введите формулу, которая помечает строки на удаление. Например, чтобы удалить строки с суммой меньше 100:

    =ЕСЛИ(B2<100;"Удалить";"")

    Затем отфильтруйте таблицу по значению"Удалить" и удалите отмеченные строки.

    Метод Когда использовать Плюсы Минусы
    Расширенный фильтр Сложные условия (И/ИЛИ) Гибкость, нет нужды в формулах Требует настройки диапазона условий
    Вспомогательный столбец Простые условия, небольшие таблицы Наглядно, легко редактировать Добавляет лишний столбец
    Макрос VBA Очень большие таблицы (10 000+ строк) Мгновенное выполнение Требует знаний VBA

    Вручную (через контекстное меню)|

    Фильтрация по условию|

    Макросы VBA|

    Другие способы-->

    Способ 4: Удаление дублирующихся строк

    Дубликаты появляются при объединении таблиц, импорте данных или ошибках ввода. В Excel есть встроенный инструмент для их удаления:

    1. Выделите диапазон данных (обязательно включая заголовки!).
    2. Перейдите в Данные → Удалить дубликаты.
    3. В открывшемся окне выберите столбцы, по которым нужно искать дубли. Например, если дублируются строки с одинаковым ID и Наименованием, отметьте эти столбцы.
    4. Нажмите ОК. Excel покажет, сколько дубликатов было удалено.

    ⚠️ Внимание: Инструмент Удалить дубликаты безвозвратно удаляет первые повторяющиеся строки, оставляя только уникальные. Если вам нужно сохранить все данные, предварительно скопируйте таблицу на другой лист или в отдельный файл.

    Что делать, если дубликаты частичные?

    Если строки дублируются не полностью (например, совпадает только Email, но разные Имя), используйте условное форматирование для их выделения:

    1. Выделите диапазон данных.
    2. Перейдите в Главная → Условное форматирование → Правила выделения ячеек → Повторяющиеся значения.
    3. Выберите цвет для выделения дублей.
    4. Вручную проверьте выделенные строки и удалите лишние.

    Способ 5: Удаление строк с ошибками (#Н/Д, #ЗНАЧ! и др.)

    Ошибочные данные (#Н/Д, #ДЕЛ/0!, #ЗНАЧ!) могут портить расчёты и графики. Чтобы их удалить:

    • 🔎 Фильтрация по ошибкам:
      1. Выделите таблицу и включите фильтр (Ctrl+Shift+L).
      2. В выпадающем списке столбца с ошибками выберите (Пустые) — это покажет и пустые ячейки, и ячейки с ошибками.
      3. Удалите отфильтрованные строки.
    • 📉 Формула + фильтр: Добавьте вспомогательный столбец с формулой:
      =ЕОШИБКА(A2)

      Она вернёт ИСТИНА для ячеек с ошибками. Затем отфильтруйте по ИСТИНА и удалите строки.

    • 🛠️ Поиск и замена: Нажмите Ctrl+H, в поле Найти введите #Н/Д, оставьте поле Зменить на пустым и нажмите Заменить всё. Но! Это заменит ошибки на пустоту, а не удалит строки.
    • Примечание: Если ошибки вызваны некорректными формулами (например, делением на ноль), лучше исправить сами формулы, а не удалять строки. Используйте ЕСЛИОШИБКА для маскировки ошибок:

      =ЕСЛИОШИБКА(A2/B2; 0)

      Способ 6: Удаление строк через Power Query (для больших данных)

      Power Query — мощный инструмент Excel для обработки больших массивов данных. Он позволяет удалять строки по сложным критериям без формул. Вот как это сделать:

      1. Выделите вашу таблицу и перейдите в Данные → Из таблицы/диапазонаExcel 2016+).
      2. В открывшемся редакторе Power Query выберите столбец, по которому нужно фильтровать строки.
      3. Нажмите на стрелку в заголовке столбца и выберите условия. Например, Не равно → Отменено.
      4. Чтобы удалить строки полностью, выделите их в превью и нажмите Главная → Удалить строки.
      5. Нажмите Закрыть и загрузить, чтобы применить изменения.

      Преимущества метода:

      • ✅ Работает с миллионами строк (в отличие от стандартных фильтров).
      • ✅ Сохраняет историю преобразований (можно откатить изменения).
      • ✅ Поддерживает сложные условия (например, удалить строки, где Дата > 01.01.2023 И Статус ="Неактивно").

      Способ 7: Удаление строк с помощью VBA (для продвинутых пользователей)

      Если вам нужно удалять строки регулярно или по сложным правилам, напишите макрос. Ниже примеры скриптов длячных задач:

      1. Удаление строк с конкретным текстом (например,"Устарело" в столбце C):

      Sub DeleteRowsByText
      

      Dim i As Long, lastRow As Long

      lastRow = Cells(Rows.Count,"C").End(xlUp).Row

      For i = lastRow To 1 Step -1

      If Cells(i, 3).Value ="Устарело" Then Rows(i).Delete

      Next i

      End Sub

      2. Удаление строк с пустыми ячейками в столбце A:

      Sub DeleteRowsIfEmpty
      

      Dim rng As Range, cell As Range

      Set rng = Range("A1:A" & Cells(Rows.Count,"A").End(xlUp).Row)

      For Each cell In rng

      If IsEmpty(cell) Then cell.EntireRow.Delete

      Next cell

      End Sub

      3. Удаление каждой второй строки (например, для удаления дублирующихся заголовков):

      Sub DeleteEveryOtherRow
      

      Dim i As Long, lastRow As Long

      lastRow = Cells(Rows.Count, 1).End(xlUp).Row

      For i = lastRow To 2 Step -2

      Rows(i).Delete

      Next i

      End Sub

      ⚠️ Внимание: Макросы необратимо изменяют данные. Перед запуском:

      1. Сохраните резервную копию файла.
      2. Проверьте скрипт на тестовом диапазоне.
      3. Отключите автоматический пересчёт формул (Формулы → Параметры вычислений → Вручную), если работаете с большими таблицами.

      Частые ошибки и как их избежать

      Даже опытные пользователи Excel сталкиваются с проблемами при удалении строк. Вот 5 типичных ошибок и их решения:

      • 🔄 Сдвиг данных: Если удалить строку с формулой, ссылающейся на другие ячейки, может появиться ошибка #ССЫЛКА!. Решение: Используйте абсолютные ссылки ($A$1) или именованные диапазоны.
      • 📊 Нарушение структуры таблицы: Удаление строк в таблице Excel (созданной через Вставка → Таблица) может сломать связные диаграммы. Решение: Преобразуйте таблицу в обычный диапазон (Конструктор → Преобразовать в диапазон) перед удалением.
      • 🔍 Скрытые данные: Иногда строки кажутся пустыми, но содержат невидимые символы (пробелы, табуляции). Решение: Используйте функцию =ПРОБЕЛ(A1) для очистки или =ДЛСТР(SUBSTITUTE(A1;"";""))=0 для проверки"истинно пустых" ячеек.
      • 🔒 Защищённые листы: Если лист защищён, удаление строк будет заблокировано. Решение: Снимите защиту через Рецензирование → Снять защиту листа.
      • 📎 Связанные данные: Удаление строки может нарушить связи в сводных таблицах или Power Pivot. Решение: Обновите все связанные отчёты после удаления (Данные → Обновить всё).

      FAQ: Ответы на частые вопросы

      Можно ли отменить удаление строк в Excel?

      Да, но только если вы не сохраняли файл после удаления. Используйте Ctrl+Z или кнопку Отменить на панели быстрого доступа. Если файл сохранён, восстановить данные можно только из резервной копии или через журнал измененийExcel 365 через Файл → Сведения → Журнал изменений).

      Почему после удаления строки формулы возвращают #ССЫЛКА!?

      Эта ошибка возникает, если формула ссылалась на ячейки в удалённой строке. Например, формула =A1+B1 вернёт #ССЫЛКА!, если удалить строку 1. Решения:

      • Используйте абсолютные ссылки ($A$1) для фиксированных ячеек.
      • Замените ссылки на именованные диапазоны.
      • Проверьте зависимости через Формулы → Зависимости формул.

      Как удалить строки в Excel Online?

      В веб-версии Excel доступны не все функции. Чтобы удалить строки:

      1. Выделите строку(и) по номеру слева.
      2. Нажмите правую кнопку мыши и выберите Удалить строки.
      3. Для удаления по условию используйте Данные → Фильтр (но без Расширенного фильтра).
      Ограничения: Нет Power Query, макросов и некоторых функций фильтрации.

      Можно ли удалить строки в защищённом листе?

      Нет, если лист защищён от редактирования. Чтобы разблокировать:

      1. Перейдите в Рецензирование → Снять защиту листа.
      2. Введите пароль (если он был установлен).
      3. После удаления строк снова включите защиту через Защитить лист.
      Примечание: Если вы не знаете пароль, снять защиту можно только через VBA (требуются права администратора).

      Как удалить строки в сводной таблице?

      В сводной таблице нельзя удалять строки напрямую — это нарушит её структуру. Вместо этого:

      1. Исключите ненужные данные из источника: Отредактируйте исходную таблицу или запрос Power Query.
      2. Скрыть строки: Кликните правой кнопкой по элементу в области строк и выберите Скрыть.
      3. Фильтрация: Используйте фильтры сводной таблицы, чтобы скрыть ненужные данные.