3 способ: Применение функции в формулах условного форматирования (УФ)
Условное форматирование в Microsoft Excel представляет собой хороший инструмент для создания форматирования, которое зависит от выполнения определенных условий. Основой условного форматирования являются логические формулы, которые возвращают значение ИСТИНА (True) или ЛОЖЬ (False). Если формула возвращает значение ИСТИНА, то заданное форматирование применяется к выбранной ячейке или диапазону ячеек.
Для создания более сложных и гибких условных форматирований в Excel можно использовать пользовательские функции, написанные на VBA. Эти функции позволяют вам определить специфические условия и форматирование на основе собственных правил.
Вот пример простой функции VBA, которая может использоваться в условном форматировании. Эта функция, названная "ЯЧЕЙКА_ИМЕЕТ_ФОРМУЛУ", возвращает значение ИСТИНА (True), если в ячейке, переданной ей в качестве аргумента, есть формула (см. скриншот).
- Function ЯЧЕЙКА_ИМЕЕТ_ФОРМУЛУ(cell As Range) As Boolean
- ЯЧЕЙКА_ИМЕЕТ_ФОРМУЛУ = cell.HasFormula
- End Function
Эта VBA-функция предназначена для проверки наличия формулы в переданной ей ячейке.
Давайте разберем каждую часть этой функции:
- Function ЯЧЕЙКА_ИМЕЕТ_ФОРМУЛУ(cell As Range) As Boolean: Это объявление функции. Мы используем ключевое слово "Function" для определения, что это функция, и даем ей имя "ЯЧЕЙКА_ИМЕЕТ_ФОРМУЛУ". В скобках указывается аргумент "cell As Range", который представляет собой ячейку (тип данных Range), которую мы будем проверять. "As Boolean" указывает, что функция будет возвращать значение типа Boolean (ИСТИНА или ЛОЖЬ).
- ЯЧЕЙКА_ИМЕЕТ_ФОРМУЛУ = cell.HasFormula: Внутри функции выполняется одна инструкция. Мы используем переменную "ЯЧЕЙКА_ИМЕЕТ_ФОРМУЛУ" для хранения результата проверки на наличие формулы в ячейке. cell.HasFormula - это метод объекта Range, который возвращает значение ИСТИНА, если в ячейке есть формула, и ЛОЖЬ в противном случае. Это значение присваивается переменной "ЯЧЕЙКА_ИМЕЕТ_ФОРМУЛУ".
- End Function: Это ключевая фраза, обозначающая конец функции. Здесь завершается выполнение кода функции.
После создания такой функции в модуле VBA, вы можете задать правило условного форматирования, которое использует эту функцию для определения, какие ячейки должны быть отформатированы.
Как видно на скриншоте ниже, в ячейках С2, С3 и С4 находятся формулы, суммирующие значения двух ячеек слева
Давайте разберем, как это сделать:
1. Выберите диапазон ячеек, к которым вы хотите применить условное форматирование, например, я выберу ячейки с A1 по C4.
2. Перейдите во вкладку "Главная" и выберите "Условное форматирование", а затем "Создать правило".
3. В диалоговом окне "Создание правила форматирования" выберите "Использовать формулу для определения форматируемых ячеек".
4. В поле ввода формулы введите следующую формулу:
=ЯЧЕЙКА_ИМЕЕТ_ФОРМУЛУ(A1)
Обратите внимание, что мы используем функцию "ЯЧЕЙКА_ИМЕЕТ_ФОРМУЛУ" с аргументом A1, так как это верхний левый угол выделенного диапазона.
5. Нажмите на кнопку "Формат" и выберите формат, который вы хотите применить к ячейкам, если условие выполняется (я выбрал "жёлтый).
6. Нажмите "ОК", чтобы применить правило условного форматирования к выбранному диапазону.
Теперь ячейки из этого диапазона будут отформатированы на основе вашей функции "ЯЧЕЙКА_ИМЕЕТ_ФОРМУЛУ".
в Excel 2013 и более новых версиях уже существует встроенная функция "ЕФОРМУЛА()", которая может использоваться для проверки наличия формулы в ячейке. В представленном примере была использована пользовательская функция для наглядности и для поддержки более старых версий Excel (например, если вы работаете в Excel 2010).
(Продолжение следует...)