Сложение значений в зависимости от цвета ячеек в EXCEL

Как в Excel динамически изменять цвет ячейки, основываясь на её значении

Цвет заливки будет изменяться в зависимости от значения ячейки.

Задача: Имеется таблица или диапазон данных, и Вы хотите изменить цвет заливки ячеек, основываясь на их значениях. Более того, необходимо, чтобы этот цвет изменялся динамически, отражая изменения данных в ячейках.

Решение: Используйте условное форматирование в Excel, чтобы выделить значения больше X, меньше Y или между X и Y.

Предположим, есть список цен на бензин в разных штатах, и Вы хотите, чтобы цены, превышающие $3.7, были выделены красным, а меньшие или равные $3.45 – зелёным.

Замечание: Снимки экрана для этого примера были сделаны в Excel 2010, однако, в Excel 2007 и 2013 кнопки, диалоговые окна и настройки будут точно такие же или с незначительными отличиями.

Итак, вот, что нужно сделать по шагам:

  1. Выделите таблицу или диапазон, в котором Вы хотите изменить цвет заливки ячеек. В этом примере мы выделяем $B$2:$H$10 (заголовки столбцов и первый столбец, содержащий названия штатов, не выделяем).
  2. Откройте вкладку Home (Главная), в разделе Styles (Стили) нажмите Conditional Formatting (Условное форматирование) > New Rule (Создать правило).
  3. В верхней части диалогового окна New Formatting Rule (Создание правила форматирования) в поле Select a Rule Type (Выберите тип правила) выберите Format only cells that contain (Форматировать только ячейки, которые содержат).
  4. В нижней части диалогового окна в поле Format Only Cells with (Форматировать только ячейки, для которых выполняется следующее условие) настройте условия для правила. Мы выбираем форматировать только ячейки с условием: Cell Value (Значение ячейки) – greater than (больше) – 3.7, как показано на рисунке ниже.Далее нажмите кнопку Format (Формат), чтобы выбрать, какой цвет заливки должен быть применён, если выполняется заданное условие.
  5. В появившемся диалоговом окне Format Cells (Формат ячеек) откройте вкладку Fill (Заливка) и выберите цвет (мы выбрали красноватый) и нажмите ОК.
  6. После этого Вы вернетесь в окно New Formatting Rule (Создание правила форматирования), где в поле Preview (Образец) будет показан образец Вашего форматирования. Если всё устраивает, нажмите ОК.

Результат Ваших настроек форматирования будет выглядеть приблизительно так:

Так как нам нужно настроить ещё одно условие, позволяющее изменять цвет заливки на зелёный для ячеек со значениями меньшими или равными 3.45, то снова нажимаем кнопку New Rule (Создать правило) и повторяем шаги с 3 по 6, устанавливая нужное правило. Ниже виден образец созданного нами второго правила условного форматирования:

Когда все будет готово – жмите ОК. Теперь у Вас имеется мило отформатированная таблица, которая даёт возможность с первого взгляда увидеть максимальные и минимальные цены на бензин в разных штатах. Хорошо им там, в Техасе!

Совет: Таким же способом Вы можете изменять цвет шрифта в зависимости от значения ячейки. Для этого просто откройте вкладку Font (Шрифт) в диалоговом окне Format Cells (Формат ячеек), как мы это делали на шаге 5, и выберите желаемый цвет шрифта.

Как настроить постоянный цвет ячейки, основываясь на её текущем значении

Однажды настроенный цвет заливки не будет изменяться, вне зависимости от того, как в будущем изменится содержимое ячейки.

Задача: Вы хотите настроить цвет ячейки, основываясь на её текущем значении, и хотите, чтобы цвет заливки оставался неизменным, даже когда значение ячейки изменяется.

Решение: Найти все ячейки с определённым значением (или значениями) при помощи инструмента Find All (Найти все), а затем изменить формат найденных ячеек, используя диалоговое окно Format Cells (Формат ячеек).

Это одна из тех редких задач, по которым нет разъяснения в файлах справки Excel, на форумах или в блогах, и для которых нет прямого решения. И это понятно, так как эта задача не типичная. И всё же, если Вам нужно изменить цвет заливки ячеек окончательно, то есть раз и на всегда (либо пока Вы не измените его вручную), выполните следующие шаги.

Найти и выделить все ячейки, удовлетворяющие заданному условию

