Условное форматирование с формулами
Файл с примерами: Условное форматирование с формулами.xlsx Для понимания этого раздела стоит разобраться с логическими значениями и формулами. Если вы еще не знакомы с этой темой, обратитесь к главе .
Если вам не хватает встроенных возможностей условного форматирования (правил выделения чисел — больше или меньше определенного числа; правил выделения текста — соответствие или вхождение определенного текста; правил выделения первых и последних значений), можно воспользоваться правилом с формулой.
Принципиальное отличие правил с формулой в том, что оно позволяет форматировать не только те ячейки, которые проверяются на некое условие, но и другие ячейки за пределами проверяемого диапазона. Кроме того, расширяются возможности за счет применения разных функций рабочего листа в правилах условного форматирования.
В случае с обычными правилами проверяются и форматируются одни и те же ячейки. Нельзя отформатировать всю строку на основании чисел или текста из одного столбца.
Например, в следующей таблице в случае с обычным правилом можно выделить ячейки, в которых есть текст «Логистика» (очевидно, такие есть только во втором столбце), но нельзя выделить все строки, в которых во втором столбце встречается «Логистика».
Если мы выделим всю таблицу и применим правило «Текст содержит» или «Равно», а в качестве условия зададим «Логистика», то в любом случае будут форматироваться только ячейки в столбце B, потому что в столбцах A и C ячеек, удовлетворяющих такому условию, нет.
И если мы хотим форматировать ячейки, которые лежат за пределом диапазона, в котором проверяется условие, нам понадобится формула для определения форматируемых ячеек.
Правило с формулой создается по следующему адресу:
Главная → Условное форматирование → Создать правило → Использовать формулу для определения форматируемых ячеек
(Home → Conditional Formatting → New Rule → Use a formula to determine which cells to format).
В этих условиях используются логические выражения — условия, которые могут выполняться или не выполняться. Они возвращают только одно из двух значений — ИСТИНА (TRUE) или ЛОЖЬ (FALSE).
В логических выражениях используются знаки сравнения: «равно» (=), «не равно» (<>), «больше» (>), «меньше» (<), «больше либо равно» (>=), «меньше либо равно» (<=).
Например:
=B2="логистика"
Такое выражение будет возвращать ИСТИНА, если в ячейке B2 находится текст «Логистика» (в любом регистре).
=B1>=A1
Такое выражение будет возвращать ИСТИНА / TRUE, если число в ячейке B1 больше числа в ячейке A1 либо равно ему.
=A2>10000
Это выражение будет истинным, если число в A2 строго больше 10 000.
Кроме того, есть функции, которые проверяют определенное условие и возвращают только ИСТИНА (TRUE) или ЛОЖЬ (FALSE), потому что результатом проверки не может быть что-либо другое. Например, ЕФОРМУЛА / ISFORMULA, появившаяся в Excel 2013, проверяет, является ли содержимое ячейки (ссылка на ячейку — единственный аргумент этой функции) формулой. И возвращает ИСТИНА, если является.
Некоторые подобные функции:
• ЕОШИБКА / ISERROR — возвращает ИСТИНА, если аргумент является ошибкой;
• ЕЧИСЛО / ISNUMBER — возвращает ИСТИНА, если аргумент является числом;
• ЕТЕКСТ / ISTEXT — возвращает ИСТИНА, если аргумент является текстовой строкой;
• ЕЛОГИЧ / ISLOGICAL — возвращает ИСТИНА, если аргумент является логическим значением (то есть одним из двух — ИСТИНА или ЛОЖЬ).
Такие выражения и функции и используются в условном форматировании с формулами.
Вводить нужно формулу для первой (левой верхней) ячейки диапазона. Представляйте, что она протягивается на все остальные ячейки (с учетом этого нужно использовать относительные и абсолютные ссылки). Те ячейки, в которых формула будет выдавать ИСТИНА (TRUE), будут форматироваться.
Вернемся к примеру со списком сотрудников и текстом «Логистика» в качестве критерия для форматирования. Условием здесь будет соответствие значения в столбце B (в каждой строке) тексту «Логистика».
На языке формул оно выглядит так (для второй строки):
=B2="логистика"
Все начинается с выделения форматируемого диапазона. В нашем случае он начинается со второй строки и выглядит так:
Формула в условном форматировании вводится один раз. При ее формировании учитывайте, что вы вводите формулу для левой верхней ячейки диапазона, а далее на все остальные ячейки она будет протягиваться (как если бы мы ввели формулу в B2 и далее скопировали и вставили во все остальные ячейки в трех столбцах). И ссылки на ячейки будут меняться, если они являются относительными.
В нашем случае диапазон начинается с B2, поэтому мы вводим формулу для этой ячейки, то есть проверяем в формуле строку 2. Но не забываем, что она будет протягиваться и вправо (на столбцы B и C, при этом во всех столбцах мы будем проверять в любом случае столбец B, а значит, он должен быть закреплен), и вниз (на строки 3 и далее, и значит, строка в формуле должна меняться, то есть быть относительной, без знака доллара):
=$B2="логистика"
Ссылка B2 (без закрепления столбца B) не подойдет: для первого столбца она сработает корректно, но в столбце B превратится в ссылку на C, а в столбце C — в ссылку на D, поэтому форматироваться в таком случае будет только столбец с Ф. И. О.
СРАВНИВАЕМ ДВА СТОЛБЦА, НО ФОРМАТИРУЕМ ТРЕТИЙ
В следующем примере мы выделяем зеленым название месяца в столбце A (этот столбец — форматируемый диапазон), но сравниваем в формуле другие столбцы, а именно B и C с плановыми и фактическими значениями: =C2>B2
ПРОЕКТНАЯ ДИАГРАММА С ПОМОЩЬЮ УСЛОВНОГО ФОРМАТИРОВАНИЯ
С условным форматированием можно даже сделать проектную диаграмму в Excel!
Если у вас есть даты начала и окончания этапов проекта, как в следующем примере…
…То можно сделать следующее: ввести в первой строке все даты от начала до окончания проекта. Чтобы они были компактнее, а ширина столбцов была минимальной (ведь нам не нужно в этих столбцах будет ничего хранить — мы просто станем закрашивать те дни, в которые ведется работа над тем или иным этапом), можно сделать следующее:
— применить короткий пользовательский формат даты, например Д МММ (D MMM);
— поменять ориентацию на вертикальную.
Теперь нужно закрашивать ячейки — в каждой строке те даты (столбцы), в которые ведется работа над проектом.
Ячейка закрашивается, если дата в первой строке (D1, E1 и так далее) попадает в интервал от начала этапа включительно (05.04.2022 — для первого этапа) до окончания — тоже включительно (30.04.2022 — для первого этапа).
Оба этих условия должны выполняться одновременно (дата должна быть внутри интервала, включая его границы), так что нужна функция И / AND, которая позволяет проверить выполнение нескольких условий одновременно. В общем виде:
=И(дата >= дата начала этапа; дата <= дата окончания этапа)
В нашем случае для первой ячейки (D2):
=И(D$1>=$B2;D$1<=$C2)
Иллюстрация для примера. Конечно, мы не будем вводить формулу в сами ячейки, нам не нужны значения ИСТИНА и ЛОЖЬ, да они и не поместятся в наши маленькие столбцы. Но иногда бывает проще посмотреть на формулу в ячейках и убедиться, что все корректно, прежде чем вводить ее в правило условного форматирования.
Обратите внимание на смешанные ссылки: ссылка на дату у нас выглядит как D$1, потому что при протягивании формулы вправо и вниз мы должны смещаться вправо в пределах первой строки, но не вниз (ведь даты у нас в первой строке, а этапы в разных строках). С этапами наоборот: даты начала и окончания у нас в столбцах B и C, в пределах этих столбцов у разных этапов меняются строки.
Остается эту формулу отправить в правило условного форматирования, выделив все пустые ячейки от D1 вправо до конца периода и до последнего этапа.
Чтобы каждый день выделялся как отдельный объект, а не сливался с остальными, можно в формате условного форматирования выбрать не только заливку, но и границу ячеек, причем контрастного цвета.