Как сделать так, чтобы цвет ячейки 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 2007 в программе встроили возможность сортировки ячеек по цвету. Таким образом, можно отфильтровать нужный нам цвет, выделить оставшиеся на виду ячейки и визуально посмотреть общее количество ячеек. Но что делать, если нам требуется делать это часто и при этом нам необходимо, чтобы все считалось и пересчитывалось с помощью формул.

Для этих целей необходимо использовать очень простенький макрос, а точнее пользовательскую функцию, назовем ее ColorNom , онапозволит нам вытягивать числовой код цвета заливки и далее по этому коду мы и будет считать общее количество ячеек, используя приемы, описываемые в статье

Итак, приступим. Зайдите в редактор Visual Basic, для этого:

в Excel 2003 нажмите на Сервис , далее Макрос и затем Редактор Visual Basic .

в Excel 2007, 2010 и 2013 это делается по-другому. Зайдите в раздел Разработчик , далее выберите Visual Basic

Внимание! Раздел панели инструментов Разработчик в Excel 2007 доступен по умолчанию, а в Excel 2010 и 2013 его необходимо включить. Это особенно полезно сделать тем пользователям, которые будут часто работать с макросами. Чтобы включить панель инструментов Разработчик в Excel 2010 или 2013 необходимо запустить Файл | Параметры | Настройка ленты после этого необходимо с правой стороны необходимо поставить галочку напротив надписи Разработчик

После того как откроется редактор Visual Basic, вставьте пустой модуль, для этого выберите меню Insert и далее Module

Public Function ColorNom (Cell As Range)
ColorNom = Cell.Font.ColorIndex
End Function

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

=ColorNom (A1)+Сегодня()*0

Пример подсчета количества значений по цвету цвету заливки ячеек в Excel

Рассмотрим вышеуказанный пример с перечнем фруктов. Мы определили код ячеек и отобразили его напротив каждой ячейки.

Вот так выглядят аргументы данной функции

СЧЁТЕСЛИ(диапазон ;критерий )

Пропишем формулу:

СЧЁТЕСЛИ($B$1:$B$8 ;E2 )

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

Скачать пример файла: (файл с поддержкой макросов)

Работая с таблицами 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) - наибольшее значение в диапазоне по цвету

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

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

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

Для выполнения данной операции необходим пакет утилит Excel под названием .

Вообще, подсчет по цветам удобен в том случае, если вы работаете с цветной таблицей.

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

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


Надстройку довольно легко использовать, она добавляется как вкладка в окне Excel, где вы можете найти все функции и утилиты услуги, предлагаемые ею. Интерфейс выглядит следующим образом:

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

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

Шаг 2: Теперь откройте вкладку ASAP Utilities. Из выпадающего списка Формулы выберите 12. Вставить функцию из библиотеки

Шаг 3: После этого появится диалоговое окно, содержащее множество формул. Из того же списка, выберите функцию ASAPCOUNTBYCELLCOLOR и нажмите кнопку OK.

Шаг 4: Теперь появится диалоговое окно с аргументами функции. Укажите их и нажмите кнопку ОК.

В поле Reference укажите диапазон, в котором необходимо произвести вычисления, Color_index_nr - адрес ячейки, цвет которой необходимо учитывать.

После нажатия на ОК вам будет показан результат:

Таким образом в Excel легко подсчитать количество ячеек по цвету фона.

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

Процесс подсчета в значительной степени похож на тот, что описан выше. Только в данном случае среди формул необходимо выбрать ASAPCOUNTBYFONTCOLOR .

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

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

Сумма ячеек по цвету фона

Для суммирования ячеек нужно выполнить следующее:

Шаг 1: Откройте лист Excel, имеющий цветные ячейки со значениями в них. Выберите конкретную ячейку, в которой нужно отобразить результат.

Шаг 2: Перейдите на вкладку в разделе формул опять-таки выберите раздел 12. Вставить функцию из библиотеки .

Шаг 3: Перечень функций прокрутите список вниз и выберите функцию ASAPSUMBYCELLCOLOR и нажмите кнопку OK.

Шаг 4: О ткроется диалоговое окно с аргументами функции. Здесь также нужно указать диапазон и адрес ячейки, фон которой учитывается при суммировании остальных ячеек. Нажмите кнопку OK и порадуйтесь результату.

Вот таким образом можно просуммировать ячейки по цвету фона. И весь процесс вряд ли занимает несколько секунд.

Сумма ячеек по цвету шрифта в них

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

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

Вывод

Использование пакета ASAP Utilities позволило быстро произвести подсчеты в ячейках с учетом цвета ячеек и цвета шрифта текста. ASAP Utilities гармонично вливается в интерфейс Excel, что весьма удобно для пользователя. Данный способ работы с цветными ячейки намного проще, нежели написание специальных макросов.

Оставьте свой комментарий!