Как сделать фильтрацию по цене в Excel: 5 способов с примерами

Если в вашей таблице Excel сотни строк с ценами, а нужно быстро найти товары в диапазоне от 500 до 2000 рублей, стандартный автофильтр не всегда справляется. Проблема в том, что при выборе условия "больше чем" или "между" Excel может игнорировать ячейки с текстовыми значениями (например, "по запросу"), ломать форматирование или выдавать ошибку #ЗНАЧ! при неверном формате данных. Чтобы избежать этих подводных камней, мы разберём 5 рабочих методов — от базового автофильтра до продвинутых формул с ФИЛЬТР() и Power Query.

В 90% случаев пользователи допускают одну и ту же ошибку: не преобразуют столбец с ценами в числовой формат перед фильтрацией. Это приводит к тому, что Excel воспринимает "1 500" как текст, а не как число 1500, и фильтр просто не работает. Ниже вы найдёте чек-лист для подготовки данных и пошаговые инструкции для каждого метода — с учётом версий Excel 2016–2026 и Microsoft 365.

1. Подготовка данных перед фильтрацией

Прежде чем настраивать фильтр по цене, убедитесь, что ваши данные соответствуют трём ключевым требованиям:

  • 📊 Формат ячеек: Столбец с ценами должен иметь числовой формат (не текстовый и не "Общий"). Проверить это можно по выравниванию: числа выравниваются по правому краю, текст — по левому.
  • 🔍 Единообразие: Все цены должны быть в одной валюте и без лишних символов (например, "1500 руб." → "1500"). Используйте функцию =ЗАМЕНИТЬ() для очистки.
  • 🚫 Пустые ячейки: Если в столбце есть пустые строки или текст типа "Договорная", Excel пропустит их при числовой фильтрации. Решение — заполнить их нулями или использовать расширенный фильтр.

Чтобы преобразовать текстовые цены в числа:

  1. Выделите столбец с ценами.
  2. Перейдите на вкладку Главная → группа Число → выберите формат Числовой.
  3. Если появится значок ошибки (🔺), кликните на него и выберите Преобразовать в число.

Выделите столбец с ценами и проверьте формат (должен быть "Числовой")|

Удалите лишние символы (валюту, пробелы) с помощью =ЗАМЕНИТЬ()|

Заполните пустые ячейки нулями или текстом "Нет данных"|

Убедитесь, что в столбце нет объединённых ячеек

-->

⚠️ Внимание: Если после преобразования цены отображаются как 1.5e+03 (научный формат), увеличьте ширину столбца или измените формат на Числовой с 0 десятичных знаков.

2. Базовый автофильтр: фильтрация "больше чем" и "между"

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

  1. Выделите заголовок столбца с ценами (например, ячейку B1 с названием "Цена").
  2. На вкладке Данные нажмите Фильтр (или используйте горячие клавиши Ctrl+Shift+L).
  3. Кликните на стрелку фильтра в ячейке B1 и выберите Числовые фильтрыМежду....
  4. Введите нижнюю и верхнюю границу (например, 500 и 2000) и нажмите ОК.

Для фильтрации "больше чем" или "меньше чем" выберите соответствующие пункты в меню Числовые фильтры. Если нужно показать только топ-10 самых дорогих товаров, используйте опцию Первые 10....

Тип фильтра Условие Пример Результат
Между =И(цена>=500; цена<=2000) 500 и 2000 Товары от 500 до 2000 руб.
Больше чем =цена>1000 1000 Товары дороже 1000 руб.
Первые 10 =НАИБОЛЬШИЙ(диапазон;10) 10 элементов 10 самых дорогих товаров
⚠️ Внимание: Автофильтр не работает с объединёнными ячейками в заголовках. Если у вас объединены ячейки A1:B1, разъедините их перед фильтрацией (ГлавнаяОбъединить и поместить в центре).

Автофильтр|Расширенный фильтр|Сводные таблицы|Формулы (ФИЛЬТР, ДВССЫЛ)|Power Query-->

3. Расширенный фильтр: для сложных условий

Если нужно отфильтровать цены с дополнительными критериями (например, "цена от 500 до 2000 и категория = 'Электроника'"), используйте расширенный фильтр. Он позволяет:

  • 🔄 Применять несколько условий одновременно (логическое И/ИЛИ).
  • 📤 Копировать отфильтрованные данные на другой лист.
  • 🔍 Работать с динамическими диапазонами (например, фильтровать только видимые строки после автофильтра).