Тут возможно несколько сценариев, в зависимости от того, значения какого типа Вы ищите.

Если Вы хотите раскрасить ячейки с конкретным значением, например, 50, 100 или 3.4 – то на вкладке Home (Главная) в разделе Editing (Редактирование) нажмите Find Select (Найти и выделить) > Find (Найти).

Введите нужное значение и нажмите Find All (Найти все).

Совет: В правой части диалогового окна Find and Replace (Найти и заменить) есть кнопка Options (Параметры), нажав которую Вы получите доступ к ряду продвинутых настроек поиска, таких как Match Case (Учитывать регистр) и Match entire cell content (Ячейка целиком). Вы можете использовать символы подстановки, такие как звёздочка (*), чтобы найти любую строку символов, или знак вопроса (?), чтобы найти один любой символ.

Что касается предыдущего примера, если нам нужно найти все цены на бензин от 3.7 до 3.799, то мы зададим такие критерии поиска:

Теперь кликните любой из найденных элементов в нижней части диалогового окна Find and Replace (Найти и заменить) и нажмите Ctrl+A, чтобы выделить все найденные записи. После этого нажмите кнопку Close (Закрыть).

Вот так можно выделить все ячейки с заданным значением (значениями) при помощи опции Find All (Найти все) в Excel.

Однако, в действительности нам нужно найти все цены на бензин, превышающие $3.7. К сожалению, инструмент Find and Replace (Найти и заменить) в этом не сможет нам помочь.

Свойство .Interior.Color объекта Range

Начиная с Excel 2007 основным способом заливки диапазона или отдельной ячейки цветом (зарисовки, добавления, изменения фона) является использование свойства .Interior.Color объекта Range путем присваивания ему значения цвета в виде десятичного числа от 0 до 16777215 (всего 16777216 цветов).

Заливка ячейки цветом в VBA Excel

Пример кода 1:

Поместите пример кода в свой программный модуль и нажмите кнопку на панели инструментов «Run Sub» или на клавиатуре «F5», курсор должен быть внутри выполняемой программы. На активном листе Excel ячейки и диапазон, выбранные в коде, окрасятся в соответствующие цвета.

Есть один интересный нюанс: если присвоить свойству .Interior.Color отрицательное значение от -16777215 до -1, то цвет будет соответствовать значению, равному сумме максимального значения палитры (16777215) и присвоенного отрицательного значения. Например, заливка всех трех ячеек после выполнения следующего кода будет одинакова:

Проверено в Excel 2016.

Вывод сообщений о числовых значениях цветов

Числовые значения цветов запомнить невозможно, поэтому часто возникает вопрос о том, как узнать числовое значение фона ячейки. Следующий код VBA Excel выводит сообщения о числовых значениях присвоенных ранее цветов.

Пример кода 2:

Вместо вывода сообщений можно присвоить числовые значения цветов переменным, объявив их как Long.

С помощью Автофильтра (ручной метод)

  • Добавьте справа еще один столбец с заголовком Код цвета .
  • Выделите заголовки и нажмите CTRL+SHIFT+L, т.е. вызовите Автофильтр ( подробнее здесь )
  • Вызовите меню Автофильтра , выберите зеленый цвет

  • Будут отображены только строки с зелеными ячейками
  • Введите напротив каждого “зеленого” значения число 1

  • Сделайте тоже для всех цветов

Введите формулу =СУММЕСЛИ(B7:B17;E7;A7:A17) как показано в файле примера (лист Фильтр) .

Для подсчета значений используйте функцию СЧЕТЕСЛИ() .

С помощью Макрофункции ПОЛУЧИТЬ.ЯЧЕЙКУ()

Сразу предупрежу, что начинающему пользователю EXCEL будет сложно разобраться с этим и следующим разделом.

Идея заключается в том, чтобы автоматически вывести в соседнем столбце числовой код фона ячейки (в MS EXCEL все цвета имеют соответствующий числовой код). Для этого нам потребуется функция, которая может вернуть этот код. Ни одна обычная функция этого не умеет. Используем макрофункцию ПОЛУЧИТЬ.ЯЧЕЙКУ(), которая возвращает код цвета заливки ячейки (она может много, но нам потребуется только это ее свойство).

