Работа с диапазонами данных в Microsoft Excel — одна из самых востребованных задач при анализе числовой информации. Часто требуется выделить или подсчитать значения, которые попадают между двумя границами: например, найти все продажи от 10 000 до 50 000 рублей, температуры от 20 до 30°C или возраст сотрудников от 25 до 40 лет. Вручную перебирать тысячи строк неэффективно — для этого в Excel есть специализированные инструменты.
В этой статье мы разберём 5 проверенных способов отфильтровать данные по диапазону: от простых функций ФИЛЬТР и условного форматирования до сложных формул массивов и Power Query. Вы узнаете, какой метод выбрать для статических таблиц, а какой — для динамически обновляемых данных, а также научитесь избегать типичных ошибок при работе с границами диапазонов (включительно/не включительно).
Особое внимание уделим производительности: почему некоторые формулы тормозят на больших массивах данных, и как оптимизировать их работу. В конце статьи — сравнительная таблица методов с рекомендациями по применению и FAQ по частым проблемам.
1. Метод 1: Фильтр по диапазону (самый простой способ)
Если вам нужно визуально выделить или временно скрыть строки, не соответствующие условию, используйте встроенный фильтр Excel. Этот метод не требует знания формул и подходит для разовых задач.
Алгоритм действий:
- Выделите заголовок столбца с числовыми данными (например,
"Цена"или"Возраст"). - Перейдите на вкладку
Данные→ нажмитеФильтр(или используйте горячие клавишиCtrl+Shift+L). - Нажмите на стрелочку фильтра в заголовке столбца и выберите
Числовые фильтры→Между.... - Введите нижнюю и верхнюю границы диапазона (например,
1000и5000). - Нажмите
ОК— Excel скрывает все строки за пределами указанного интервала.
✅ Плюсы метода: быстро, не требует формул, изменения сохраняются до отмены фильтра.
❌ Минусы: не подходит для автоматизации (нужно настраивать вручную при каждом обновлении данных), не позволяет проводить вычисления с отфильтрованными значениями.
2. Метод 2: Условное форматирование для визуального выделения
Когда требуется подсветить ячейки, попадающие в диапазон, но не скрывать остальные данные, пригодится условное форматирование. Этот способ идеален для дашбордов и отчётов, где важно сохранить контекст.
Инструкция:
- Выделите диапазон ячеек с числами (например,
B2:B100). - Перейдите на вкладку
Главная→Условное форматирование→Создать правило. - Выберите тип правила:
"Форматировать только ячейки, которые содержат". - В выпадающем списке укажите
"Значение между"и введите границы (например,20и30). - Нажмите
Формат, выберите цвет заливки (например, зелёный) и сохраните правило.
🔹 Дополнительные настройки:
- 🎨 Градиентная заливка: используйте
"Цветовые шкалы"для плавного перехода цветов (например, от красного для минимальных значений до зелёного для максимальных). - 📊 Гистограммы: в том же меню выберите
"Гистограммы", чтобы отобразить столбики прямо в ячейках. - 🔍 Динамические границы: вместо фиксированных чисел можно ссылаться на ячейки (например,
=И($B2>=$D$1;$B2<=$D$2), гдеD1иD2содержат границы).
Как удалить правило условного форматирования?
Перейдите в Условное форматирование → Управление правилами, выделите ненужное правило и нажмите Удалить правило. Чтобы удалить все правила для выделенного диапазона, выберите Очистить правила из выделенных ячеек.
3. Метод 3: Формулы для подсчёта и извлечения данных
Если нужно не просто выделить, а посчитать количество значений в диапазоне или извлечь их в отдельный список, пригодятся функции СЧЁТЕСЛИМН, СУММЕСЛИМН и ФИЛЬТР (в новых версиях Excel).
Пример 1. Подсчёт чисел между 10 и 20:
=СЧЁТЕСЛИМН(B2:B100; ">10"; B2:B100; "<20")
Функция вернёт количество ячеек в диапазоне B2:B100, которые больше 10 и меньше 20.
Пример 2. Сумма значений от 5000 до 10000:
=СУММЕСЛИМН(B2:B100; B2:B100; ">5000"; B2:B100; "<10000")
Пример 3. Извлечение данных в новый список (Excel 365/2021):
=ФИЛЬТР(B2:B100; (B2:B100>10)*(B2:B100<20))
Формула вернёт динамический массив всех значений из B2:B100, попадающих в интервал (10; 20).
⚠️ Внимание: В формулах массивов (как в примере с ФИЛЬТР) нельзя использовать запятые для разделения аргументов — только точку с запятой (;). В противном случае Excel выдаст ошибку #ИМЯ?.
4. Метод 4: Функция БДСУММ для работы с базой данных
Если ваши данные оформлены как база данных (с заголовками столбцов), удобно использовать функцию БДСУММ. Она позволяет суммировать значения, соответствующие нескольким критериям, включая диапазоны.
Пример: Суммируем продажи (столбец "Сумма") для товаров с ценой от 1000 до 5000 рублей (столбец "Цена").
Шаги:
- Создайте таблицу с данными (например,
A1:C100, гдеA1="Название",B1="Цена",C1="Сумма"). - В отдельном диапазоне (например,
E1:F2) создайте критерии:- В
E1введите"Цена"(заголовок столбца). - В
E2введите>=1000. - В
F2введите<=5000.
- В
=БДСУММ(A1:C100; "Сумма"; E1:F2)
📌 Важно: Заголовки в критериях (E1) должны точно совпадать с заголовками в исходной таблице (включая регистр и пробелы).
Убедитесь, что таблица имеет заголовки|Проверьте отсутствие пустых строк в данных|Критерии разместите отдельно от основной таблицы|Используйте абсолютные ссылки на критерии (например, $E$1:$F$2)
-->
5. Метод 5: Power Query для сложных диапазонов
Если вам нужно регулярно обрабатывать большие массивы данных с несколькими условиями (например, найти значения между 10 и 20 и соответствующие определённому региону), Power Query станет лучшим решением. Этот инструмент позволяет создавать многоступенчатые фильтры и автоматизировать обновление отчётов.
Пошаговая инструкция:
- Выделите исходную таблицу и перейдите на вкладку
Данные→Из таблицы/диапазона(в группеПолучить и преобразовать данные). - В открывшемся редакторе Power Query выделите столбец с числами.
- Нажмите на стрелочку фильтра →
Числовые фильтры→Между.... - Введите границы диапазона и нажмите
ОК. - При необходимости добавьте дополнительные фильтры (например, по текстовому столбцу).
- Нажмите
Закрыть и загрузить, чтобы вернуть отфильтрованные данные в Excel. - 🔄 Автоматическое обновление: при изменении исходных данных достаточно нажать
Обновить всена вкладкеДанные. - 📂 Многоуровневая фильтрация: можно комбинировать условия (например, диапазон чисел + текстовый фильтр + даты).
- 📈 Интеграция с Power Pivot: отфильтрованные данные можно сразу загружать в модель данных для дальнейшего анализа.
✨ Преимущества Power Query:
⚠️ Внимание: Если в исходных данных есть пустые ячейки или текст вместо чисел, Power Query может интерпретировать их как нули или выдавать ошибки. Перед фильтрацией очистите данные с помощью команд Заменить значения или Удалить ошибки.
Сравнение методов: какой выбрать?
Чтобы определиться с оптимальным способом, оцените свои задачи по трём критериям: объём данных, необходимость автоматизации и требования к визуализации. Ниже — сравнительная таблица:
| Метод | Сложность | Подходит для больших данных | Автоматизация | Визуализация | Когда использовать |
|---|---|---|---|---|---|
| Фильтр | ⭐ | ❌ (тормозит) | ❌ | Скрытие строк | Разовые задачи, небольшие таблицы |
| Условное форматирование | ⭐⭐ | ⚠️ (замедляет при >10к строк) | ❌ | Цветовая подсветка | Дашборды, визуальный анализ |
Формулы (СЧЁТЕСЛИМН, ФИЛЬТР) |
⭐⭐⭐ | ✅ | ✅ | ❌ | Динамические отчёты, вычисления |
БДСУММ |
⭐⭐ | ✅ | ⚠️ (требует обновления критериев) | ❌ | Структурированные базы данных |
| Power Query | ⭐⭐⭐⭐ | ✅✅ | ✅✅ | ❌ | Сложные фильтры, регулярная обработка |
Типичные ошибки и как их избежать
Даже опытные пользователи Excel иногда сталкиваются с проблемами при работе с диапазонами. Вот 5 самых распространённых ошибок и способы их решения:
- Ошибка #ЗНАЧ! в формулах:
Причина: В диапазоне есть текстовые значения вместо чисел.
Решение: Используйте функцию
ЕЧИСЛОдля проверки:=СЧЁТЕСЛИМН(B2:B100; ">10"; B2:B100; "<20"; B2:B100; "=*") - СЧЁТЕСЛИМН(B2:B100; ">10"; B2:B100; "<20"; B2:B100; "текст") - Фильтр не находит значения на границах:
Причина: По умолчанию фильтр
"Между..."не включает граничные значения. Чтобы включить их, используйте>=10и<=20вместо>10и<20. - Power Query не обновляет данные:
Причина: Отключено автоматическое обновление или изменён источник.
Решение: Перейдите на вкладку
Данные→Обновить всеили проверьте соединение с источником. - Формулы массивов тормозят:
Причина: В Excel 2019 и старше формулы типа
ФИЛЬТРмогут замедлять работу при >50к строк.Решение: Замените на
Power Queryили используйтеСУММПРОИЗВдля старых версий:=СУММПРОИЗВ(--(B2:B100>10); --(B2:B100<20); B2:B100) - Условное форматирование не применяется:
Причина: Формат ячеек установлен как
ТекстовыйвместоОбщийилиЧисловой.Решение: Выделите диапазон →
Главная→Формат→Формат ячеек→ выберитеЧисловой.
💡 Совет: Перед применением сложных фильтров всегда проверяйте тип данных в столбце. Для этого выделите диапазон и посмотрите на строку состояния Excel — там отображается Среднее, Количество чисел и т.д. Если Количество чисел меньше общего количества ячеек, в данных есть текст или ошибки.
FAQ: Ответы на частые вопросы
Можно ли найти значения между двумя датами?
Да, используйте те же методы, что и для чисел. Например, для подсчёта записей между 01.01.2023 и 31.12.2023:
=СЧЁТЕСЛИМН(A2:A100; ">01.01.2023"; A2:A100; "<31.12.2023")
Важно: Excel хранит даты как числа (количество дней с 01.01.1900), поэтому формулы работают корректно.
Как найти текстовые значения между двумя буквами алфавита?
Для текста используйте функции ПОИСК или КОДСИМВ. Например, чтобы найти слова, начинающиеся на буквы от "А" до "К":
=ФИЛЬТР(A2:A100; (КОДСИМВ(ЛЕВСИМВ(A2:A100))>=192)*(КОДСИМВ(ЛЕВСИМВ(A2:A100))<=202))
Здесь 192 и 202 — коды символов "А" и "К" в Windows-1251 (для UTF-8 используйте другие значения).
Почему функция ФИЛЬТР возвращает #КАЛК!
Ошибка #КАЛК! (или #CALC!) означает, что формула массива не может вернуть результат в выделенный диапазон. Решения:
- Убедитесь, что справа и снизу от формулы есть свободные ячейки для вывода данных.
- В Excel 2019 и старше используйте
@для привязки к первой ячейке диапазона:=ФИЛЬТР(@B2:B100; (B2:B100>10)*(B2:B100<20)) - Проверьте, нет ли в данных ошибок (
#ДЕЛ/0!,#ЗНАЧ!).
Как сделать динамический диапазон для границ?
Чтобы границы диапазона автоматически подтягивались из других ячеек, используйте ссылки. Например:
=СЧЁТЕСЛИМН(B2:B100; ">="&D1; B2:B100; "<="&D2)
Здесь D1 и D2 содержат нижнюю и верхнюю границы. При изменении значений в этих ячейках формула пересчитается автоматически.
Можно ли применить фильтр по диапазону к сводной таблице?
Да, но с оговорками:
- Создайте сводную таблицу на основе исходных данных.
- Перетащите числовое поле в область
Значенияи в областьФильтры. - Нажмите на стрелочку фильтра →
Фильтры значений→Между....
Ограничение: В сводных таблицах нельзя использовать формулы массивов или Power Query напрямую — только встроенные фильтры.