Пошаговая инструкция:

  1. Создайте диапазон условий (например, в ячейках D1:E2):
    
    

    D1: Цена | E1: Категория

    D2: >=500 | E2: Электроника

  2. Перейдите на вкладку ДанныеРасширенный фильтр.
  3. В поле Исходный диапазон укажите вашу таблицу (например, $A$1:$C$100).
  4. В поле Диапазон условий укажите $D$1:$E$2.
  5. Выберите Фильтровать список на месте или Скопировать результат в другое место (указав целевую ячейку).

Для условия ИЛИ (например, "цена < 500 или категория = 'Распродажа'") повторите заголовки в диапазоне условий:


D1: Цена | E1: Категория

D2: <500 | E2:

D3: | E3: Распродажа

Пример формулы для динамического диапазона условий

Если ваши цены находятся в столбце B, а критерии фильтра — в ячейках D2:D3 (например, D2=500, D3=2000), используйте эту формулу для автоматического обновления диапазона условий:

=И(B2>=$D$2; B2<=$D$3)

Скопируйте её в дополнительный столбец и отфильтруйте по значению ИСТИНА.

4. Фильтрация с помощью сводных таблиц

Сводные таблицы удобны, когда нужно не только отфильтровать цены, но и проанализировать данные — например, посчитать количество товаров в каждом ценовом диапазоне или среднюю цену по категориям. Алгоритм:

  1. Выделите исходную таблицу (включая заголовки).
  2. На вкладке Вставка нажмите Сводная таблица.
  3. В открывшемся окне выберите, куда поместить таблицу (новый лист или текущий).
  4. В области Строки перетащите поле с категориями (если есть), в Значения — поле с ценами (Excel автоматически посчитает сумму).
  5. Чтобы отфильтровать по цене, перетащите поле "Цена" в область Фильтры, затем кликните на стрелку фильтра и выберите Числовые фильтры.

Преимущество сводных таблиц — автоматическое обновление при изменении исходных данных. Достаточно кликнуть правой кнопкой по таблице и выбрать Обновить. Также вы можете группировать цены по диапазонам:

  • Кликните правой кнопкой по любой цене в сводной таблице.
  • Выберите Группировать.
  • Укажите начало первого диапазона (например, 0), конец (например, 5000) и шаг (например, 1000).

5. Динамическая фильтрация с формулами (Excel 365 и 2021)

В новых версиях Excel появились функции ФИЛЬТР() и ДВССЫЛ(), которые позволяют создавать динамические фильтры без макросов. Например, чтобы вывести все товары с ценой от 500 до 2000, используйте:

=ФИЛЬТР(A2:B100; (B2:B100>=500)*(B2:B100<=2000); "Нет данных")

Где:

  • A2:B100 — диапазон с данными (столбец A — названия, B — цены).
  • (B2:B100>=500)*(B2:B100<=2000) — условие фильтра (логическое И).
  • "Нет данных" — сообщение, если ничего не найдено.

Для гибкой фильтрации с изменяемыми границами:

  1. Создайте ячейки для ввода минимальной и максимальной цены (например, D1 и E1).
  2. Используйте формулу:
    =ФИЛЬТР(A2:B100; (B2:B100>=$D$1)*(B2:B100<=$E$1); "Нет данных")

Если у вас Excel 2019 или старше, замените ФИЛЬТР() на комбинацию ИНДЕКС() + ПОИСКПОЗ():

=ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$100; НАЙТИ(ИСТИНА; --(($B$2:$B$100>=$D$1)*($B$2:$B$100<=$E$1)); 0)); ""); "")
⚠️ Внимание: Формулы массивов (как ФИЛЬТР()) могут замедлять работу файла, если данных больше 10 000 строк. В таких случаях используйте Power Query.

6. Фильтрация через Power Query (для больших таблиц)

Power Query — это инструмент для обработки больших объёмов данных, встроенный в Excel 2016+ и Microsoft 365. Он позволяет:

  • 🔄 Фильтровать цены без формул и без замедления файла.
  • 📤 Сохранять шаги фильтрации для повторного использования.
  • 🔧 Очищать данные (удалять лишние символы, заменять форматы) перед фильтрацией.

Инструкция:

  1. Выделите исходную таблицу и перейдите на вкладку ДанныеИз таблицы/диапазона (в группе Получить и преобразовать данные).
  2. В открывшемся редакторе Power Query кликните на стрелку рядом с заголовком столбца "Цена".
  3. Выберите Числовые фильтрыМежду... и укажите границы.
  4. Для дополнительных условий (например, фильтрации по категории) повторите шаг 3 для других столбцов.
  5. Нажмите Закрыть и загрузить, чтобы вернуть отфильтрованные данные на новый лист.

Преимущество Power Query — неразрушающая фильтрация: исходные данные остаются нетронутыми, а отфильтрованный результат загружается на отдельный лист. Чтобы обновить фильтр при изменении исходных данных, кликните правой кнопкой по таблице и выберите Обновить.

7. Типичные ошибки и как их исправить

Даже опытные пользователи сталкиваются с проблемами при фильтрации цен. Вот самые распространённые ошибки и их решения:

Ошибка Причина Решение
Фильтр не находит цены в диапазоне Столбец имеет текстовый формат Преобразуйте в числовой формат (ГлавнаяФорматЧисловой)
Появляется #ЗНАЧ! В столбце есть текст (например, "Договорная") Замените текст на 0 или используйте расширенный фильтр с условием =ЕЧИСЛО(B2)
Фильтр игнорирует объединённые ячейки Объединение в заголовках или данных Разъедините ячейки (ГлавнаяОбъединить и поместить в центре)
Сводная таблица не обновляется Изменились исходные данные, но не обновлён кеш Кликните правой кнопкой по таблице → Обновить

Если после применения фильтра данные "исчезли", проверьте:

  • 🔹 Не скрыты ли строки вручную (кликните на сером квадратике слева от номеров строк и выберите Отменить скрытие).
  • 🔹 Нет ли в данных символов, которые Excel воспринимает как разделители (например, запятая в "1,500" вместо точки).
  • 🔹 Не включён ли режим Только видимые ячейки в параметрах фильтра (это может скрывать часть данных).

FAQ: Частые вопросы по фильтрации цен

Можно ли отфильтровать цены по нескольким диапазонам одновременно (например, 100–500 и 2000–5000)?

Да, для этого используйте расширенный фильтр с условием ИЛИ:

  1. Создайте диапазон условий с повторяющимися заголовками:
    
    

    D1: Цена | E1: Цена

    D2: >=100| E2: >=2000

    D3: <=500| E3: <=5000

  2. Примените расширенный фильтр, указав диапазон $D$1:$E$3.

Или используйте формулу в Excel 365:

=ФИЛЬТР(A2:B100; (B2:B100>=100)(B2:B100<=500)+(B2:B100>=2000)(B2:B100<=5000); "Нет данных")

Как отфильтровать цены с учётом скидки (например, показать товары, которые после скидки 20% попадают в диапазон 500–1000)?

Добавьте вспомогательный столбец с расчётной ценой:

  1. В ячейке C2 введите формулу =B2*0,8 (где 0,8 — это 100% - 20%).
  2. Скопируйте формулу на все строки.
  3. Примените автофильтр к столбцу C с условием "между 500 и 1000".

Для динамического расчёта используйте Power Query: добавьте пользовательский столбец с формулой =[Цена]*0.8 и отфильтруйте по нему.

Почему после фильтрации в сводной таблице пропали некоторые данные?

Это происходит из-за:

  • 🔹 Скрытых строк в исходных данных (сводная таблица игнорирует скрытые ячейки по умолчанию). Решение: отмените скрытие или настройте параметры сводной таблицы (ПараметрыДля скрытых строк: показывать данные).
  • 🔹 Ошибок в данных (например, текст вместо чисел). Решение: очистите данные через Power Query или функцию =ЕЧИСЛО().
  • 🔹 Неправильных групп. Если вы группировали цены по диапазонам, проверьте границы групп (кликните правой кнопкой по группировке → Изменить группировку).
Как сохранить отфильтрованные данные на отдельном листе, чтобы они обновлялись автоматически?

Используйте один из методов:

  1. Расширенный фильтр:
    1. Настройте диапазон условий (как в разделе 3).
    2. В окне расширенного фильтра выберите Скопировать результат в другое место.
    3. Укажите целевую ячейку (например, $G$1).
  2. Power Query:
    1. Загрузите данные в Power Query и примените фильтр.
    2. Нажмите Закрыть и загрузить в... → выберите Новый лист.
    3. Чтобы обновить, кликните правой кнопкой по таблице → Обновить.
  3. Формулы (Excel 365):
    =ФИЛЬТР(Таблица1; (Таблица1[Цена]>=$D$1)*(Таблица1[Цена]<=$E$1); "Нет данных")

    где $D$1 и $E$1 — ячейки с границами диапазона.

Можно ли фильтровать цены по процентилям (например, показать товары дороже 75% остальных)?

Да, для этого:

  1. Вычислите процентиль с помощью функции =ПЕРСЕНТИЛЬ.ВКЛ(диапазон_цен; 0,75).
  2. Используйте результат в фильтре:
    =ФИЛЬТР(A2:B100; B2:B100>ПЕРСЕНТИЛЬ.ВКЛ($B$2:$B$100; 0,75); "Нет данных")

Для сводных таблиц добавьте вычисляемое поле с формулой =ЕСЛИ([Цена]>ПЕРСЕНТИЛЬ.ВКЛ(Цена;0,75); "Дороже 75%"; "Дешевле") и отфильтруйте по нему.