Примечание: Макрофункции – это набор функций к EXCEL 4-й версии, которые нельзя напрямую использовать на листе EXCEL современных версий, а можно использовать только в качестве Именованной формулы . Макрофункции – промежуточный вариант между обычными функциями и функциями VBA. Для работы с этими функциями требуется сохранить файл в формате с макросами *.xlsm

  • Сделайте активной ячейку В7 (это важно, т.к. мы будем использовать относительную адресацию в формуле)
  • В Диспетчере имен введите формулу =ПОЛУЧИТЬ.ЯЧЕЙКУ(63;Макрофункция!A7)
  • Назовите ее Цвет

  • Закройте Диспетчер имен
  • Введите в ячейку В7 формулу =Цвет и скопируйте ее вниз.

Сложение значений организовано так же как и в предыдущем разделе.

Макрофункция работает кривовато:

  • если вы измените цвет ячейки, то макрофункция не обновит значения кода (для этого нужно опять скопировать формулу из В7 вниз или выделить ячейку, нажать клавишу F2 и затем ENTER )
  • функция возвращает только 56 цветов (так называемая палитра EXCEL), т.е. если цвета близки, например, зеленый и светло зеленый, то коды этих цветов могут совпасть. Подробнее об этом см. лист файла примера Colors . Как следствие, будут сложены значения из ячеек с разными цветами.

Описание работы функции

Функция =ЦВЕТЗАЛИВКИ(ЯЧЕЙКА) возвращает код цвета заливки выбранной ячейки. Имеет один обязательный аргумент:

  • ЯЧЕЙКА – ссылка на ячейку, для которой необходимо применить функцию.

Ниже представлен пример, демонстрирующий работу функции.

Следует обратить внимание на тот факт, что функция не пересчитывается автоматически. Это связано с тем, что изменение цвета заливки ячейки Excel не приводит к пересчету формул. Для пересчета формулы необходимо пользоваться сочетанием клавиш Ctrl+Alt+F9

Процедура изменения цвета ячеек в зависимости от содержимого

Конечно, всегда приятно иметь хорошо оформленную таблицу, в которой ячейки в зависимости от содержимого, окрашиваются в разные цвета. Но особенно актуальна данная возможность для больших таблиц, содержащих значительный массив данных. В этом случае заливка цветом ячеек значительно облегчит пользователям ориентирование в этом огромном количестве информации, так как она, можно сказать, будет уже структурированной.

Элементы листа можно попытаться раскрасить вручную, но опять же, если таблица большая, то это займет значительное количество времени. К тому же, в таком массиве данных человеческий фактор может сыграть свою роль и будут допущены ошибки. Не говоря уже о том, что таблица может быть динамической и данные в ней периодически изменяются, причем массово. В этом случае вручную менять цвет вообще становится нереально.

Но выход существует. Для ячеек, которые содержат динамические (изменяющиеся) значения применяется условное форматирование, а для статистических данных можно использовать инструмент «Найти и заменить».

Условное форматирование

С помощью условного форматирования можно задать определенные границы значений, при которых ячейки будут окрашиваться в тот или иной цвет. Окрашивание будет проводиться автоматически. В случае, если значение ячейки, вследствие изменения выйдет за пределы границы, то автоматически произойдет перекрашивание данного элемента листа.

