Excel условие по цвету. Сумма по цвету ячеек в Excel

Просуммируем значения ячеек в зависимости от цвета их заливки. Здесь же покажем, как подсчитать такие ячейки.

Функции для суммирования значений по цвету ячеек в EXCEL не существует (по крайней мере, в EXCEL 2016 и в более ранних версиях). Вероятно, подавляющему большинству пользователей это не требуется.

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

Необходимо сложить значения ячеек в зависимости от цвета фона. Основная задача: Как нам "объяснить" функции сложения, что нужно складывать значения, например, только зеленых ячеек?

Это можно сделать разными способами, приведем 3 из них: с помощью , Макрофункции ПОЛУЧИТЬ.ЯЧЕЙКУ() и VBA.

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

  • Добавьте справа еще один столбец с заголовком Код цвета .
  • Выделите заголовки и нажмите 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 . Как следствие, будут сложены значения из ячеек с разными цветами.

С помощью VBA

В файле примера на листе VBA приведено решение с помощью VBA. Решений может быть множество:

  • можно создать кнопку, после нажатия она будет вводить код цвета в соседний столбец (реализован этот вариант).
  • можно написать пользовательскую функцию, которая будет автоматически обновлять код цвета при изменении цвета ячейки (реализовать несколько сложнее);
  • можно написать программу, которая будет анализировать диапазон цветных ячеек, определять количество различных цветов, вычислять в отдельном диапазоне суммы для каждого цвета (реализовать не сложно, но у каждого пользователя свои требования: ячейки с суммами должны быть в определенном месте, необходимо учесть возможность дополнения диапазона новыми значениями и пр.).

Профессиональная работа в Excel рано или поздно приведет вас к необходимости написания собственных функций. Довольно часто пользователи «раскрашивают» ячейки в разные цвета. Если потом возникает необходимость просуммировать значения в выделенных ячейках, то, к сожалению, в Excel нет такой стандартной функции. Тем не менее, сумма по цвету ячеек в Excel может быть найдена!

Небольшой код VBA решит ваши проблемы. Для облегчения восприятия последующего материала откройте Excel-файл (он запакован в Zip, так как на сайте размещение файлов, содержащих макросы запрещено).

1. Убедитесь, что среди вкладок на ленте Excel, присутствует «Разработчик»:

Скачать заметку в формате Word

Скачать заметку в формате pdf

Скачать файл примера в формате Excel с поддержкой макросов . На основании комментариев добавил в Excel-файл код функции КолЦвет — определяет число ячеек выделенного цвета, СумНеЦвет — определяет сумму значений в ячейках выделенных любым цветом (не белого цвета)

2. Если такой закладки вы не видите, щелкните на кнопке Officeв левом верхнем углу и затем на кнопке «Параметры Excel»:

3. В открывшемся окне «Параметры Excel» перейдите на вкладку «Основные» и поставьте галочку в строке «Показывать меню Разработчик на ленте». Нажмите Ok

4. Создайте на листе Excel диапазон со значениями; несколько ячеек раскрасьте:

5. Перейдите на вкладку Разработчик и щелкните на VisualBasic:

6. У вас откроется окно VBA, содержащее окно VBAProject:

7. Если окна VBAProjectнет на экране

щелкните на меню View — Project Explorer:

