Работа с большими таблицами в Microsoft Excel часто требует избирательного отображения данных. Например, вам может понадобиться временно скрыть строки, содержащие слово «черновик», «устарело» или «тест», чтобы сосредоточиться на актуальной информации. Вручную прятать каждую строку неэффективно — особенно если их сотни. К счастью, в Excel есть несколько способов автоматизировать этот процесс.
В этой статье мы разберём 5 рабочих методов: от простых фильтров до продвинутых макросов на VBA. Вы узнаете, как скрыть строки по частичному или полному совпадению слова, учитывая регистр или игнорируя его, а также как вернуть скрытые данные обратно. Все инструкции актуальны для Excel 2010–2023 и Microsoft 365, включая веб-версию (с оговорками).
Прежде чем приступить, проверьте: ваша таблица должна иметь заголовки столбцов (иначе фильтры работать не будут), а данные не должны быть объединены по ячейкам (это усложнит работу макросов). Если вы работаете с Google Sheets, часть методов также применима — об этом упомянем отдельно.
Метод 1: Скрытие строк через стандартный фильтр
Самый быстрый способ — использовать встроенный фильтр. Он не удаляет данные, а лишь временно прячет их отображение. Подходит для одноразовых задач, когда не нужно сохранять настройки скрытия.
Как это работает:
- 🔍 Фильтр ищет точные совпадения слова (если в ячейке «тест123», а вы ищете «тест» — строка не скрывается).
- 📊 Работает только в пределах одного столбца (если слово может быть в разных колонках — читайте про метод 3).
- ⚡ Не требует знаний VBA или формул.
Пошаговая инструкция:
- Выделите диапазон данных (включая заголовки).
- Перейдите на вкладку
Данные→ нажмитеФильтр(или используйте горячие клавишиCtrl+Shift+L). - Нажмите на стрелку фильтра в столбце, где нужно искать слово (например, столбец
Bс названием «Статус»). - В выпадающем меню выберите
Текстовые фильтры→Не равно.... - В поле ввода укажите слово, строки с которым нужно скрыть (например, «архив»). Нажмите
ОК.
⚠️ Внимание: Если в столбце есть пустые ячейки, фильтр может работать некорректно. Перед применением замените пустоты на любой символ (например, тире) через Найти и заменить (Ctrl+H).
Выделить диапазон с заголовками
Проверить отсутствие объединённых ячеек
Заменить пустые ячейки на символ-заполнитель
Применить фильтр (Ctrl+Shift+L)
Убедиться, что фильтр включён (стрелки в заголовках)
-->
Метод 2: Условное форматирование + скрытие строк
Этот способ полезен, если нужно не только скрыть строки, но и визуально выделить их перед этим (например, покрасить в серый цвет). Здесь используется комбинация условного форматирования и ручного скрытия.
Алгоритм:
- Выделите столбец, в котором будет искаться слово (например, столбец
C). - Перейдите на вкладку
Главная→Условное форматирование→Создать правило. - Выберите тип правила
Форматировать только ячейки, которые содержат. - В поле «Форматировать все ячейки, для которых выполняется следующее условие» выберите
Текст→содержити введите искомое слово (например, «удалить»). - Нажмите
Формат, перейдите на вкладкуШрифти выберите серый цвет (например,Светло-серый, текст 2). НажмитеОКдважды.
Теперь все ячейки со словом «удалить» станут серыми. Чтобы скрыть целые строки:
- 🖱️ Зажмите
Ctrlи кликните по серым ячейкам (выделятся только они). - 📄 На вкладке
Главнаяв группеЯчейкивыберитеФормат→Скрыть или отобразить→Скрыть строки.
⚠️ Внимание: Этот метод не работает для скрытия строк по частичному совпадению (например, если искать «тест», а в ячейке «тестирование»). Для таких случаев используйте формулы (метод 4).
Как вернуть скрытые строки обратно?
Чтобы отобразить все строки, выделите диапазон (включая скрытые), затем на вкладке Главная выберите Формат → Скрыть или отобразить → Отобразить строки. Условное форматирование при этом сохранится — его нужно удалять отдельно через Управление правилами.
Метод 3: Фильтр по нескольким столбцам с помощью «Расширенного фильтра»
Если искомое слово может находиться в любом из столбцов (например, в колонках «Название», «Описание» или «Комментарий»), стандартный фильтр не подойдёт. Здесь поможет Расширенный фильтр — инструмент для сложных условий.
Подготовка:
- 📌 Создайте копию исходной таблицы (на другом листе или внизу текущего).
- 🔄 Добавьте над таблицей строку критериев (пустую строку выше заголовков).
- 🔍 В ячейках строки критериев укажите условие. Например, если искать слово «срочно» в столбцах
B(«Описание») иD(«Примечания»), введите в ячейкиB1иD1формулу:="срочно"(звёздочки означают «любые символы до и после слова»).
Применение фильтра:
- Выделите исходную таблицу (включая заголовки).
- Перейдите на вкладку
Данные→Расширенный фильтр. - В поле «Исходный диапазон» укажите адрес вашей таблицы (например,
$A$2:$D$100). - В поле «Диапазон условий» укажите адрес строки критериев (например,
$A$1:$D$1). - Выберите опцию «Скопировать результат в другое место» и укажите ячейку, куда вывести отфильтрованные данные (например,
$A$102). - Нажмите
ОК.
Результат: в указанном месте появится таблица без строк, содержащих слово «срочно». Исходные данные останутся нетронутыми.
Стандартный фильтр
Расширенный фильтр
Условное форматирование
Макросы VBA
Не фильтрую, работаю с полными данными
-->
Метод 4: Автоматическое скрытие строк с помощью формул и VBA
Для динамического скрытия (когда строки скрываются автоматически при изменении данных) понадобится VBA. Этот метод подходит для опытных пользователей, но даёт максимальную гибкость: можно искать по частичному совпадению, игнорировать регистр, обрабатывать несколько столбцов.
Пример макроса для скрытия строк, где в столбце C есть слово «отмена» (регистр не важен):
Sub HideRowsByKeyword()
Dim ws As Worksheet
Dim rng As Range, cell As Range
Dim keyword As String
Dim lastRow As Long
' Настройки
keyword = "отмена" ' Искомое слово
Set ws = ActiveSheet ' Текущий лист
lastRow = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row ' Последняя строка в столбце C
' Отменить скрытие всех строк (опционально)
ws.Rows.Hidden = False
' Проверка каждой ячейки в столбце C
For Each cell In ws.Range("C2:C" & lastRow)
If InStr(1, cell.Value, keyword, vbTextCompare) > 0 Then
cell.EntireRow.Hidden = True
End If
Next cell
End Sub
Как использовать:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - В меню выберите
Insert→Module. - Вставьте код выше и закройте редактор.
- Вернитесь в Excel и нажмите
Alt+F8, выберите макросHideRowsByKeywordи запустите его.
⚠️ Внимание: Макросы работают только в файлах с расширением .xlsm (с поддержкой макросов). Если вы сохраняете файл как .xlsx, код будет удалён! Также проверьте настройки безопасности: Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Настройки макросов (выберите «Включить все макросы» или «Отключить все макросы с уведомлением»).
Private Sub Workbook_Open()
HideRowsByKeyword
End Sub
-->
Метод 5: Скрытие строк через Power Query (для Excel 2016 и новее)
Power Query — это инструмент для преобразования данных, доступный в новых версиях Excel. Он позволяет создавать динамические фильтры, которые обновляются при изменении исходных данных.
Пошаговая инструкция:
- Выделите вашу таблицу и перейдите на вкладку
Данные→Из таблицы/диапазона(в группеПолучить и преобразовать данные). - В открывшемся окне Power Query найдите столбец, по которому будет фильтрация (например, «Статус»).
- Нажмите на стрелку рядом с названием столбца →
Текстовые фильтры→Не содержит.... - Введите слово, которое должно отсутствовать в строках (например, «черновик»). Нажмите
ОК. - Нажмите
Закрыть и загрузить→ выберите «Таблица» и укажите, куда выгрузить отфильтрованные данные (например, на новый лист).
Преимущества метода:
- 🔄 Фильтр обновляется автоматически при изменении исходных данных (достаточно кликнуть
Обновить всена вкладкеДанные). - 📊 Можно комбинировать несколько условий (например, скрыть строки, где «Статус = архив» ИЛИ «Дата < 01.01.2023»).
- 💾 Не требует знаний VBA.
⚠️ Внимание: Power Query создаёт копию данных, а не скрывает строки в исходной таблице. Если вам нужно именно скрытие (а не удаление из вида), комбинируйте этот метод с VBA (метод 4).
Сравнение методов: какой выбрать?
Каждый способ имеет свои плюсы и минусы. В таблице ниже — краткое сравнение для выбора оптимального решения:
| Метод | Сложность | Динамичность | Поддержка частичного совпадения | Работа с несколькими столбцами | Требует VBA |
|---|---|---|---|---|---|
| Стандартный фильтр | ⭐ | ❌ (вручную) | ❌ | ❌ | ❌ |
| Условное форматирование | ⭐⭐ | ❌ (полуавтомат) | ❌ | ❌ | ❌ |
| Расширенный фильтр | ⭐⭐⭐ | ❌ | ✅ | ✅ | ❌ |
| VBA-макрос | ⭐⭐⭐⭐ | ✅ | ✅ | ✅ | ✅ |
| Power Query | ⭐⭐⭐ | ✅ | ✅ | ✅ | ❌ |
Для разовых задач подойдёт стандартный фильтр или условное форматирование. Если нужно автоматизировать процесс и работать с большими таблицами — изучите VBA или Power Query.
Частые ошибки и как их избежать
Даже опытные пользователи сталкиваются с проблемами при скрытии строк. Вот самые распространённые ошибки и способы их решения:
- 🚫 Фильтр не находит слово: проверьте регистр (Excel по умолчанию чувствителен к нему). Используйте
=ПОИСК("слово";A1)в условном форматировании для поиска без учёта регистра. - 🔍 Скрываются лишние строки: убедитесь, что в формуле или условии фильтра нет лишних пробелов. Используйте
=СЖПРОБЕЛЫ(A1)для очистки данных. - 📎 Макрос не работает: проверьте, что файл сохранён как
.xlsm, а не.xlsx. Также убедитесь, что в настройках безопасности разрешены макросы. - 🔄 После обновления данных скрытые строки не возвращаются: это происходит, если вы использовали Power Query без сохранения исходной таблицы. Всегда дублируйте данные перед преобразованиями.
Если вы работаете с Google Sheets, учтите:
- 📑 В нём нет Power Query, но есть аналогичный инструмент —
Query(функция=QUERY()). - 🤖 Макросы пишутся на Google Apps Script (синтаксис отличается от VBA).
- 🔍 Фильтры работают аналогично Excel, но нет расширенного фильтра в классическом виде.
Как скрыть строки по цвету ячейки?
Если вам нужно скрыть строки не по слову, а по цвету фона, используйте VBA:
Sub HideRowsByColor()
Dim cell As Range, rng As Range
Dim targetColor As Long
targetColor = RGB(255, 200, 200) ' Замените на нужный цвет
For Each cell In Selection
If cell.Interior.Color = targetColor Then
cell.EntireRow.Hidden = True
End If
Next cell
End Sub
Чтобы узнать код цвета, выделите ячейку и запустите в редакторе VBA команду:
?ActiveCell.Interior.Color
FAQ: Ответы на частые вопросы
Можно ли скрыть строки по нескольким словам одновременно?
Да. В расширенном фильтре (метод 3) используйте несколько строк критериев с условием ИЛИ. Например:
| A1 (пусто) | B1: ="слово1" | C1: ="слово2" |
| A2: =ИЛИ | B2: =ИСТИНА | C2: =ИСТИНА |
В VBA модифицируйте код, добавив проверку нескольких слов через OR:
If InStr(cell.Value, "слово1") > 0 Or InStr(cell.Value, "слово2") > 0 Then
Как скрыть строки, если слово встречается в любом из столбцов?
Используйте расширенный фильтр (метод 3) с критерием для каждого столбца. Альтернатива — VBA-макрос, который проверяет все столбцы:
Sub HideRowsByKeywordAnyColumn()
Dim ws As Worksheet, rng As Range, cell As Range
Dim keyword As String, lastRow As Long, lastCol As Long
Dim i As Long, j As Long, hideRow As Boolean
keyword = "искомое_слово"
Set ws = ActiveSheet
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
For i = 2 To lastRow
hideRow = False
For j = 1 To lastCol
If InStr(1, ws.Cells(i, j).Value, keyword, vbTextCompare) > 0 Then
hideRow = True
Exit For
End If
Next j
ws.Rows(i).Hidden = hideRow
Next i
End Sub
Почему после скрытия строк пропали номера строк в Excel?
Это нормальное поведение: Excel не удаляет скрытые строки, а лишь прячет их отображение. Номера строк (слева) остаются последовательными, но пропускают скрытые. Чтобы вернуть визуальную нумерацию:
- Выделите столбец с номерами (кликните по серой области слева от строк).
- На вкладке
Главнаяв группеЯчейкивыберитеФормат→Скрыть или отобразить→Отобразить строки.
Если нужна постоянная нумерация (например, 1, 2, 3... без пропусков), добавьте отдельный столбец с формулой =СТРОКА()-1.
Как скрыть строки в защищённом листе?
Если лист защищён паролем, сначала снимите защиту: Рецензирование → Снять защиту листа. После применения фильтра или макроса верните защиту обратно.
⚠️ Внимание: В защищённом листе нельзя скрывать строки через VBA, если в настройках защиты отключена опция «Форматировать строки». Проверьте это в Рецензирование → Защитить лист → снимите галочку с «Форматировать строки» перед защитой.
Работает ли скрытие строк в Excel Online?
В веб-версии Excel (Excel Online) доступны:
- ✅ Стандартный фильтр (метод 1).
- ✅ Условное форматирование (метод 2), но без возможности скрыть строки через него.
- ❌ VBA и Power Query не поддерживаются.
- ❌ Расширенный фильтр работает с ограничениями (нет копирования результата в другое место).
Для скрытия строк в Excel Online используйте стандартный фильтр или условное форматирование с ручным скрытием.