Посмотрим, как этот способ работает на конкретном примере. Имеем таблицу доходов предприятия, в которой данные разбиты помесячно. Нам нужно выделить разными цветами те элементы, в которых величина доходов менее 400000 рублей, от 400000 до 500000 рублей и превышает 500000 рублей.

  1. Выделяем столбец, в котором находится информация по доходам предприятия. Затем перемещаемся во вкладку «Главная». Щелкаем по кнопке «Условное форматирование», которая располагается на ленте в блоке инструментов «Стили». В открывшемся списке выбираем пункт «Управления правилами…».
  2. Запускается окошко управления правилами условного форматирования. В поле «Показать правила форматирования для» должно быть установлено значение «Текущий фрагмент». По умолчанию именно оно и должно быть там указано, но на всякий случай проверьте и в случае несоответствия измените настройки согласно вышеуказанным рекомендациям. После этого следует нажать на кнопку «Создать правило…».
  3. Открывается окно создания правила форматирования. В списке типов правил выбираем позицию «Форматировать только ячейки, которые содержат». В блоке описания правила в первом поле переключатель должен стоять в позиции «Значения». Во втором поле устанавливаем переключатель в позицию «Меньше». В третьем поле указываем значение, элементы листа, содержащие величину меньше которого, будут окрашены определенным цветом. В нашем случае это значение будет 400000. После этого жмем на кнопку «Формат…».
  4. Открывается окно формата ячеек. Перемещаемся во вкладку «Заливка». Выбираем тот цвет заливки, которым желаем, чтобы выделялись ячейки, содержащие величину менее 400000. После этого жмем на кнопку «OK» в нижней части окна.
  5. Возвращаемся в окно создания правила форматирования и там тоже жмем на кнопку «OK».
  6. После этого действия мы снова будем перенаправлены в Диспетчер правил условного форматирования. Как видим, одно правило уже добавлено, но нам предстоит добавить ещё два. Поэтому снова жмем на кнопку «Создать правило…».
  7. И опять мы попадаем в окно создания правила. Перемещаемся в раздел «Форматировать только ячейки, которые содержат». В первом поле данного раздела оставляем параметр «Значение ячейки», а во втором выставляем переключатель в позицию «Между». В третьем поле нужно указать начальное значение диапазона, в котором будут форматироваться элементы листа. В нашем случае это число 400000. В четвертом указываем конечное значение данного диапазона. Оно составит 500000. После этого щелкаем по кнопке «Формат…».
  8. В окне форматирования снова перемещаемся во вкладку «Заливка», но на этот раз уже выбираем другой цвет, после чего жмем на кнопку «OK».
  9. После возврата в окно создания правила тоже жмем на кнопку «OK».
  10. Как видим, в Диспетчере правил у нас создано уже два правила. Таким образом, осталось создать третье. Щелкаем по кнопке «Создать правило».
  11. В окне создания правила опять перемещаемся в раздел «Форматировать только ячейки, которые содержат». В первом поле оставляем вариант «Значение ячейки». Во втором поле устанавливаем переключатель в полицию «Больше». В третьем поле вбиваем число 500000. Затем, как и в предыдущих случаях, жмем на кнопку «Формат…».
  12. В окне «Формат ячеек» опять перемещаемся во вкладку «Заливка». На этот раз выбираем цвет, который отличается от двух предыдущих случаев. Выполняем щелчок по кнопке «OK».
  13. В окне создания правил повторяем нажатие на кнопку «OK».
  14. Открывается Диспетчер правил. Как видим, все три правила созданы, поэтому жмем на кнопку «OK».
  15. Теперь элементы таблицы окрашены согласно заданным условиям и границам в настройках условного форматирования.
  16. Если мы изменим содержимое в одной из ячеек, выходя при этом за границы одного из заданных правил, то при этом данный элемент листа автоматически сменит цвет.

Кроме того, можно использовать условное форматирование несколько по-другому для окраски элементов листа цветом.

  1. Для этого после того, как из Диспетчера правил мы переходим в окно создания форматирования, то остаемся в разделе «Форматировать все ячейки на основании их значений». В поле «Цвет» можно выбрать тот цвет, оттенками которого будут заливаться элементы листа. Затем следует нажать на кнопку «OK».
  2. В Диспетчере правил тоже жмем на кнопку «OK».
  3. Как видим, после этого ячейки в колонке окрашиваются различными оттенками одного цвета. Чем значение, которое содержит элемент листа больше, тем оттенок светлее, чем меньше – тем темнее.

Инструкция для Excel 2010


ВКЛЮЧИТЕ СУБТИТРЫ!

Количество вместо суммы

Если вам нужно подсчитывать не сумму покрашенных определенным цветом ячеек, а всего лишь их количество, то наша функция будет еще проще. Замените в ней 7-ю строку на:

Sum = Sum + 1

Источники


  • https://office-guru.ru/excel/2-sposoba-izmenit-cvet-zalivki-jacheek-v-excel-v-zavisimosti-ot-ih-znachenii-293.html
  • https://vremya-ne-zhdet.ru/vba-excel/tsvet-yacheyki-zalivka-fon/
  • https://excel2.ru/articles/slozhenie-znacheniy-v-zavisimosti-ot-cveta-yacheek-v-ms-excel-0
  • https://micro-solution.ru/projects/addin_vba-excel/color_interior
  • https://lumpics.ru/color-cell-depending-value-excel/
  • https://myblaze.ru/kak-v-excel-zakrasit-yacheyku-po-usloviyu-ili-formule/
  • https://www.planetaexcel.ru/techniques/9/162/

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все об Экселе: формулы, полезные советы и решения