Возможности фильтрации Excel чрезвычайно полезны для быстрой организации и поиска нужных вам данных. Однако одним из ограничений является то, что вы не можете напрямую фильтровать по цвету заливки ячейки или цвету шрифта в фильтрах Excel по умолчанию. Поэтому, если у вас есть данные, отформатированные с помощью разных цветов текста или заливки, вы не можете просто отфильтровать ячейки по этому цвету.
В этой статье мы объясним причины, по которым Excel не поддерживает цветовую фильтрацию, и предоставим некоторые обходные пути, которые позволяют вам фильтровать ваши данные по цвету.
Чтобы понять, почему Excel не поддерживает цветовую фильтрацию, полезно немного узнать о том, как запрограммирована функциональность фильтра Excel. Когда вы включаете фильтрацию для диапазона данных в Excel, он добавляет раскрывающиеся стрелки в верхнюю строку, которые позволяют сортировать и фильтровать по значениям в каждом столбце. Фильтрация выполняется путем поиска ячеек, которые соответствуют (или не соответствуют) значениям, указанным вами в критериях фильтра.
Но цвета ячеек не считаются значениями. Цвет — это просто формат отображения, в то время как базовое значение — это то, что Excel ищет при фильтрации. Например, если у вас есть текст «Яблоки», окрашенный в красный цвет, и «Апельсины», окрашенный в оранжевый, фильтр видит их как текстовые строки, а не как цвета. Поэтому нет способа указать обычным фильтрам Excel показывать только ячейки, отформатированные определенным цветом.
Это еще одна причина, по которой фильтры Excel игнорируют цвета — форматы ячеек, такие как цвет, шрифты, границы, хранятся отдельно от самих значений. Форматирование цвета не является частью значения. При фильтрации вы фильтруете значения в ячейках.
Подумайте об этом так — скажем, вы скопировали отформатированный набор данных из Excel и вставили его в Блокнот. Вы потеряете все цвета, шрифты, границы и т. д. Но значения данных все равно останутся. Цвета не являются частью самих данных.
Таким образом, чтобы фильтровать по цвету, Excel потребуется совершенно отдельная система фильтрации, которая будет смотреть на форматирование цвета, а не на значения. И ей потребуется какой-то способ одновременно применять критерии значения и цвета, что значительно усложнит интерфейсы фильтров.
Теперь, когда мы объяснили, почему фильтрация Excel не может напрямую использовать цвет, вот несколько предлагаемых обходных путей, которые позволят вам эффективно фильтровать данные на основе цвета ячеек или цвета шрифта:
Одним из вариантов является применение условного форматирования с наборами значков, которые отображают значки непосредственно в ячейках на основе правил цвета. Эти значки будут отображаться в раскрывающихся списках фильтров, что позволит вам фильтровать по цвету таким образом.
Например, вы можете применить зеленые и красные наборы значков к ячейкам цветового кода. Тогда фильтрация значков позволит вам отображать только зеленые или красные ячейки.
Другой подход — добавить новый вспомогательный столбец и использовать формулы для возврата текстовой метки для цвета. Например, «Красный», «Синий», «Зеленый» и так далее. Затем вы можете отфильтровать этот столбец, чтобы отобразить только строки с определенной цветовой меткой.
Вот пример, где столбец B содержит цвета ячеек, а столбец C использует формулы, преобразующие цвет в текстовую метку, которую можно отфильтровать:
| A | B | C |
|---|---|---|
| Яблоко | Красный | |
| Банан | Желтый | |
| Черника | Синий |
Формула в C2 будет выглядеть так: =IF(B2="red","Red",IF(B2="blue","Blue","Yellow"))
А затем вы можете отфильтровать столбец C, чтобы показать только строки, где цветовая метка равна «Red», «Blue» и т. д.
Наконец, можно фильтровать по цвету в макросах VBA. Код VBA может проходить по всем ячейкам, проверять их цветовое форматирование и показывать/скрывать строки на основе обнаруженных цветов. Это требует больше усилий, чем предыдущие варианты, но обеспечивает наибольшую гибкость.
Вот пример кода VBA, который отфильтрует данные, чтобы показать только строки, в которых ячейка B содержит красный цвет:
Sub FilterByColor() Dim r as Range For Each r in Range("B1:B100") If r.Interior.ColorIndex 3 Then r.EntireRow.Hidden = True Else r.EntireRow.Hidden = False End If Next r End Sub Как видите, VBA предоставляет прямой доступ для проверки и обработки цветового форматирования ячеек. Поэтому он может применять цветовой фильтр без необходимости в отдельном вспомогательном столбце.
Некоторые сторонние надстройки Excel предоставляют более расширенные параметры фильтрации, включая фильтрацию по цвету шрифта, цвету заливки или цвету ячейки. Например, в Kutools для Excel есть опция Фильтр по цвету шрифта/ячейки.
А в других приложениях для работы с электронными таблицами, таких как Google Sheets, Smartsheet и Airtable, есть встроенные опции для фильтрации представлений по цвету ячеек или шрифта.
Поэтому, если фильтрация данных по цвету важна для вашей работы, стоит рассмотреть возможность перехода на другой инструмент для работы с электронными таблицами.
Фильтрация по цвету — это часто запрашиваемая функция в Excel, но, к сожалению, она не предоставляется фильтрами по умолчанию. Это связано с тем, как Excel отделяет форматирование, например цвета, от базовых значений, которые фильтры фактически ищут.
Но с небольшим обходным решением, таким как условное форматирование, вспомогательные столбцы или макросы VBA, вы все равно можете получить эффект фильтрации на основе цвета. Это позволяет фильтровать листы Excel на основе цвета заливки ячеек или цвета шрифта.
Хотя фильтрация по цвету изначально не поддерживается, надеемся, эти предложения дадут вам некоторые варианты для получения аналогичной функциональности. Дайте мне знать, если у вас есть другие креативные идеи по фильтрации по цвету в Excel!