Как сделать фильтрацию по цвету в excel?
Содержание
Рассмотрим основные способы фильтрации и сортировки данных по цвету (как по заливке ячейки, так и по заливке текста) в Excel.
Для начала вспомним, в чем же польза от сортировки и фильтрации данных в Excel, и зачем она вообще нужна?
При проведении анализа данных сортировка и фильтрация помогают структурировать, упорядочивать данные или производить поиск.
К примеру, ячейки или диапазоны данных можно окрашивать в различные цвета с целью выделения конкретных данных, которые в последствии можно дополнительно проанализировать.
При этом фильтрация позволяет показать только те данные, которые удовлетворяют заданным критериям, и соответственно, скрыть те данные, которые не подходят по условию.
Сортировка же показывает все данные, однако упорядочивает их согласно заданным критериям.
В общем случае в Excel можно сортировать по алфавиту (для текста), по возрастанию или убыванию (для чисел), однако давайте познакомимся с еще одним вариантом сортировки — по цвету, и рассмотрим 2 способа, позволяющие сортировать и применять фильтр к данным:
- Автофильтр и инструмент «Настраиваемая сортировка» (доступен начиная с версии Excel 2007);
- Применение пользовательских функций.
Стандартный фильтр и сортировка по цвету в Excel
Предположим, что у нас имеется таблица с наименованиями и выручкой по различным продуктам, где определенные категории дополнительно выделены цветом заливки ячейки и текста:
Добавим фильтр к диапазону с таблицей (выбираем вкладку Главная -> Редактирование -> Сортировка и фильтр или воспользуемся сочетанием клавиш Ctrl + Shift + L), далее щелкаем по стрелке в заголовке столбца и в выпадающем списке можем выбрать любой вариант сортировки или фильтрации:
Из недостатков данного способа фильтрации можно отметить невозможность отфильтровать диапазон по нескольким цветам.
С сортированием подобных проблем не возникает, для этого необходимо последовательно отсортировать данные по заданным цветам.
Например, если мы хотим, чтобы сначала в таблице были показаны ячейки с красной заливкой, а затем с синей, то на первом шаге сделаем сортировку по синей заливке (т.е. сортируем данные в обратном порядке — если в конечном итоге нужен порядок ячеек красный -> синий, то сортируем в порядке синий -> красный):
В результате синие ячейки расположились вверху таблицы, однако остальные идут вразнобой и не упорядочены.
На втором шаге повторно произведем сортирование данных, но на этот раз выберем в качестве критерия сортировки красную заливку:
Аналогичного результата также можно добиться отсортировав данные с помощью инструмента Настраиваемая сортировка (также выбираем вкладку Главная -> Редактирование -> Сортировка и фильтр), где можно настроить различные дополнительные параметры и уровни сортировки:
Сортировка и фильтр по цвету с помощью функций
Как мы выяснили стандартным способом отфильтровать данные по нескольким цветам не получится, однако это ограничение можно обойти с помощью создания дополнительного параметра с цветом заливки (или текста), по которому далее и будем сортировать или фильтровать данные.
Функция цвета заливки ячейки на VBA
Для создания пользовательских функций перейдем в редактор Visual Basic (комбинация клавиш Alt + F11), создадим новый модуль и добавим туда код следующей функции:
Public Function ColorFill(MyCell As Range) ColorFill = MyCell.Interior.ColorIndex End Function |
Функция ColorFill в качестве значения возвращает числовой код цвета заливки ячейки, она очень схожа с функцией, которую мы использовали при подсчете количества и суммирования ячеек по цвету.
Вернемся в Excel и применим новую функцию ColorFill — либо непосредственно введем формулу в ячейку, либо вызовем ее с помощью мастера функций (выбрав из категории Определенные пользователем).
В дополнительном столбце прописываем код заливки ячейки:
Далее мы можем сортировать или применять фильтр к данным уже по новому параметру.
К примеру, для того, чтобы отфильтровать таблицу по красной и зеленой заливке ячеек, в фильтре укажем соответствующие каждой заливке числовые коды:
Функция цвета текста ячейки на VBA
В случае если мы хотим проанализировать ячейки по цвету текста, то нужно будет внести небольшие изменения в код функции:
Public Function ColorFont(MyCell As Range) ColorFont = MyCell.Font.ColorIndex End Function |
Функция ColorFont в качестве значения возвращает числовой код цвета шрифта ячейки и принцип ее применения аналогичен примеру рассмотренному выше.
Замечания
К сожалению, при работе с пользовательскими функциями ColorFill и ColorFont есть несколько подводных камней:
- Они не работают с ячейками, в которых заливка определяется условным форматированием;
- При изменении раскраски ячейки в Excel формулы автоматически не пересчитываются, в связи с этим пересчет нужно сделать самостоятельно (Shift + F9 для пересчета формул только на активном листе, F9 — для всей книги).
Удачи вам и до скорых встреч на страницах блога Tutorexcel.ru!
Создатели Excel решили, начиная от 2007-ой версии ввести возможность сортировки данных по цвету. Для этого послужило поводом большая потребность пользователей предыдущих версий, упорядочивать данные в такой способ. Раньше реализовать сортировку данных относительно цвета можно было только с помощью создания макроса VBA. Создавалась пользовательская функция и вводилась как формула под соответствующим столбцом, по которому нужно было выполнить сортировку. Теперь такие задачи можно выполнять значительно проще и эффективнее.
Сортировка по цвету ячеек
Пример данных, которые необходимо отсортировать относительно цвета заливки ячеек изображен ниже на рисунке:
Чтобы расположить строки в последовательности: зеленый, желтый, красный, а потом без цвета – выполним следующий ряд действий:
- Щелкните на любую ячейку в области диапазона данных и выберите инструмент: «ДАННЫЕ»-«Сортировка и фильтр»-«Сортировка».
- Убедитесь, что отмечена галочкой опция «Мои данные содержат заголовки», а после чего из первого выпадающего списка выберите значение «Наименование». В секции «Сортировка» выберите опцию «Цвет ячейки». В секции «Порядок» раскройте выпадающее меню «Нет цвета» и нажмите на кнопку зеленого квадратика.
- Нажмите на кнопку «Копировать уровень» и в этот раз укажите желтый цвет в секции «Порядок».
- Аналогичным способом устанавливаем новое условие для сортировки относительно красного цвета заливки ячеек. И нажмите на кнопку ОК.
Ожидаемый результат изображен ниже на рисунке:
Аналогичным способом можно сортировать данные по цвету шрифта или типу значка которые содержат ячейки. Для этого достаточно только указать соответствующий критерий в секции «Сортировка» диалогового окна настройки условий.
Фильтр по цвету ячеек
Аналогично по отношению к сортировке, функционирует фильтр по цвету. Чтобы разобраться с принципом его действия воспользуемся тем же диапазоном данных, что и в предыдущем примере. Для этого:
- Перейдите на любую ячейку диапазона и воспользуйтесь инструментом: «ДАННЫЕ»-«Сортировка и фильтр»-«Фильтр».
- Раскройте одно из выпадающих меню, которые появились в заголовках столбцов таблицы и наведите курсор мышки на опцию «Фильтр по цвету».
- Из всплывающего подменю выберите зеленый цвет.
В результате отфильтруються данные и будут отображаться только те, которые содержать ячейки с зеленым цветом заливки:
Обратите внимание! В режиме автофильтра выпадающие меню так же содержит опцию «Сортировка по цвету»:
Как всегда, Excel нам предоставляет несколько путей для решения одних и тех же задач. Пользователь выбирает для себя самый оптимальный путь, плюс необходимые инструменты всегда под рукой.
Из этой краткой инструкции Вы узнаете, как быстро сортировать по цвету заливки и шрифта ячейки на листе в Excel 2010 и 2013.
В одной из недавних статей мы рассматривали различные способы, как в Excel узнать количество ячеек определённого цвета и вычислить сумму значений в них. Если Вы не упустили шанс прочитать ту статью, у Вас, вероятно, возник вопрос, почему мы не уделили внимание сортировке и фильтрации ячеек по их цвету. Причина в том, что сортировка ячеек по цвету в Excel требует немного другого подхода. Далее мы рассмотрим этот вопрос подробнее.
Сортировка в Excel по цвету заливки ячейки
Сортировка ячеек в Excel по цвету заливки – это одна из простейших операций, наравне с подсчётом количества ячеек, суммированием и даже фильтрацией. Не потребуются ни код VBA, ни формулы. Мы просто воспользуемся инструментом «Настраиваемая сортировка», который присутствует во всех современных версиях Excel 2013, 2010 и 2007.
- Выделите свою таблицу или диапазон ячеек.
- На вкладке Главная (Home) в разделе Редактирование (Editing) нажмите кнопку Сортировка и фильтр (Sort & Filter) и в появившемся меню выберите Настраиваемая сортировка (Custom Sort).
- В диалоговом окне Сортировка (Sort) настройте параметры слева направо:
- Укажите Столбец (Column), по которому нужно выполнить сортировку (в нашем примере это столбец Delivery);
- В поле Сортировка (Sort On) выберите Цвет ячейки (Cell Color);
- Установите цвет ячеек, которые должны быть вверху;
- В крайнем правом выпадающем списке выберите Сверху (On top).
- Чтобы добавить ещё один уровень сортировки с такими же настройками, нажмите кнопку Копировать уровень (Copy Level). Затем в столбце Порядок (Order) выберите второй по порядку цвет. Таким же образом создайте столько уровней сортировки, сколько цветов надо отсортировать в таблице.
- Нажмите ОК и проверьте в правильном ли порядке расположились строки с данными.
В нашей таблице вверх переместились строки со значением Past Due (столбец Delivery), за ними следуют строки со значениями Due in и в конце – строки со значением Delivered. Все в точности, как мы настроили в диалоговом окне Сортировка (Sort).
Совет: Если ячейки раскрашены в большое количество различных цветов – не обязательно создавать правило для каждого. Настройте правила сортировки только для тех цветов, которыми отмечены действительно важные данные (в нашем примере это строки со значением Past Due), а все остальные оставьте как есть.
Если требуется отобрать ячейки только одного цвета, то можно воспользоваться ещё более быстрым способом. Кликните по стрелке автофильтра рядом с заголовком столбца, в котором нужно произвести сортировку. В открывшемся меню нажмите Сортировка по цвету (Sort by Color) и выберите, какого цвета ячейки должны оказаться вверху, а какие – внизу. Кстати, выбрав в этом меню пункт Пользовательская сортировка (Custom Sort), как показано на рисунке ниже, можно быстро перейти к диалоговому окну Сортировка (Sort).
Сортировка ячеек в Excel по цвету шрифта
Сортировка ячеек в Excel по цвету шрифта выполняется точно так же, как сортировка по цвету заливки. Снова используем инструмент Настраиваемая сортировка (Custom Sort), который находится на вкладке Главная (Home) в меню Сортировка и фильтр (Sort & Filter), но на этот раз в поле Сортировка (Sort On) выбираем Цвет шрифта (Font Color).
Если требуется отобрать ячейки с одним определённым цветом шрифта, то можно снова использовать автофильтр Excel:
Кроме упорядочивания ячеек по цвету заливки и цвету шрифта, встречаются некоторые другие задачи, когда возможность сортировать по цвету оказывается очень удобной.
Сортировка ячеек по значку
Настроим, для примера, условное форматирование с использованием наборов значков по столбцу Qty., где указано количество заказов (см. рисунок ниже):
Как видите, мы отметили крупные заказы (с количеством более 6) красными значками, средние заказы отмечены жёлтыми значками и самые маленькие – зелёными значками. Если нужно расположить самые важные заказы в начале списка, воспользуемся инструментом Настраиваемая сортировка (Custom Sort), как это было описано выше, и настроим сортировку по признаку – Значок ячейки (Cell Icon).
Достаточно указать очерёдность для первых двух (из трёх) значков, и все строки с зелёными значками автоматически переместятся вниз таблицы.
Как в Excel фильтровать ячейки по цвету заливки
Если нужно отфильтровать ячейки в заданном столбце по цвету заливки, используйте инструмент Фильтр по цвету (Filter by Color), доступный в Excel 2010 и 2013.
Для работы этого инструмента существует ограничение – возможно отфильтровать одновременно только один цвет. Если нужно настроить фильтр для данных по двум или более цветам, выполните следующие шаги:
- Создайте вспомогательный столбец в конце таблицы или рядом со столбцом, в котором будете настраивать фильтр. Мы назовём его Filter by color.
- Во вторую ячейку только что добавленного столбца введите формулу:
=GetCellColor(F2)
Здесь F – это столбец, содержащий разукрашенные ячейки, и по которому нужно настроить фильтр, а GetCellColor() – пользовательская функция со следующим кодом VBA:
Function GetCellColor(xlRange As Range) Dim indRow, indColumn As Long Dim arResults() Application.Volatile If xlRange Is Nothing Then Set xlRange = Application.ThisCell End If If xlRange.Count > 1 Then ReDim arResults(1 To xlRange.Rows.Count, 1 To xlRange.Columns.Count) For indRow = 1 To xlRange.Rows.Count For indColumn = 1 To xlRange.Columns.Count arResults(indRow, indColumn) = xlRange(indRow, indColumn).Interior.Color Next Next GetCellColor = arResults Else GetCellColor = xlRange.Interior.Color End If End Function
- Скопируйте эту формулу во все ячейки столбца Filter by color.
- Примените автофильтр Excel и затем выберите нужные цвета по их кодам в выпадающем меню автофильтра.
В результате получится вот такая таблица, где показаны строки только с двумя выбранными цветами заливки:
На этом, пожалуй, всё на сегодня, благодарю за внимание!
Урок подготовлен для Вас командой сайта office-guru.ru
Источник: /> Перевел: Антон Андронов
Правила перепечаткиЕще больше уроков по Microsoft Excel
Оцените качество статьи. Нам важно ваше мнение: