Работа с большими таблицами в Microsoft Excel часто требует очистки данных от ненужных записей. Одна из самых распространённых задач — удаление строк, где в определённой колонке встречается конкретное значение: пустая ячейка, ошибка #Н/Д, повторяющийся текст или число. Например, вам нужно убрать все строки с статусом "Отменён", удалить дубликаты email или исключить записи с нулевыми продажами.
На первый взгляд задача простая, но в зависимости от версии Excel (2010, 2016, 2019, 365 или Excel Online), объёма данных и их структуры подходы могут кардинально отличаться. Где-то хватит стандартного фильтра, а где-то потребуется Power Query или даже макрос на VBA. В этой статье разберём все актуальные способы — от элементарных до продвинутых, — а также расскажем, как избежать типичных ошибок при удалении строк.
Если вы никогда не работали с фильтрацией или формулами в Excel, не переживайте: первые два метода подойдут даже новичкам. Опытным пользователям будут полезны разделы про условное форматирование и Power Query — они экономят часы при обработке десятков тысяч строк. А для тех, кто любит автоматизацию, мы подготовили готовые скрипты на VBA с пояснениями.
1. Самый простой способ: удаление через фильтр
Этот метод подходит для 90% случаев, когда нужно быстро удалить строки с одинаковым значением в одном столбце. Его главный плюс — не требуется знание формул или программирования. Минус: если данные отсортированы не по тому столбцу, по которому вы фильтруете, после удаления порядок строк может нарушиться.
Алгоритм действий:
- Выделите диапазон данных (включая заголовки столбцов).
- Перейдите на вкладку
Данные→Фильтр(или нажмитеCtrl+Shift+L). - Нажмите на стрелку фильтра в столбце, где нужно искать значение.
- Снимите галочку с
(Выделить всё), затем отметьте только те значения, которые хотите оставить. - Нажмите
OK— отобразятся только нужные строки. - Выделите видимые строки (кликните на номера строк слева), затем правой кнопкой →
Удалить строки. - Снимите фильтр (нажмите
Фильтрещё раз).
⚠️ Внимание: Если в вашей таблице есть объединённые ячейки, фильтр может работать некорректно. В этом случае сначала разъедините ячейки (Главная → Объединить и поместить в центре → отменить объединение), а потом применяйте фильтр.
Выделил заголовки столбцов
Проверил, нет ли объединённых ячеек
Убедился, что фильтр применён к нужному столбцу
Скопировал данные на резервный лист (на всякий случай)-->
Пример: у вас есть таблица с заказами, и нужно удалить все строки со статусом "Возврат". После применения фильтра останутся только строки с другими статусами. Их можно скопировать на новый лист или сразу удалить ненужные.
2. Удаление с помощью функции "Найти и выделить"
Если значение, по которому нужно удалять строки, встречается редко, удобнее использовать инструмент Найти и выделить. Этот способ подходит для небольших таблиц (до 1000 строк) и когда нужно удалить строки с уникальным текстом или числом.
Пошаговая инструкция:
- Выделите столбец, в котором нужно искать значение (например, столбец
Bс названиями городов). - Нажмите
Ctrl+F(илиГлавная→Найти и выделить→Найти). - В поле
Найтивведите искомое значение (например, "Москва"). - Нажмите
Найти все— внизу появится список всех ячеек с этим значением. - Нажмите
Ctrl+A, чтобы выделить все найденные ячейки, затем закройте окно поиска. - Кликните правой кнопкой по выделенному и выберите
Удалить строки.
⚠️ Внимание: Если в таблице есть скрытые строки, инструмент Найти их проигнорирует. Чтобы этого избежать, сначала раскройте все строки: выделите весь лист (Ctrl+A) → правая кнопка → Показать.
Преимущество этого метода в том, что вы видите точные адреса ячеек с искомым значением. Это полезно, если нужно удалить строки только при совпадении в нескольких столбцах (например, "Москва" в столбце Город и "Отменён" в столбце Статус).
Фильтр
Найти и выделить
Формулы (ПРОСМОТР, ФИЛЬТР и др.)
Power Query
VBA-макросы
Другой вариант-->
3. Продвинутый метод: формулы + удаление
Когда нужно удалить строки по нескольким условиям или по частичному совпадению (например, все email с доменом @gmail.com), на помощь приходят формулы. Этот способ требует немного больше усилий, но даёт максимальную гибкость.
Самый надёжный вариант — использовать функцию ФИЛЬТР (в Excel 365 и Excel 2021) или комбинацию ЕСЛИ + ПОИСКПОЗ (для старых версий). Рассмотрим оба подхода.
3.1. Способ для Excel 365/2021: функция ФИЛЬТР
Допустим, у вас таблица с данными в диапазоне A1:D100, и нужно удалить строки, где в столбце B (название товара) есть слово "уценка". Введите эту формулу на новом листе:
=ФИЛЬТР(A2:D100; (ПОИСК("уценка"; B2:B100)=0); "Нет данных")
Формула вернёт все строки, кроме тех, где в столбце B есть слово "уценка". После этого можно скопировать отфильтрованные данные и вставить их поверх оригинальной таблицы.
3.2. Способ для Excel 2010–2019: вспомогательный столбец
Если у вас старая версия Excel, создайте вспомогательный столбец с формулой, которая будет помечать строки на удаление. Например, чтобы удалить строки с пустыми ячейками в столбце C:
=ЕСЛИ(C2=""; "Удалить"; "Оставить")
Затем отфильтруйте таблицу по этому столбцу, оставив только строки с меткой "Оставить", и скопируйте их на новый лист.
⚠️ Внимание: Если в вашей таблице есть формулы с относительными ссылками (например, =A1+B1), после удаления строк они могут сбиться. Чтобы этого избежать, предварительно преобразуйте формулы в значения: выделите диапазон → Копировать → Специальная вставка → Значения.
=ЕСЛИ(И(A2="Да"; B2<100); "Удалить"; "Оставить")-->
4. Power Query: удаление строк без формул
Power Query (или Get & Transform в Excel 2016+) — это инструмент для обработки больших массивов данных. Он идеален, когда нужно удалить строки по сложным критериям или очистить данные перед анализом.
Как это работает:
- Выделите вашу таблицу и нажмите
Данные→Из таблицы/диапазона(в Excel 2016–2019) илиДанные→Получить данные→Из таблицы/диапазона(в Excel 365). - В открывшемся окне Power Query выберите столбец, по которому нужно фильтровать.
- Нажмите на стрелку фильтра и выберите
Текстовые фильтры→Не равно(или другой нужный критерий). - Введите значение, которое нужно исключить (например, "Тест"), и нажмите
OK. - Нажмите
Закрыть и загрузить— отфильтрованные данные появятся на новом листе.
Преимущества Power Query:
- 🔄 Работает с миллионами строк без замедлений.
- 📊 Сохраняет историю преобразований — можно вернуть исходные данные.
- 🔗 Поддерживает связь с источником: при обновлении данных в оригинальной таблице фильтрация применяется автоматически.
⚠️ Внимание: Если ваша таблица содержит объединённые ячейки или сложные формулы, Power Query может некорректно их интерпретировать. В этом случае сначала преобразуйте данные в простой формат (разъедините ячейки, замените формулы на значения).
Если при импорте таблицы Power Query показывает пустые ячейки или ошибки, проверьте: 1. Нет ли в данных скрытых символов (пробелов, табуляций). Используйте функцию 2. Правильно ли определены типы данных (текст, число, дата). В Power Query нажмите на заголовок столбца → выберите нужный тип. 3. Нет ли в таблице пустых строк или столбцов — они могут разрывать диапазон. Удалите их перед импортом.Что делать, если Power Query не видит ваши данные?
=ПЕЧСИМВ(A1), чтобы их обнаружить.
5. Автоматизация: удаление строк через VBA
Если вам регулярно приходится удалять строки по одним и тем же критериям, имеет смысл написать макрос на VBA. Это сэкономит время и исключит ошибки при ручной обработке.
Пример макроса, который удаляет строки с пустыми ячейками в столбце C:
Sub УдалитьПустыеСтроки()
Dim rng As Range
Dim row As Range
Dim i As Long
' Указываем диапазон данных (например, A1:C1000)
Set rng = Range("A1:C1000")
' Проходим по строкам с конца в начало (чтобы не сбивались индексы)
For i = rng.Rows.Count To 1 Step -1
If IsEmpty(rng.Cells(i, 3).Value) Then ' Проверяем столбец C
rng.Rows(i).Delete
End If
Next i
End Sub
Как использовать этот макрос:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert→Module). - Нажмите
F5, чтобы запустить макрос.
Модификации для других задач:
- 🔍 Чтобы удалять строки с конкретным текстом (например, "Устарело"), замените строку
If IsEmpty...на:If rng.Cells(i, 3).Value = "Устарело" Then - 📊 Чтобы удалять по нескольким столбцам, добавьте дополнительные условия с
OR:If IsEmpty(rng.Cells(i, 3).Value) Or rng.Cells(i, 2).Value = "Тест" Then
⚠️ Внимание: Перед запуском макроса обязательно сохраните резервную копию файла. Ошибка в коде может привести к потере данных. Также убедитесь, что макросы разрешены в настройках безопасности (Файл → Параметры → Центр управления безопасностью → Параметры центра... → Настройка макросов).
6. Особенности работы с большими таблицами
Если ваша таблица содержит более 100 000 строк, стандартные методы (фильтр, Найти и выделить) могут работать медленно или вообще зависать. В этом случае рекомендуем:
✅ Оптимальные способы для больших данных:
| Метод | Макс. строк | Скорость | Сложность |
|---|---|---|---|
| Фильтр | до 50 000 | Средняя | Низкая |
| Power Query | 1 000 000+ | Высокая | Средняя |
| VBA | 1 000 000+ | Очень высокая | Высокая |
| Формулы (ФИЛЬТР) | до 300 000 | Низкая | Средняя |
💡 Советы для ускорения:
- 📥 Разбейте данные на несколько файлов по 50 000 строк.
- 🔄 Отключите автоматический пересчёт формул:
Формулы→Параметры вычислений→Вручную. - 💾 Сохраните файл в формате
.xlsb(двоичный формат Excel) — он работает быстрее, чем.xlsx.
Если даже Power Query работает слишком медленно, попробуйте импортировать данные в Microsoft Access и выполнить фильтрацию там. Access лучше оптимизирован для работы с большими базами данных.
При удалении строк в Excel пользователи часто сталкиваются с одними и теми же проблемами. Вот самые распространённые из них и способы их решения:
🔴 Ошибка 1: Сбились формулы после удаления строк
Причина: В таблице использовались относительные ссылки (например, Решение: Перед удалением преобразуйте формулы в значения ( 🔴 Ошибка 2: Удалились не те строки
Причина: Фильтр был применён не к тому столбцу или неверно задан критерий (например, искали "Москва", а в ячейке был пробел "Москва ").
Решение: Используйте функцию 🔴 Ошибка 3: Завис Excel при удалении7. Типичные ошибки и как их избежать
=A1+B1), которые автоматически сдвигаются при удалении строк.
Копировать → Специальная вставка → Значения) или используйте абсолютные ссылки (например, =$A$1+B1).
=СЖПРОБЕЛЫ(A1), чтобы убрать лишние пробелы, или =ПРОПНАЧ(A1) для приведения текста к единому регистру.
Причина: Слишком большой объём данных или включённый автоматический пересчёт формул.
Решение: Отключите пересчёт (Формулы → Вручную) и разбейте задачу на части (удалите по 10 000 строк за раз).
🔴 Ошибка 4: После удаления строки "скачут"
Причина: В таблице есть скрытые строки или объединённые ячейки, которые сбивают нумерацию.
Решение: Перед удалением раскройте все строки ( Да, но только если вы не сохраняли файл после удаления. Нажмите Используйте фильтр по столбцу с ошибками:
Или используйте функцию Выделите таблицу → Главная → Формат → Скрыть/отобразить → Отобразить строки) и разъедините ячейки.
FAQ: Ответы на частые вопросы
Можно ли отменить удаление строк в Excel?
Ctrl+Z или кнопку Отменить на панели быстрого доступа. Если файл был сохранён, попробуйте восстановить предыдущую версию через Файл → Сведения → Управление книгой → Восстановить несохранённую книгу (работает, если включено автосохранение).Как удалить строки с ошибками (#Н/Д, #ЗНАЧ! и др.)?
(Пусто) и (Ошибки).=ЕОШИБКА(A1) во вспомогательном столбце, чтобы пометить строки с ошибками.Как удалить строки с дубликатами?
Данные → Удалить дубликаты. В появившемся окне отметьте столбцы, по которым нужно искать дубли (например, только по столбцу Email). Excel
⚠️ Внимание: Если в таблице нет заголовков, снимите галочку Мои данные содержат заголовки, иначе первая строка будет проигнорирована.
Можно ли удалить строки по условию в Google Таблицах?
Да, алгоритм похож на Excel:
- Примените фильтр (
Данные→Создать фильтр). - Отфильтруйте данные по нужному критерию.
- Выделите видимые строки → правая кнопка →
Удалить строки 1–X.
Для автоматизации используйте Google Apps Script (аналог VBA).
Как удалить строки, где значение в ячейке меньше/больше определённого числа?
Используйте фильтр по числовому критерию:
- Примените фильтр к столбцу с числами.
- В выпадающем меню выберите
Числовые фильтры→Больше чемилиМеньше чем. - Введите пороговое значение (например, 100) и нажмите
OK. - Удалите видимые строки (это будут строки, которые не соответствуют вашему условию).
Для сложных условий (например, "больше 100, но меньше 500") используйте Пользовательский фильтр.