Применение условного форматирования к диапазонам Excel
Библиотека JavaScript Excel предоставляет API для применения условного форматирования к диапазонам данных в книгах. Эта функция упрощает визуальный анализ больших наборов данных. Форматирование также динамически обновляется с учетом изменений в диапазоне.
В этой статье рассматривается условное форматирование в контексте надстроек JavaScript для Excel. В указанных ниже статьях представлены подробные сведения о всех возможностях условного форматирования в Excel.
Программное управление условным форматированием
Свойство Range.conditionalFormats — это коллекция объектов ConditionalFormat, применяемых к диапазону. Объект ConditionalFormat содержит несколько свойств, определяющих применяемый формат на основе ConditionalFormatType.
- cellValue
- colorScale
- custom
- dataBar
- iconSet
- preset
- textComparison
- topBottom
У каждого из этих свойств форматирования есть соответствующий вариант *OrNullObject . Дополнительные статьи об этом шаблоне в разделе * Методы OrNullObject.
Для объекта ConditionalFormat можно установить только один тип формата. Это определено свойством type , которое является значением перечисления объекта ConditionalFormatType. Параметр type устанавливается при добавлении условного форматирования к диапазону.
Создание правил условного форматирования
Условное форматирование добавляется к диапазону с помощью conditionalFormats.add . После добавления можно задать свойства, относящиеся к условному форматированию. В примерах ниже показано создание различных типов форматирования.
Значение ячейки
При условном форматировании значения ячейки применяется пользовательский формат на основе результатов одной или двух формул в ConditionalCellValueRule. Свойство operator является оператором ConditionalCellValueOperator, который определяет, как итоговое выражение связано с форматированием.
В приведенном ниже примере показано применение красного шрифта ко всем значениям диапазона, которые меньше нуля.
Цветовая шкала
При условном форматировании с использованием цветовой шкалы применяется цветовой градиент в диапазоне данных. Свойство criteria в ColorScaleConditionalFormat определяет три точки ConditionalColorScaleCriterion: minimum , maximum и (при желании) midpoint . У каждой точки условия есть три свойства:
- color — HTML-код цвета для конечной точки.
- formula — число или формула, представляющая значение конечной точки. Оно будет равным null , если type имеет значение lowestValue или highestValue .
- type — способ оценки формулы. highestValue и lowestValue относятся к значениям в форматируемом диапазоне.
В приведенном ниже примере показан диапазон, окрашенный с переходом от синего к желтому и красному цвету. Обратите внимание, что minimum и maximum являются минимальным и максимальным значением соответственно, и для них используются формулы null . Для значения midpoint используется тип percentage с формулой "=50" , чтобы самая желтая ячейка соответствовала среднему значению.
Пользовательское
При пользовательском условном форматировании применяется пользовательский формат к ячейкам на основе формулы произвольной сложности. Объект ConditionalFormatRule позволяет определять формулу в разных нотациях:
- formula — стандартная нотация.
- formulaLocal — Локализовано на основе языка пользователя.
- formulaR1C1 — нотация R1C1.
В приведенном ниже примере зеленым цветом окрашен шрифт ячеек с более высокими значениями, чем в ячейках слева.
Гистограмма
При условном форматировании с использованием гистограмм они добавляются к ячейкам. По умолчанию минимальное и максимальное значения в диапазоне создают границы и пропорциональные размеры гистограмм. Объект DataBarConditionalFormat обладает несколькими свойствами для управления внешним видом панели.
В приведенном ниже примере используется форматирование с помощью гистограмм с заполнением слева направо.
Набор значков
При условном форматировании с набором значков используются значки Excel для выделения ячеек. Свойство criteria — это массив объекта ConditionalIconCriterion, определяющий добавляемый символ и условия для добавления. Этот массив автоматически заполняется элементами условия со свойствами по умолчанию. Отдельные свойства не могут быть перезаписаны. Вместо этого необходимо заменить весь объект условия.
В приведенном ниже примере показано применение в диапазоне набора из трех значков с треугольниками.
Готовые условия
При условном форматировании с готовыми условиями применяется пользовательский формат к диапазону на основе выбранного стандартного правила. Эти правила определяются с помощью ConditionalFormatPresetCriterion в ConditionalPresetCriteriaRule.
В следующем примере цвет шрифта белый, где значение ячейки по крайней мере на одно стандартное отклонение выше среднего диапазона.
Сравнение текста
При условном форматировании со сравнением текста используется сравнение строк в качестве условия. Свойство rule является объектом ConditionalTextComparisonRule, определяющим строку для сравнения с ячейкой и оператор для указания типа сравнения.
В следующем примере форматы цвета шрифта красный, когда текст ячейки содержит "Задержки".
Верхнее или нижнее значение
При условном форматировании верхнего или нижнего значения применяется форматирование к наибольшему или наименьшему значению в диапазоне. Свойство rule , являющееся типом ConditionalTopBottomRule, указывает основание для условия (максимальное или минимальное значение), а также применение ранжированной или процентной оценки.
В приведенном ниже примере применяется зеленое выделение к ячейке с максимальным значением в диапазоне.
Разные форматирования и приоритет
К диапазону можно применять несколько типов условного форматирования. Если форматы содержат конфликтующие элементы, например разный цвет шрифта, только один формат применяет этот конкретный элемент. Приоритет определяется свойством ConditionalFormat.priority . Приоритет — это число (равное индексу в ConditionalFormatCollection ), которое можно установить при создании формата. Чем ниже значение priority , тем выше приоритет формата.
В приведенном ниже примере показан выбор цвета шрифта при конфликте между двумя форматами. Для отрицательных чисел применяется полужирный шрифт, но НЕ красный, так как приоритет получает формат, устанавливающий для них синий цвет шрифта.
Взаимоисключающие условные форматирования
Свойство stopIfTrue объекта ConditionalFormat не позволяет применять к диапазону условное форматирование с более низким приоритетом. Если при сопоставлении с диапазоном применяется условное форматирование со свойством stopIfTrue === true , последующие условные форматирования не применяются, даже если их элементы не вступают в противоречие.
В приведенном ниже примере показано добавление в диапазон двух условных форматов. Для отрицательных чисел будет использоваться синий шрифт со светло-зеленым фоном, независимо от того, выполняются ли условия другого формата.
Условное форматирование строки в Excel
Условное форматирование всей или части строки на листе Excel в зависимости от содержимого одной или более ячеек. Примеры условного форматирования.
Условное форматирование всей строки
Пример условного форматирования всей строки на листе Excel в зависимости от содержимого одной ячейки в этой строке.
Условие примера
- Заливка строки зеленым фоном, если в третьей ячейке (столбец «C») этой строки содержится значение «Зеленый».
- Заливка строки голубым фоном, если в третьей ячейке (столбец «C») этой строки содержится значение «Голубой».
Решение примера
1. Правило условного форматирования будет применено ко всему рабочему листу Excel, если перед его созданием выделить весь лист. Быстро это можно сделать, нажав на треугольник в верхнем левом углу на пересечении наименований строк и столбцов.
2. Нажимаем кнопку «Условное форматирование» на ленте инструментов «Главная» и выбираем ссылку «Создать правило…»:
3. В окне «Создание правила форматирования» выбираем строку «Использовать формулу для определения форматируемых ячеек»:
4. В поле «Форматировать значения, для которых следующая формула является истинной» вставляем условие =$C1="Зеленый" . Далее, нажав кнопку «Формат…», на вкладке «Заливка» выбираем зеленый цвет и нажимаем кнопку «OK»:
5. После выбора заливки и возврата к форме «Создание правила форматирования» нажимаем кнопку «OK».
6. Повторяем шаги 1-5, только на 4 шаге в поле «Форматировать значения, для которых следующая формула является истинной» вставляем условие =$C1="Голубой" , и на вкладке «Заливка» выбираем голубой цвет:
7. Нажимаем кнопку «Условное форматирование» на ленте инструментов «Главная» и выбираем ссылку «Управление правилами…»:
8. В открывшемся окне «Диспетчер правил условного форматирования» можно просмотреть и отредактировать созданные правила:
9. Вводим в ячейки столбца «C» наименования цветов и смотрим результаты условного форматирования всей строки:
Форматирование части строки в Excel
Пример условного форматирования части строки на листе Excel в зависимости от содержимого одной или двух ячеек в этой строке.
Условие примера
- Заливка строки желтым фоном, если в третьей ячейке (столбец «C») этой строки содержится значение «Да».
- Заливка строки серым фоном, если в четвертой ячейке (столбец «D») этой строки содержится значение «Нет».
- Заливка строки красным фоном, если в третьей ячейке (столбец «C») этой строки содержится значение «Да», а в четвертой ячейке (столбец «D») – значение «Нет».
- Заливка применяется к 5 первым ячейкам любой строки.
Решение примера
1. Выделяем первые 5 столбцов, чтобы задать диапазон, к которому будут применяться создаваемые правила условного форматирования:
2. Создаем первое правило: условие – =$C1="Да" , цвет заливки – желтый:
3. Создаем второе правило: условие – =$D1="Нет" , цвет заливки – серый:
4. Создаем третье правило: условие – =И($C1="Да";$D1="Нет") , цвет заливки – красный:
5. Проверяем созданные правила в «Диспетчере правил условного форматирования». Видим, что диапазоны, к которым применяются правила, отобразились верно:
6. Заполняем ячейки столбцов «C» и «D» словами «Да» и «Нет» и смотрим результаты условного форматирования части строки:
Обратите внимание на то, что в диапазоне, к которому применяются правила условного форматирования, нельзя перетаскивать ячейки. Это нарушит его абсолютный адрес в правилах, и работать опция будет не так, как задумано. Копирование, вставка и копирование перетягиванием ячеек не влияют на абсолютный адрес диапазона.
Если все-таки абсолютный адрес диапазона нарушен, исправить его можно непосредственно в «Диспетчере правил условного форматирования».
Скачать файл Excel с примерами. На первом листе реализовано условное форматирование всей строки, на втором – ее части.