8. Если вы хотите использовать создаваемый код VBA в любом Excel-файле, вам следует его записать в VBAProject, относящийся к Personal.xlsb. Если вы хотите применять код только в одном файле, с которым вы сейчас работаете, сохраните код в VBAProject`е именно этого файла (в нашем случае Сумма по цвету.xlsm):

9. Допустим, вы решили, что создаваемая функция будет использоваться в дальнейшем в различных файлах. Щелкните правой кнопкой мыши на VBAProject(Personal.xlsb) и выберите Insert — Module


Появится окно нового модуля, в которое следует перенести код:

Function СумЦвет(диапазон As Range, критерий As Range) As Double " Определяет сумму значений в ячейках "диапазона", " цвет которых совпадает с цветом в ячейке "критерий" Application.Volatile True Dim i As Range For Each i In диапазон If i.Interior.Color = критерий.Interior.Color Then СумЦвет = СумЦвет + i End If Next End Function

Function СумЦвет(диапазонAs Range , критерийAs Range ) As Double

" Определяет сумму значений в ячейках "диапазона",

" цветкоторыхсовпадаетсцветомвячейке"критерий"

Application . Volatile True

Dim i As Range

For Each i In диапазон

If i . Interior . Color = критерий. Interior . Color Then

СумЦвет= СумЦвет+ i

End If

Next

End Function

Номер вашего модуля (у меня он 5) будет зависеть от числа ранее созданных модулей.

Несколько слов о коде:

Function СумЦвет (диапазон AsRange, критерий AsRange) AsDouble/ Задает пользовательскую функция под названием СумЦвет с двумя параметрами: диапазоном суммирования и критерием – ячейкой, по цвету которой определяется, значения в каких ячейках суммировать.

Application.Volatile True/ Заставит нашу функцию пересчитываться при любом изменении значения в любой из ячеек на листе

Dim i AsRange/ Определяет переменную i, как диапазон ячеек

For Eachi In диапазон / Для всех ячеек из выбранного диапазона

If i.Interior.Color = критерий.Interior.Color Then/ Если цвет ячейки совпадает с критерием

СумЦвет = СумЦвет + i.Value/ то добавляем значение, хранящееся в ячейке в сумму

10. Вы создали пользовательскую функцию СумЦвет, которую можно найти в категории «Определенные пользователем»


11. Окно мастера функции выглядит также, как и для стандартной функции Excel

Хочу обратить ваше внимание на две особенности функции СумЦвет:

  • При изменении значения в одной из ячеек происходит автоматический пересчет значения функции СумЦвет. Если вы поменяли только цвет ячейки , автоматический пересчет не произойдет. Нажмите F9.
  • К сожалению, функция не работает, если ячейки раскрашены с помощью условного форматирования. Это ограничение можно преодолеть, если применить правила, использованные в условном форматировании, в функциях СУММЕСЛИ и СУММЕСЛИМН. Подробнее см.

На основании комментариев, появившихся после первой публикации заметки, добавил в Excel-файл код функций:

  • КолЦвет – определяет число ячеек выделенного цвета
  • СумНеЦвет – определяет сумму значений в ячейках выделенных любым цветом (не белого цвета)
  • КолНеЦвет – определяет число выделенных ячеек (не белых)

Подсчет ячеек по цвету заливки

Функция подсчитывает количество ячеек, заливка которых имеет определенный цвет. Может пригодиться, если ведется учет каких-либо соревнований и каждое место в туре имеет свой цвет ячейки. После заполнения такая таблица может и выглядит очень наглядно, но подсчитать количество первых мест, вторых, третьих становится большой проблемой, ведь в Excel до сих пор нет функций, способных суммировать/подсчитывать ячейки по цвету.

Вызов команды через стандартный диалог:

Вызов с панели MulTEx:

Сумма/Поиск/Функции - Математические - СчетЯчеек_Заливка

Синтаксис:
=СчетЯчеек_Заливка($E$2:$E$20 ; $E$7 ; I13 ; $A$2:$A$20)

ДиапазонСчета ($E$2:$E$20) - диапазон значений для подсчета. Можно указать несколько столбцов. Столбец с критерием(если планируется считать еще и по критерию) не обязательно должен входит в диапазон.

ЯчейкаОбразец ($E$7) - ячейка-образец с цветом заливки. Ячейки с этим цветом будут подсчитаны.

Критерий (I13) - необязательный аргумент. Если указан, то подсчитываются ячейки с указанным критерием и цветом заливки. Допускается применение в критерии символов подстановки - "*" и "?" . Например, для подсчета только ячеек, в которых содержится слово "мир" необходимо указать в качестве критерия - "*мир*" . Если необходимо посчитать количество непустых ячеек с указанным цветом заливки, то можно указать критерий: "*?*" . Если не указан, то подсчитываются все ячейки с указанным цветом заливки.
Так же данный аргумент может принимать в качестве критерия символы сравнения (, =,):

  • ">0" - будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых больше нуля;
  • ">=2" - будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых больше или равно двум;
  • "0" - будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых не равно нулю;
  • "" - будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых не пустые;

Вместо нуля может быть любое число или текст. Так же можно добавить ссылку на ячейку со значением: ""&D$1

ДиапазонКритерия ($A$2:$A$20) - Необязательный аргумент. Указывается диапазон, в котором следует искать критерий(если критерий указан) . ДиапазонКритерия должен быть равен по количеству ячеек ДиапазонуСчета . Если ДиапазонКритерия не указан, то критерий просматривается в ДиапазонеСчета .

ИспУФ () - Необязательный аргумент. Допускается указание логических значений ИСТИНА(TRUE) или ЛОЖЬ(FALSE). По умолчанию принимает значение ИСТИНА. Если указан как ИСТИНА, то функция будет подсчитывать ячейки с учетом примененного к ним условного форматирования. Если указан как ЛОЖЬ, то функция будет подсчитывать ячейки без учета примененного условного форматирования, т.е. даже если условное форматирование применено и ячейка окрашена с его помощью, а реальный цвет заливки не соответствует цвету ЯчейкиОбразца - то она не будет подсчитана.

Функция подсчитывает любые ячейки, заливка которых равна заливке ячейки-образца. Даже если ячейка будет пустая, но заливка будет равна указанной - ячейка будет подсчитана. Чтобы подсчитать только заполненные ячейки в качестве критерия следует указать - "*?*" , а ДиапазонКритерия не указывать.

Важно: Функция не вычисляется при изменении цвета заливки. Для пересчета функции после изменения параметров необходимо выделить ячейку и нажать F2 -Enter . Либо нажать сочетания клавиш Shift +F9 (пересчет функций активного листа) или клавишу F9 (пересчет функций всей книги)

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

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

Надстройка «Счёт по цвету» мгновенно и без VBA агрегирует значения любого типа цветовой расцветки:

  • Вычисление СЧЁТ, СУММ, СРЗНАЧ, МИН, МАКС для каждого цвета
  • Агрегация по цвету заливки и/или цвету условного форматирования
  • Cчёт по цвету фона ячеек или цвету шрифта
  • Предпросмотр и вставка таблицы результата на рабочий лист

Добавить «Счёт по цвету» в Excel 2019, 2016, 2013, 2010, 2007

Подходит для: Microsoft Excel 2019 - 2007, desktop Office 365 (32-бит и 64-бит).

Как работать с надстройкой:

Как посчитать значения ячеек на основе цвета заливки

Excel по-разному обрабатывает два типа цветного фона ячеек: заливка сплошным цветом, заданная пользователем (когда вы сами назначаете цвет) и условный цвет (при применении условного форматирования). С надстройкой вы можете агрегировать значения по каждому типу цветного фона.

  1. Нажмите кнопку «Счёт по цвету» на панели XLTools > Укажите диапазон.
    • Заданные цвета - чтобы учитывать только ячейки со сплошной заливкой фона
  2. Из следующего выпадающего списка выберите «Вычислять по цвету» «Фона».

  3. Внимание: надстройка автоматически распознает и произведет расчёт по всем цветам в диапазоне. Ячейки без фона, без заливки и ячейки с белой заливкой обрабатываются вместе. Так, вы сможете сравнить результаты вычислений по цветным и бесцветным ячейкам.
  4. Нажмите OK > Готово!

Как посчитать значения ячеек на основе цвета шрифта

Excel по-разному обрабатывает два типа цветного шрифта: цвет шрифта, заданный пользователем (когда вы сами назначаете цвет) и условный цвет шрифта (при применении условного форматирования). С надстройкой вы можете агрегировать значения по каждому типу цветного шрифта.

  1. Нажмите кнопку «Счёт по цвету» на панели XLTools > Укажите диапазон.
    Совет: нажмите на любую ячейку таблицы, и она будет выбрана автоматически.
  2. Из выпадающего списка «Учитывать только» выберите, какой тип цветовой расцветки следует учитывать в дальнейших расчётах:
    • Заданные цвета - чтобы учитывать только ячейки заданным цветом шрифта
    • Все цвета - чтобы учитывать все ячейки, как с заданными, так и условными цветами.
  3. Из следующего выпадающего списка выберите «Вычислять по цвету» «Шрифта».
  4. Посмотрите результаты в сводной таблице результатов агрегатных вычислений: Счёт, Сумм, Срзнач, Мин, Макс - с разбивкой по цвету.
  5. Выберите поместить результаты на новый или существующий лист.
  6. Нажмите OK > Готово!

Как посчитать значения ячеек на основе цвета условного форматирования

Excel по-разному обрабатывает два типа цветного фона ячеек: заливка сплошным цветом, заданная пользователем (когда вы сами назначаете цвет) и условный цвет (при применении условного форматирования). Условное форматирование может применятся как к шрифту, так и к фону фчейки. С надстройкой вы можете агрегировать значения по любому типу условного цвета.

  1. Нажмите кнопку «Счёт по цвету» на панели XLTools > Укажите диапазон.
    Совет: нажмите на любую ячейку таблицы, и она будет выбрана автоматически.
  2. Из выпадающего списка «Учитывать только» выберите, какой тип цветовой расцветки следует учитывать в дальнейших расчётах:
    • Условные цвета - чтобы учитывать только ячейки с условным форматированием
    • Все цвета - чтобы учитывать все ячейки, как с заданными, так и условными цветами.
  3. Из следующего выпадающего списка выберите «Вычислять по цвету» «Фона» или «Шрифта», в зависимости от типа условного форматирования.
  4. Посмотрите результаты в сводной таблице результатов агрегатных вычислений: Счёт, Сумм, Срзнач, Мин, Макс - с разбивкой по цвету.
  5. Выберите поместить результаты на новый или существующий лист.
  6. Нажмите OK > Готово!

Доступные агрегатные вычисления (Count, Sum, Average, Minimum, Maximum)

Надстройка производит расчёт самых частых агрегатных функций, на основе цвета шрифта или фона ячейки:

  • СЧЁТ (COUNT) - подсчёт количества всех значений в диапазоне по цвету
  • СУММ (SUM) - сумма всех значений в диапазоне по цвету
  • СРЗНАЧ (AVERAGE) - среднее (арифметическое среднее) всех значений в диапазоне по цвету
  • МИН (MIN) - наименьшее значение в диапазоне по цвету
  • МАКС (MAX) - наибольшее значение в диапазоне по цвету

Как ячейки и значения учитываются при вычислениях

Надстройка автоматически распознает и произведет расчет по всем цветам в диапазоне. Включая чёрный цвет по умолчанию — так, вы сможете сравнить результаты значений с цветным и чёрным цветом шрифта.

  • В расчёт принимаются: числовые значения, а также формулы, функции, ссылки на ячейки, которые возвращают числовое значение. Все пустые ячейки и ячейки, которые содержат текст, даты, ошибки игнорируются.
  • Надстройка игнорирует скрытые строки или столбцы, т.е. в вычислениях учитываются только видимые ячейки. Если вы хотите провести вычисления по всему диапазону, пожалуйста, отобразите строки/столбцы и очистите фильтры.
  • Вставленная на лист, сводная таблица с результатами вычислений содержит значения (не формулы и не ссылки).
  • Объединённые ячейки обрабатываются как одна ячейка.
Появились вопросы или предложения? Оставьте комментарий ниже.

Нужно выделить повторяющиеся значения в столбце? Надо выделить первые 5 максимальных ячеек? Необходимо сделать термальную шкалу для наглядности (цвет меняется в зависимости от увеличения/уменьшения значения ячеек)? В Excel выделение цветом ячеек по условиям можно сделать очень быстро. В Excel за выделение цветом ячеек отвечает специальная функция «Условное форматирование». Настоятельно рекомендую! Подробнее читаем ниже:

Для начала, на ленте задач в главном меню найдите раздел Стили и нажмите на кнопку Условное форматирование,

При нажатии откроется меню, с разными вариантами этого редактирования. Как вы видите возможностей здесь действительно много.

Теперь подробнее о самых полезных:

Excel выделение цветом ячеек по условиям. Простые условия

Для этого зайдите в пункт Правила выделения ячеек. Если к примеру, вам нужно выделить все ячейки больше 100, нажмите кнопку Больше. В окне:

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

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

Чтобы выделить все повторяющиеся значения выберите соответствующее меню (см. картинку в начале статьи). Далее снова появиться окошко с форматированием. Настройте как вам удобно.

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

Выделение цветом первых/последних значений. Опять же условное форматирование

Для этого зайдите в пункт Правила отбора первых и последних ячеек и выберите нужный пункт. Помимо того, что можно выделить первые/последние значения (в том числе и по процентам), можно использовать возможность выделить данные выше и ниже среднего (пользуюсь даже чаще). Очень удобно для просмотра результатов отличающихся от нормы или среднего!

Построение термальной диаграммы и гистограммы

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

Гистограмма в ячейке (рисунок ниже) тоже крайне полезная функция, для выявления изменения значений и сравнения их.

Выделение цветом ячеек содержащих определенный текст

Очень часто нужно найти ячейки, которые содержат определенный набор символов, можно конечно воспользоваться функцией = , но проще и быстрее применить в условное форматирование, пройдите — Правила отбора ячеек — Текст содержит (см. картинку 2).

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

Excel выделение цветом. Фильтр по цвету

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