В этой статье вы узнаете, как закрасить ячейку по условию, выделять целые строки и столбцы в Excel на основе какого-то критерия, а также найдете несколько советов и примеров формул, которые будут работать с числовыми значениями и значениями текстовых ячеек.
Узнайте, как в Экселе быстро закрасить всю строку или столбец на основе значения отдельной ячейки в ваших таблицах Excel. Советы и примеры формул для числовых и текстовых значений.
Мы уже обсуждали, что такое условное форматирование и как изменить цвет фона ячейки в зависимости от ее значения. Рекомендуем ссылки в конце этого материала. Сейчас же мы рассмотрим более сложные вещи.
Выделение цветом по условию целиком строки или столбца.
Выделение цветом строки.
В нашем распоряжении – таблица Excel с информацией о продажах в различные страны. Давайте попробуем выделить определенные строки с продажами в Бразилию. То есть, окраска их должна изменяться в связи с тем, что записано в колонке «Страна».
Прежде всего выделяем при помощи мыши весь диапазон интересующих нас данных – A2:D21. Шапку таблицы выделять не нужно. Затем действуем по уже отработанной схеме: вызываем меню функции и выбираем последний пункт – «Использовать формулу для определения форматируемых ячеек» (1). Далее записываем выражение (2):
=$C2 = «Бразилия»
Мы должны закрасить вторую строку таблицы в зависимости от значения в С2. Здесь есть маленькая хитрость.
Обратите внимание, что абсолютная ссылка (знак $) установлена здесь только на столбец С. То есть, мы проверяем на условие «Бразилия» в выделенном нами диапазоне все позиции в этом столбце, то есть С2, С3, C4 и так далее. А вот закрашивать будем всю строку, так как ранее выделена была вся таблица. Для этого выбираем вариант оформления (3): цвет фона или шрифта, либо оба.
Напомню, что знак $, стоящий перед буквой столбца, означает абсолютную ссылку на этот столбец. А если знак $ находится перед цифрой, то абсолютная ссылка установлена на строку.
Подробнее об этом читайте здесь: Что такое абсолютная, относительная и смешанная адресация.
Вывод. Условное форматирование строки по значению ячейки основано на грамотном применении абсолютных и относительных ссылок в правиле форматирования. В используемой формуле должна быть абсолютная ссылка на столбец и относительная - на строку ($C2). При этом как область форматирования должна быть обозначена вся таблица (без шапки).
Выделение цветом столбца.
Аналогичную операцию можно произвести и с выделением по условию определенным цветом отдельных столбцов. Естественно, при этом формула будет выглядеть несколько иначе: знак доллара будет находиться перед цифрой. Но, конечно, выделение горизонтальных линий в таблице встречается намного чаще.
Тем не менее, давайте рассмотрим пример с выделением по условию столбцов таблицы.
Итак, у нас есть табель рабочих смен. Нужно красным указать в нем на субботы и воскресенья.
Как и в предыдущем примере, определим для начала диапазон, который мы будем форматировать: =$B$3:$S$7. И вновь будем использовать формулу (2) для определения условия.
=ДЕНЬНЕД(B$2;2)>5
Функция ДЕНЬНЕД позволяет определить номер дня недели по указанной дате. Цифра 2 означает, что используется привычный нам порядок, когда первый день недели – это понедельник.
Таким образом, если номер окажется больше 5 (то есть, это будет суббота или воскресенье), то необходимо применить указанный нами формат (3) и закрасить выходной день.
Все просто, но обратите внимание на одну важную деталь: знаком $ в ссылке мы фиксируем номер. Тем самым мы указываем программе, что надо последовательно перемещаться по второй строке в пределах указанного диапазона, и определять номер дня недели. И после этого применять формат к столбцу.
Выделение цветом через строку.
Думаю, вам часто встречалось красивое оформление таблицы, когда строчки через одну были выделены. Конечно, такое оформление легко доступно, если преобразовать данные в «умную» таблицу. Но такое возможно только в Excel 2007 и более поздних версиях. Если же у вас старая версия программы, то наш способ вам очень даже может пригодиться.
Итак, возьмем для примера небольшую таблицу.
Выделим диапазон A1:D18.
Затем создаем новое правило при помощи формулы
=ОСТАТ(СТРОКА();2)=0
В чем ее смысл? Если номер, полученный при помощи функции СТРОКА(), делится без остатка на 2, то значит у нее чётный номер, и к ней следует применить правило форматирования. Если же номер не делится на 2 без остатка, то это нечетная. Ее мы оставляем без изменений.
В результате получилась «полосатая» таблица по принципу "четный-нечетный".
Закрасить группу строк по условию.
Зачем это нужно? К примеру, у нас имеются помесячные данные о продажах. Тогда логично было бы отделить каждые 3 месяца, чтобы хорошо видны были результаты по кварталам.
Используем выражение
=ОСТАТ(ЦЕЛОЕ((СТРОКА()-2)/3)+1;2)
Поясним эти вычисления.В качестве счетчика мы будем использовать номер текущей строки.Поскольку в квартале 3 месяца, то группировать будем тоже по три. Отсчет начинаем с А2.
- Счетчик в начале нужно установить в ноль. Для этого служит выражение (СТРОКА()-2). Поскольку начинаем со второй, то обнуляем счетчик, вычитая 2.
- Далее нужно определить, к какой по счету группе относится текущее местоположение курсора. Результат п.1 делим на 3.
- Отсекаем дробную часть при помощи функции ЦЕЛОЕ и получаем порядковый номер группы: ЦЕЛОЕ((СТРОКА()-2)/3).
- Добавляем 1, поскольку результатом для первой группы будет число меньше 1. А нужно, чтобы отсчет групп начинался с 1.
- Затем действуем по методике, отработанной в предыдущем примере: производим действия только с нечетными группами. Для этого используем функцию ОСТАТ с аргументом 2. То есть, находим остаток от деления на 2. Если число четное, то остаток будет равен нулю. Ноль равносилен результату ЛОЖЬ, поэтому с такими группами ничего не делаем. Если число нечетное, остаток от деления на 2 будет равен 1, что равноценно ИСТИНА. И вот тут-то мы и закрасим эту группу.
В результате мы разбили нашу таблицу на тройки, определили каждой тройке свой порядковый номер, и с нечетными номерами произвели действия по изменению формата их представления.
Аналогично можно разбить на группы по 4 строки. Тогда в формуле выше просто замените цифру 3 на 4. И все будет работать.
А если в шапке вашей таблицы больше, чем одна строка, просто замените -2 на большую цифру, соответственно высоте шапки таблицы.
Как видите, подход достаточно универсальный. Надеюсь, вам пригодится.
Вставляем отделяющие линии между группами строк.
Если у вас есть большой отсортированный по какому-либо столбцу список, то было бы неплохо автоматически отделять получившиеся группы разделительными горизонтальными линиями для наглядности.
Давайте красиво оформим смету работ, упорядоченных по дням. Отделим горизонтальными линиями каждый новый день, чтобы визуально отделить их друг от друга.
Для этого сначала выделим весь наш диапазон с данными.
Внимание! Первую шапку таблицы не выделяем, начинаем с данных!
В нашем случае, выделяем A3:G33.
Затем далее действуем по уже отработанной схеме. В меню условного форматирования выбираем использование формулы (1). Далее записываем само правило:
=$B3<>$B2
Иначе говоря, мы проверяем, равна ли наша текущая дата предыдущей. Если не равна, значит, мы перешли к новому дню. Соответственно наше текущее положение нужно выделить. Выбираем формат (3). Тип границы – линия (4). Она будет использоваться по верхней границе (5).
В результате каждый новый день будет отделен от предыдущего горизонтальной линией. Естественно, вы можете выбрать и иной стиль форматирования – например, цветом.
Условное форматирование для сравнения двух столбцов.
Когда необходимо произвести сравнение двух столбцов в таблице, очень хороший способ указать на имеющиеся совпадения и различия – выделить их.
Как найти и закрасить совпадающие ячейки в столбцах.
Можно использовать специальный пункт вкладки "Условное форматирование" — «Повторяющиеся значения».
На рисунке вы видите, что дубликаты выделены зеленым. Думаю, здесь все довольно просто.
Выделение совпадений двух столбцов построчно.
Если у нас есть несколько копий одной и той же таблицы, может возникнуть необходимость найти и показать их различия и совпадения. В этом случае попробуем сравнить столбцы таблиц построчно.
Чтобы сравнить данные в каждой строке двух столбцов таблицы, воспользуемся формулами условия.
Выберите, в каких ячейках вы будете отмечать совпадения – в первой или во второй таблице. Я выделил B3:B25. То есть, в первой таблице мы закрасим ячейки, которые дублируются во второй таблице.
Обратите внимание, что в формуле используется абсолютная адресация на колонку. Это необходимо для того, чтобы происходило последовательный перебор значений, двигаясь вниз начиная с B3 до B25.
Как найти и закрасить совпадения в нескольких столбцах.
Представим, что наша задача – найти и выделить в столбце таблицы те значения, которые совпадают хотя бы с одним столбцом второй таблицы. В нашем случае – мы последовательно будем брать данные из столбца B и определять, нет ли такого же значения в этой же строке в нескольких колонках второй таблицы.
Давайте закрасим цветом те ячейки в столбце B, которые хотя бы однажды встречаются в G,H и I.
Диапазон форматирования – B3:B25. Выделяем его и в меню
Запишем правило условного форматирования:
=ИЛИ($B3=$G3;$B3=$H3;$B3=$I3)
Последовательно двигаемся сверху вниз и сравниваем каждую ячейку колонки B с находящимися в той же горизонтали значениями в G,H и I.
То есть, необходимо, чтобы выполнялось хотя бы одно из условий, достаточно одного совпадения.
Но если столбцов будет не 3, а, предположим, 10? Формула станет слишком громоздкой. Ведь придется указать 10 критериев совпадения.
Есть более простой способ. Изменим правило форматирования и используем функцию СЧЁТЕСЛИ:
=ЕСЛИ(СЧЁТЕСЛИ($G3:$I3;$B3)>0;1;0)
СЧЁТЕСЛИ определяет, как часто определенное значение встречается в диапазоне. Считаем, сколько раз значение из B3 встречается в G,H и I таблицы, то есть в $G3:$I3. Если будет более одного совпадения, то срабатывает правило.Функция возвращает 1. А 1 в логическом выражении соответствует ИСТИНА, 0 - ЛОЖЬ. То есть, если счет равен нулю, то в текущей позиции нашего столбца содержится уникальное значение, которое больше нигде в диапазоне поиска не встречается. Согласитесь, так гораздо удобнее, чем писать множество однотипных критериев.
И теперь при помощи такого подхода мы можем решить более сложную задачу: выделить в B те данные, которые хотя бы раз встречаются в одном из нескольких столбцов.
Вот это новое правило:
=ЕСЛИ(СЧЁТЕСЛИ($G$3:$I$25;$B3)>0;1;0)
Теперь совпадения мы ищем во всех столбцах таблицы 2, а не только в одном из них. Возможно, такой пример вам также будет полезен.
Обратите еще раз внимание на то, как определены абсолютные ссылки. Суть в том, что должен меняться номер строки, но не номер столбца. Тогда все будет работать.
Как закрасить одинаковые ячейки при помощи "Найти и выделить".
В предыдущих материалах, ссылки на которые вы можете найти в конце этой статьи, мы уже рассматривали, как в Excel закрасить ячейку по условию в зависимости от другой ячейки либо от ее собственного содержимого. Условное форматирование позволяет отслеживать изменения в таблице и в соответствии с имеющимися значениями закрасить ячейку в определённый цвет. Но что если изменений в таблице больше не будет и в соответствии с определённым условием нужно закрасить значения "раз и навсегда"? Иначе говоря, речь идет о статичной таблице.
Возможно, вам пригодится более простой способ условного форматирования - использование инструмента "Найти и выделить".
Давайте вновь рассмотрим наш пример с продажами шоколада. Выделим цветом продажи меньше и больше 100 единиц, как показано ниже. К сожалению, никакие формулы мы здесь применить не можем, поэтому возможности отбора нужных значений сильно ограничены. Однако, можно использовать уже знакомые нам знаки подстановки — вопросительный знак ? и звездочку *. Напомню, что "?" позволяет заменить собой любой одиночный символ, а "*" - любую последовательность знаков. Как это применить? К примеру, 8? будет означать два символа, первый из которых - 8, а второй - любой. ?? означает два любых символа и т.д.
Итак, выделяем при помощи мышки область значений, которые мы хотим закрасить по условию, а затем используем инструмент "Найти и выделить". В окне поиска пишем ??, что означает в нашем случае любое двузначное число в диапазоне Е5:Е24. Обратите внимание, что если вы предварительно не укажете диапазон форматирования, то поиск будет произведен по всей таблице, что нам совершенно не нужно.
Нажимаем "Найти все" и в открывшемся внизу окошке тыкаем мышкой на любое из найденных значений. Затем нажимаем комбинацию клавиш CTRL+A, чтобы выделить все результаты, соответствующие условию. После этого закрываем окно поиска и видим, что все нужные цифры оказались выделены. Остается только во вкладке "Шрифт" выбрать нужный цвет заливки, или другой вариант оформления по вашему желанию.
Повторим все те же действия, только теперь в поиске укажем ???, то есть искать будем трехзначные числа. Либо можно было указать ???*, то есть отбирать все числа с разрядностью 3 и выше. Как видите, возможности у этого инструмента невелики, но с помощью подобных ухищрений можно получить вполне приемлемые результаты.
И, конечно, не забывайте, что это форматирование "навсегда", оно не изменится автоматически, если даже в таблицу будут внесены какие-то правки.
Александр, добрый день!
Если сможете помочь, буду очень признателен.
Суть проблемы: в колонке А стоят числа. В колонке В - формулы вида "=А". Заливки нет.
Но при вводе в В числа вместо формулы нужно залить эту ячейку.
Возможна ли такая операция?
С уважением, Александр.
Добрый день! Попробуйте формулу условного форматирования
=НЕ(ЕФОРМУЛА(B1))
Добрый день.
Спасибо за ответ.
Что-то не работает. Хотя и даже в простом варианте, ЕФОРМУЛА(ссылка), не дает результат. Выдает постоянно: #ИМЯ?
Может старая версия Экселя?
ЕФОРМУЛА доступна начиная с Excel2013
Понял, спасибо! У меня 2010. Будем менять.
Здравствуйте!
Подскажите, как закрасить ячейки в строке по следующему условию (например):
В ячейке С2 число 10 --> закрасить 10 ячеек строки, начиная с Е2.
В ячейке С3 число 112 --> закрасить 112 ячеек строки, начиная с Е3.
...и т.д.
Можно, конечно, и в ручную, но раз есть великий и могучий Excel2010....
Спасибо.
доброго времени суток! Подскажите, пожалуйста, как можно выделить с помощью условного форматирования ячейки , в который содержится вопросительный знак (?). Он может стоять в конце слова и в середине, где угодно. Например, в ячейке записано "категория?статус" и нужно подсветить именно те ячейки, в которых присутствует вопросительный знак
Попробуйте эту формулу для условного форматирования:
=ЕЧИСЛО(ПОИСК("?";A1))
Волшебно! Спасибо!!!
Добрый день! Подскажите как правильно написать формулу?: Необходимо закрасить ячейки с цифрами в столбце (так же присутствуют буквы в столбце) если сумма ячеек в столбце меньше числа 33
Здравствуйте! Попробуйте такую формулу условного форматирования:
=ЕЧИСЛО(A1)*(СУММ($A$1:$A$100)>33)
Спасибо
Я понял, как закрасить ячейку по условию в зависимости от другой ячейки, но не могу сообразить, как растянуть это правило на другие ячейки (а их много, больше 2000), чтобы каждая ячейка реагировала на изменение ячеек ТОЛЬКО в своей строке.
Обратите внимание на параграф "Как найти и закрасить совпадения в нескольких столбцах". Ключевой момент - в формуле должна быть абсолютная ссылка на столбец и относительная - на номер строки. При создании правила применяйте его сразу ко всему вашему большому диапазону, а не к одной строке.
Спасибо. Только тут нашел понятную инструкцию и все получилось настроить.
Спасибо, очень доступно объяснено