Просуммируем значения ячеек в зависимости от цвета их заливки. Здесь же покажем, как подсчитать такие ячейки.
Функции для суммирования значений по цвету ячеек в 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 в последних версиях научился, то суммировать по цвету до сих пор не умеет.
Чтобы исправить этот существенный недостаток можно использовать несложные пользовательские макрофункции на Visual Basic, которые позволят нам суммировать/подсчитывать количество/среднее арифметическое ячеек с определенным цветом заливки/шрифта.
На вкладке Разработчик (Developer) нажмите кнопку Visual Basic или сочетание клавиш Alt+F11, чтобы открыть редактор макросов. Если такой вкладки у вас не видно, то включите ее в настройках Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon).
В окне редактора вставьте новый модуль через меню Insert — Module и скопируйте туда текст следующих функций:
Function CountByColor(DataRange As Range, ColorSample As Range) As Long Dim cell As Range, n As Long For Each cell In DataRange If cell.Interior.Color = ColorSample.Interior.Color Then n = n + 1 Next cell CountByColor = n End Function Function SumByColor(DataRange As Range, ColorSample As Range) As Double Dim cell As Range, total As Double For Each cell In DataRange If IsNumeric(cell) And cell.Interior.Color = ColorSample.Interior.Color Then total = total + cell.Value Next cell SumByColor = total End Function Function AverageByColor(DataRange As Range, ColorSample As Range) As Double Dim cell As Range, total As Double, n As Long For Each cell In DataRange If IsNumeric(cell) And cell.Interior.Color = ColorSample.Interior.Color Then total = total + cell.Value n = n + 1 End If Next cell AverageByColor = total / n End Function
Как легко сообразить, первая функция здесь вычисляет количество ячеек с заданным цветом заливки, вторая — сумму, а третья — среднее арифметическое. У всех функций два аргумента:
- DataRange — диапазон исходных ячеек с числами, раскрашенных в разные цвета
- ColorSample — ячейка, цвет заливки которой мы берём за образец
Если теперь вернуться в Excel, то в Мастере функций (вкладка Формулы — кнопка Вставить функцию) в появившейся там категории Определенные пользователем (User Defined) можно найти наши функции и вставить их на лист. Либо напрямую ввести их в строку формул, как любые другие функции Excel:
Добавление условий
Аналогичный подход можно легко масштабировать, добавляя, при необходимости, дополнительные условия в проверку (команда if … then…). Так, например, если нам нужно при вычислении среднего арифметического учитывать не только цвет заливки, но и цвет шрифта (т.е. считать не просто жёлтые, а именно жёлто-красные ячейки), то код нашей макро-функции будет выглядеть так:
Function AverageByColor2(DataRange As Range, ColorSample As Range) As Double Dim cell As Range, total As Double, n As Long For Each cell In DataRange If IsNumeric(cell) And cell.Interior.Color = ColorSample.Interior.Color And cell.Font.Color = ColorSample.Font.Color Then total = total + cell.Value n = n + 1 End If Next cell AverageByColor2 = total / n End Function
Разница только в добавленном через логическую связку «И» (and) условии на проверку соответствия цвета шрифта очередной проверяемой ячейки cell.Font.Color цвету шрифта ячейки-образца ColorSample.Font.Color.
Ограничения и нюансы пересчёта
У созданных нами макрофункций есть 2 важных нюанса.
Во-первых, эти функции «не видят» заливку, созданную с помощью условного форматирования, т.е. работают только с цветом, который был задан для ячеек вручную.
Во-вторых, к сожалению, изменение цвета заливки или цвета шрифта ячейки Excel не считает изменением её содержимого, поэтому не запускает пересчет формул. То есть при перекрашивании исходных ячеек с числами в другие цвета итоговая сумма/среднее/количество по нашим функциям автоматически пересчитываться пересчитываться не будет.
Полностью решить эту проблему невозможно, но есть несколько способов её обойти:
- Сделать двойной щелчок левой кнопкой мыши по ячейки с нашей формулой и нажать на Enter, т.е. имитировать повторный ввод функции в ячейку — Excel её заново пересчитает и выдаст обновленный результат.
- Можно использовать сочетание клавиш Ctrl+Alt+F9, которое принудительно заставит Excel пересчитать всё формулы и функции независимо от того, изменились ли для них исходные данные. Но это сочетание нужно будет не забывать нажимать каждый раз при изменении исходных данных.
- Добавить в код наших макрофункций (в любое место) команду Application.Volatile True. Эта команда языка Visual Basic заставляет Excel пересчитывать результаты нашей функции при изменении любой ячейки на листе (или по нажатию F9). Однако, в этом случае, скорость работы наших функций заметно снизится, т.к. их пересчёт будет происходить постоянно — даже когда мы не меняли цвета или значения ячеек в исходных данных. Пользуйтесь этим методом осторожно.
И помните о том, что наша функция перебирает все (и пустые тоже) ячейки в диапазоне DataRange и не задавайте в качестве первого аргумента целый столбец — «думать» будет долго
Ссылки по теме
- Сортировка строк по цвету
- Функции подсчета количества и суммы ячеек по цвету из надстройки PLEX
- Что такое «ад условного форматирования» и как его победить
Сложение значений в зависимости от цвета ячеек в MS 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 в последних версиях научился, то суммировать по цвету до сих пор не умеет.
Чтобы исправить этот существенный недостаток можно использовать несложную пользовательскую функцию на Visual Basic, которая позволит нам суммировать ячейки с определенным цветом.
Откройте редактор Visual Basic:
- В Excel 2003 и старше для этого нужно выбрать в меню Сервис — Макрос — Редактор Visual Basic (Tools — Macro — Visual Basic Editor)
- В новых версиях Excel 2007-2013 перейти на вкладку Разработчик (Developer) и нажать кнопку Visual Basic. Если такой вкладки у вас не видно, то включите ее в настройках Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon)
В окне редактора вставьте новый модуль через меню Insert — Module и скопируйте туда текст вот такой функции:
Если теперь вернуться в Excel, то в Мастере функций (Вставка — Функция) в появившейся там категории Определенные пользователем (User Defined) можно найти нашу функцию и вставить ее на лист:
У нее два аргумента:
- DataRange — диапазон раскрашенных ячеек с числами
- ColorSample — ячейка, цвет которой принимается как образец для суммирования
Цвет шрифта
Легко изменить нашу функцию, чтобы она учитывала не цвет заливки фона, а цвет шрифта ячейки. Для этого в строке 6 просто замените свойство Interior на Font в обеих частях выражения.
Количество вместо суммы
Если вам нужно подсчитывать не сумму покрашенных определенным цветом ячеек, а всего лишь их количество, то наша функция будет еще проще. Замените в ней 7-ю строку на:
Нюансы пересчета
К сожалению изменение цвета заливки или цвета шрифта ячейки Excel не считает изменением ее содержимого, поэтому не запускает пересчет формул. То есть при перекрашивании исходных ячеек с числами в другие цвета итоговая сумма по нашей функции пересчитываться не будет.
Полностью решить эту проблему невозможно, но можно ее существенно облегчить. Для этого в третьей строке нашей функции используется команда Application.Volatile True. Она заставляет Excel пересчитывать результаты нашей функции при изменении любой ячейки на листе (или по нажатию F9).
И помните о том, что наша функция перебирает все (и пустые тоже) ячейки в диапазоне DataRange и не задавайте в качестве первого аргумента целый столбец — «думать» будет долго 🙂
СуммаЯчеек_Заливка
Данная функция является частью надстройки MulTEx
- Описание, установка, удаление и обновление
- Полный список команд и функций MulTEx
- Часто задаваемые вопросы по MulTEx
- Скачать MulTEx
Суммирование ячеек по цвету заливки
Как часто Вы при работе с таблицами окрашиваете ячейки в тот или иной цвет? Желтый — расходы Транспортного отдела, Красный — Экономического, Зеленый — Администрация и т.п. А потом хочется все эти расходы просуммировать, и не просто просуммировать ВСЕ расходы, а только расходы в ячейках с определенным цветом заливки. Это еще одна нерешенная проблема Excel. Разработчики категорически не хотят встраивать в него хоть какую-то функцию для суммирования данных в ячейках с определенным цветом заливки. Именно это делает данная функция — СуммаЯчеек_Заливка.
Вызов команды через стандартный диалог:
Мастер функций—Категория «MulTEx»— СуммаЯчеек_Заливка
Вызов с панели MulTEx:
Сумма/Поиск/Функции — Математические — СуммаЯчеек_Заливка
Синтаксис:
=СуммаЯчеек_Заливка( $E$2:$E$20 ; $E$7 ; I3 ; $A$2:$A$20 )
В принципе, данная функция аналогична по сути стандартной СУММЕСЛИ, только в качестве основного критерия здесь ячейка с заливкой. Но можно указать и привычный критерий — значение ячейки, в таком случае суммироваться будут ячейки с указанным цветом и критерием.
ДиапазонСуммирования( $E$2:$E$20 )- диапазон значений для суммирования. Можно указать несколько столбцов. Столбец с критерием(если планируется суммировать еще и по критерию) не обязательно должен входит в диапазон.
ЯчейкаОбразец( $E$7 ) — ячейка-образец заливки. Ссылка на ячейку с цветом заливки.
Критерий( I3 ) — необязательный аргумент. Если указан, то суммируются ячейки с указанным критерием и цветом заливки. Допускается применение в критерии символов подстановки — «*» и «?» . Если не указан, то суммируются все ячейки с указанным цветом заливки. Если в диапазоне суммирования находятся ячейки с текстом, то они будут игнорироваться.
Так же данный аргумент может принимать в качестве критерия символы сравнения ( , =, <>, ):
- «>0» — будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых больше нуля;
- «>=2» — будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых больше или равно двум;
- » — будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых меньше нуля;
- » — будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых меньше или равно 60;
- «<>0″ — будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых не равно нулю;
- «<>» — будут просуммированы все ячейки в столбце суммирования, значения ячеек критериев для которых не пустые;
Вместо нуля может быть любое число или текст. Так же можно добавить ссылку на ячейку со значением: «<>«&D$1
ДиапазонКритерия( $A$2:$A$20 ) — Необязательный аргумент. Указывается диапазон, в котором следует искать критерий(если критерий указан). ДиапазонКритерия должен быть равен по количеству ячеек ДиапазонуСуммирования. Если ДиапазонКритерия не указан, то критерий просматривается в ДиапазонеСуммирования.
ИспУФ() — Необязательный аргумент. Допускается указание логических значений ИСТИНА(TRUE) или ЛОЖЬ(FALSE). По умолчанию принимает значение ИСТИНА. Если указан как ИСТИНА, то функция будет суммировать ячейки с учетом примененного к ним условного форматирования. Если указан как ЛОЖЬ, то функция будет суммировать ячейки без учета примененного условного форматирования, т.е. даже если условное форматирование применено и ячейка окрашена с его помощью, а реальный цвет заливки не соответствует цвету ЯчейкиОбразца — то её значение не будет суммироваться.
Важно: Функция не вычисляется при изменении цвета заливки. Для пересчета функции после изменения параметров необходимо выделить ячейку и нажать F2—Enter. Либо нажать сочетания клавиш Shift+F9(пересчет функций активного листа) или клавишу F9(пересчет функций всей книги)
Примечание: данная функция будет корректно работать даже при примененном к ячейке Условном форматировании. Однако если в ячейке/диапазоне присутствуют условия, формат для которых задан при помощи шкал, градиентов, гистограмм и значков — функция может вернуть некорректный результат. Связано это с тем, что Excel не предоставляет доступ к данным типам УФ извне.
Как посчитать количество и сумму ячеек по цвету в Excel 2010 и 2013
Из этой статьи Вы узнаете, как в Excel посчитать количество и сумму ячеек определенного цвета. Этот способ работает как для ячеек, раскрашенных вручную, так и для ячеек с правилами условного форматирования. Кроме того, Вы научитесь настраивать фильтр по нескольким цветам в Excel 2010 и 2013.
Если Вы активно используете разнообразные заливки и цвет шрифта на листах Excel, чтобы выделять различные типы ячеек или значений, то, скорее всего, захотите узнать, сколько ячеек выделено определённым цветом. Если же в ячейках хранятся числа, то, вероятно, Вы захотите вычислить сумму всех ячеек с одинаковой заливкой, например, сумму всех красных ячеек.
Как известно, Microsoft Excel предоставляет набор функций для различных целей, и логично предположить, что существуют формулы для подсчёта ячеек по цвету. Но, к сожалению, не существует формулы, которая позволила бы на обычном листе Excel суммировать или считать по цвету.
Если не использовать сторонние надстройки, существует только одно решение – создать пользовательскую функцию (UDF). Если Вы мало знаете об этой технологии или вообще никогда не слышали этого термина, не пугайтесь, Вам не придётся писать код самостоятельно. Здесь Вы найдёте отличный готовый код (написанный нашим гуру Excel), и всё, что Вам потребуется сделать – это скопировать его и вставить в свою рабочую книгу.
Как считать и суммировать по цвету на листе Excel
Предположим, у Вас есть таблица заказов компании, в которой ячейки в столбце Delivery раскрашены в зависимости от их значений: Due in X Days – оранжевые, Delivered – зелёные, Past Due – красные.
Теперь мы хотим автоматически сосчитать количество ячеек по их цвету, то есть сосчитать количество красных, зелёных и оранжевых ячеек на листе. Как я уже сказал выше, прямого решения этой задачи не существует. Но, к счастью, в нашей команде есть очень умелые и знающие Excel гуру, и один из них написал безупречный код для Excel 2010 и 2013. Итак, выполните 5 простых шагов, описанных далее, и через несколько минут Вы узнаете количество и сумму ячеек нужного цвета.
- Откройте книгу Excel и нажмите Alt+F11, чтобы запустить редактор Visual Basic for Applications (VBA).
- Правой кнопкой мыши кликните по имени Вашей рабочей книги в области Project – VBAProject, которая находится в левой части экрана, далее в появившемся контекстном меню нажмите Insert >Module.
- Вставьте на свой лист вот такой код:
- Сохраните рабочую книгу Excel в формате .xlsm (Книга Excel с поддержкой макросов).Если Вы не слишком уверенно чувствуете себя с VBA, то посмотрите подробную пошаговую инструкцию и массу полезных советов в учебнике Как вставить и запустить код VBA в Excel.
- Когда все закулисные действия будут выполнены, выберите ячейки, в которые нужно вставить результат, и введите в них функцию CountCellsByColor:
CountCellsByColor( диапазон , код_цвета )
В этом примере мы используем формулу =CountCellsByColor(F2:F14,A17), где F2:F14 – это диапазон, содержащий раскрашенные ячейки, которые Вы хотите посчитать. Ячейка A17 – содержит определённый цвет заливки, в нашем случае красный.
Точно таким же образом Вы записываете формулу для других цветов, которые требуется посчитать в таблице (жёлтый и зелёный).
Если в раскрашенных ячейках содержатся численные данные (например, столбец Qty. в нашей таблице), Вы можете суммировать значения на основе выбранного цвета ячейки, используя аналогичную функцию SumCellsByColor:
SumCellsByColor( диапазон , код_цвета )
Как показано на снимке экрана ниже, мы использовали формулу:
где D2:D14 – диапазон, A17 – ячейка с образцом цвета.
Таким же образом Вы можете посчитать и просуммировать ячейки по цвету шрифта при помощи функций CountCellsByFontColor и SumCellsByFontColor соответственно.
Замечание: Если после применения выше описанного кода VBA Вам вдруг потребуется раскрасить ещё несколько ячеек вручную, сумма и количество ячеек не будут пересчитаны автоматически после этих изменений. Не ругайте нас, это не погрешности кода
На самом деле, это нормальное поведение макросов в Excel, скриптов VBA и пользовательских функций (UDF). Дело в том, что все подобные функции вызываются только изменением данных на листе, но Excel не расценивает изменение цвета шрифта или заливки ячейки как изменение данных. Поэтому, после изменения цвета ячеек вручную, просто поставьте курсор на любую ячейку и кликните F2, а затем Enter, сумма и количество после этого обновятся. Так нужно сделать, работая с любым макросом, который Вы найдёте далее в этой статье.
Считаем сумму и количество ячеек по цвету во всей книге
Представленный ниже скрипт Visual Basic был написан в ответ на один из комментариев читателей (также нашим гуру Excel) и выполняет именно те действия, которые упомянул автор комментария, а именно считает количество и сумму ячеек определённого цвета на всех листах данной книги. Итак, вот этот код:
Добавьте этот макрос точно также, как и предыдущий код. Чтобы получить количество и сумму цветных ячеек используйте вот такие формулы:
Просто введите одну из этих формул в любую пустую ячейку на любом листе Excel. Диапазон указывать не нужно, но необходимо в скобках указать любую ячейку с заливкой нужного цвета, например, =WbkSumCellsByColor(A1), и формула вернет сумму всех ячеек в книге, окрашенных в этот же цвет.
Пользовательские функции для определения кодов цвета заливки ячеек и цвета шрифта
Здесь Вы найдёте самые важные моменты по всем функциям, использованным нами в этом примере, а также пару новых функций, которые определяют коды цветов.
Замечание: Пожалуйста, помните, что все эти формулы будут работать, если Вы уже добавили в свою рабочую книгу Excel пользовательскую функцию, как было показано ранее в этой статье.
Функции, которые считают количество по цвету:
- CountCellsByColor( диапазон , код_цвета ) – считает ячейки с заданным цветом заливки.В примере, рассмотренном выше, мы использовали вот такую формулу для подсчёта количества ячеек по их цвету:
где F2:F14 – это выбранный диапазон, A17 – это ячейка с нужным цветом заливки.
Все перечисленные далее формулы работают по такому же принципу.
Функции, которые суммируют значения по цвету ячейки:
- SumCellsByColor( диапазон , код_цвета ) – вычисляет сумму ячеек с заданным цветом заливки.
- SumCellsByFontColor( диапазон , код_цвета ) – вычисляет сумму ячеек с заданным цветом шрифта.
Функции, которые возвращают код цвета:
- GetCellFontColor( ячейка ) – возвращает код цвета шрифта в выбранной ячейке.
- GetCellColor( ячейка ) – возвращает код цвета заливки в выбранной ячейке.
Итак, посчитать количество ячеек по их цвету и вычислить сумму значений в раскрашенных ячейках оказалось совсем не сложно, не так ли? Но что если Вы не раскрашиваете ячейки вручную, а предпочитаете использовать условное форматирование, как мы делали это в статьях Как изменить цвет заливки ячеек и Как изменить цвет заливки строки, основываясь на значении ячейки?
Как посчитать количество и сумму ячеек по цвету, раскрашенных при помощи условного форматирования
Если Вы применили условное форматирование, чтобы задать цвет заливки ячеек в зависимости от их значений, и теперь хотите посчитать количество ячеек определённого цвета или сумму значений в них, то у меня для Вас плохие новости – не существует универсальной пользовательской функции, которая будет по цвету суммировать или считать количество ячеек и выводить результат в определённые ячейки. По крайней мере, я не слышал о таких функциях, а жаль
Конечно, Вы можете найти тонны кода VBA в интернете, который пытается сделать это, но все эти коды (по крайней мере, те экземпляры, которые попадались мне) не обрабатывают правила условного форматирования, такие как:
- Format all cells based on their values (Форматировать все ячейки на основании их значений);
- Format only top or bottom ranked values (Форматировать только первые или последние значения);
- Format only values that are above or below average (Форматировать только значения, которые находятся выше или ниже среднего);
- Format only unique or duplicate values (Форматировать только уникальные или повторяющиеся значения).
Кроме того, практически все эти коды VBA имеют целый ряд особенностей и ограничений, из-за которых они могут не работать корректно с какой-то конкретной книгой или типами данных. Так или иначе, Вы можете попытать счастье и google в поисках идеального решения, и если Вам удастся найти его, пожалуйста, возвращайтесь и опубликуйте здесь свою находку!
Код VBA, приведённый ниже, преодолевает все указанные выше ограничения и работает в таблицах Microsoft Excel 2010 и 2013, с любыми типами условного форматирования (и снова спасибо нашему гуру!). В результате он выводит количество раскрашенных ячеек и сумму значений в этих ячейках, независимо от типа условного форматирования, применённого на листе.
Как использовать код, чтобы посчитать количество цветных ячеек и просуммировать их значения
- Добавьте код, приведённый выше, на Ваш лист, как мы делали это в первом примере.
- Выберите диапазон (или диапазоны), в которых нужно сосчитать цветные ячейки или просуммировать по цвету, если в них содержатся числовые данные.
- Нажмите и удерживайте Ctrl, кликните по одной ячейке нужного цвета, затем отпустите Ctrl.
- Нажмите Alt+F8, чтобы открыть список макросов в Вашей рабочей книге.
- Выберите макрос SumCountByConditionalFormat и нажмите Run (Выполнить).В результате Вы увидите вот такое сообщение:
Для этого примера мы выбрали столбец Qty. и получили следующие цифры:
- Count – это число ячеек искомого цвета; в нашем случае это красноватый цвет, которым выделены ячейки со значением Past Due.
- Sum – это сумма значений всех ячеек красного цвета в столбце Qty., то есть общее количество элементов с отметкой Past Due.
- Color – это шестнадцатеричный код цвета выделенной ячейки, в нашем случае D2.
Рабочая книга с примерами для скачивания
Если у Вас возникли трудности с добавлением скриптов в рабочую книгу Excel, например, ошибки компиляции, не работающие формулы и так далее, Вы можете скачать рабочую книгу Excel с примерами и с готовыми к использованию функциями CountCellsByColor и SumCellsByColor, и испытать их на своих данных.
В Microsoft Excel, при создании таблиц, очень удобно и наглядно помечать ячейки цветом. Но что делать, если нам понадобиться суммировать значения ячеек одного цвета? По умолчанию, данной функции в Excel до сих пор нет. Решить эту проблему можно написав макрос в Visual Basic.
Для этого в Excel версии 2007-2013 переходим на вкладку Разработчик и нажимаем Visual Basic.
Если такой вкладки нет, то включаем ее следующим образом: Файл/Параметры/Настройка ленты и ставим галочку напротив слова Разработчик.
В открывшемся окне редактора нажимаем Insert/Module и копируем туда следующий текст:
Public Function SumByColor(DataRange As Range, ColorSample As Range) As Double Dim Sum As Double Application.Volatile True For Each cell In DataRange If cell.Interior.Color = ColorSample.Interior.Color Then Sum = Sum + cell.Value End If Next cell SumByColor = Sum End Function
Сохраняем изменения. Далее в Excel на вкладке Формулы выбираем пункт Вставить функцию. Необходимо выбрать категорию Определенные пользователем – тогда отобразится наша функция – SumByColor.
У этой функции 2 аргументы:
DataRange – диапазон ячеек с числами;
ColorSample – ячейка, цвет которой является образцом для суммирования.
Вот и все. Данная функция корректно работает на последних версиях Excel. Надеюсь, она пригодится Вам при составлении отчетов.
How to SUM cells with certain background colors.
Sections:
Prepare the Data
SUMIF Cells with Certain Colors
SUMIFS Cells with Certain Colors
Notes
Prepare the Data
To get the data ready, we need to put the cell colors into an adjacent column so that we can use the SUM functions on them. To do this, we use a macro that will output the numerical representation of each color into Excel.
Here is the macro:
Sub ListColors()
For Each c In Selection
c.Offset(0, 1).Value = c.Interior.Color
Next c
End Sub
Install the macro like this: Hit Alt + F11 to go to the VBA Window and go to Insert > Module on the menu. In the window that opens, paste the above macro.
Next, go to the data table and insert a new column directly to the right of the old column.
Next, select all of the cells that have background colors and run the macro.
Hit Alt + F8 to get to the macro window, select the macro, and click the Run button.
Now, you should see the new column filled with numbers that are unique to each color.
Your data is now setup for the SUM functions.
SUMIF Cells with Certain Colors
(make sure to setup your data like in the previous section)
Here is a sample SUMIF that you can now use to sum only the light-grey cells.
=SUMIF(C2:C9,C6,E2:E9)
You could also hard-code the number in like this:
=SUMIF(C2:C9,13750737,E2:E9)
SUMIFS Cells with Certain Colors
(make sure to setup your data like in the first section of this tutorial)
Here is a SUMIFS function (available in Excel 2007 and later) that will sum all cells that are not light-green and do not begin with «gsc».
=SUMIFS(E2:E9,C2:C9,"<>8122747",A2:A9,"<>gsc*")
Notes
The most important thing is to prepare the data correctly. The numbers generated by the macro are what allow you to include or exclude values based on a cell’s color.
Make sure that the column where you put the numbers for the colors is directly to the right of the column with the colors; the macro will automatically input data in the first column to the right of the cells that you select.
You can hide the Color Value column once you finish making your formulas; it will still work and then it won’t mess-up the design of your table.
Download the attached project file so you can see these examples in Excel.
Similar Content on TeachExcel
Formulas Based on Cell Color — SUMIFS, IF, COUNTIF, Etc.
Tutorial:
How to use a SUMIF or SUMIFS function (or any conditional function or formula) on cell ba…
SUMIF — Sum Values Based on Criteria in Excel
Tutorial:
The SUMIF function allows you to sum values based on a single criteria. This function wor…
SUMIFS — Sum Values Based on Multiple Criteria in Excel
Tutorial:
The SUMIFS function allows you to sum values that meet multiple criteria across multiple …
Sum Values that Meet 1 of Multiple Conditions in Excel
Tutorial:
How to sum values that equal one of many potential criteria; this is basically summing wi…
Sum Values that Equal 1 of Many Conditions across Multiple Columns in Excel
Tutorial:
How to Sum values using an OR condition across multiple columns, including using OR with …
Wildcards in Excel
Tutorial:
Wildcards are characters that allow you to make more robust functions, searches, and filt…
Subscribe for Weekly Tutorials
BONUS: subscribe now to download our Top Tutorials Ebook!
Как посчитать количество и сумму ячеек по цвету в Excel 2010 и 2013
Смотрите также ячеек с определенным посчитать сумму ячеек Некоторые из них- диапазон раскрашенных таблице возникает необходимостьВ7 помощью Автофильтра, Макрофункции которым выделены ячейки indRefColor As Long функции, которая будет показано ранее в определённого цвета на используя аналогичную функцию Each cellCurrent In
To xlRange.Rows.Count For ячейкам применены правилаИз этой статьи Вы форматом; выделенных цветом решаю сама, а ячеек с числами сделать отчет. Иформулу =Цвет и ПОЛУЧИТЬ.ЯЧЕЙКУ() и VBA. со значением Dim cellCurrent As по цвету суммировать этой статье. всех листах даннойSumCellsByColor rData If indRefColor
indColumn = 1 условного форматирования узнаете, как вCount_CellColor — подсчетMichael_S вот с некоторымиColorSample если фильтровать и скопируйте ее вниз.Добавьте справа еще одинPast Due Range Dim cntRes или считать количество
CountCellsByColor(диапазон, код_цвета) книги. Итак, вот: = cellCurrent.Font.Color Then To xlRange.Columns.Count arResults(indRow,Предположим, у Вас есть Excel посчитать количество ячеек с определенным: Смотря как они совсем немогу справиться.- ячейка, цвет сортировать по цветуСложение значений организовано так столбец с заголовком. As Long Dim ячеек и выводить– считает ячейки этот код:SumCellsByColor(диапазон, код_цвета) cntRes = cntRes
- indColumn) = xlRange(indRow, таблица заказов компании, и сумму ячеек
- цветом заливки, включая выделены. Если вручную Поэтому обнаружив такой
- которой принимается как Excel в последних же как и Код цвета.
Как считать и суммировать по цвету на листе Excel
Sum sumRes Dim cntCells результат в определённые с заданным цветомFunction WbkCountCellsByColor(cellRefColor AsКак показано на снимке + 1 End indColumn).Interior.Color Next Next в которой ячейки определенного цвета. Этот условное форматирование; — то только замечательный форум, решила
образец для суммирования версиях научился, то в предыдущем разделе.Выделите заголовки и нажмите– это сумма As Long Dim ячейки. По крайней заливки.В примере, рассмотренном Range) Dim vWbkRes экрана ниже, мы If Next cellCurrent GetCellColor = arResults в столбце способ работает какCell_Color — для макросом, если применялось обратиться к ВамЛегко изменить нашу функцию, суммировать по цветуМакрофункция работает кривовато: CTRL+SHIFT+L, т.е. вызовите значений всех ячеек indCurCell As Long мере, я не выше, мы использовали
- Dim wshCurrent As использовали формулу: CountCellsByFontColor = cntRes Else GetCellColor =Delivery для ячеек, раскрашенных
- определения числового кода УФ — то за помощью. чтобы она учитывала до сих поресли вы измените цвет Автофильтр (подробнее здесь) красного цвета в cntRes = 0 слышал о таких вот такую формулу Worksheet Application.ScreenUpdating ==SumCellsByColor(D2:D14,A17)
- End Function Function xlRange.Interior.Color End If
раскрашены в зависимости вручную, так и цвета заливки; по условию УФесть образцы цвета не цвет заливки не умеет. ячейки, то макрофункцияВызовите меню Автофильтра, выберите столбце sumRes = 0 функциях, а жаль для подсчёта количества False Application.Calculation =где SumCellsByFontColor(rData As Range, End Function Function от их значений: для ячеек сCell_Font — дляvikttur ячеек (В1,В2), в фона, а цветЧтобы исправить этот существенный не обновит значения зеленый цветQty. cntCells = Selection.CountLargeКонечно, Вы можете найти ячеек по их xlCalculationManual vWbkRes =D2:D14 cellRefColor As Range) GetCellFontColor(xlRange As Range)Due in X Days правилами условного форматирования. определения числового кода: Например, Надстройка для таблице ниже необходимо шрифта ячейки. Для недостаток можно использовать кода (для этогоБудут отображены только строки, то есть общее indRefColor = ActiveCell.DisplayFormat.Interior.Color тонны кода VBA цвету: 0 For Each– диапазон, Dim indRefColor As Dim indRow, indColumn– оранжевые, Кроме того, Вы цвета шрифта. суммирования по цвету посчитать количество ячеек этого в строке несложную пользовательскую функцию нужно опять скопировать с зелеными ячейками количество элементов с For indCurCell = в интернете, который=CountCellsByColor(F2:F14,A17) wshCurrent In WorksheetsA17 Long Dim cellCurrent As Long DimDelivered научитесь настраивать фильтрНо как этим заливки,шрифта, формату определенного цвета по 6 просто замените на Visual Basic, формулу изВведите напротив каждого «зеленого» отметкой 1 To (cntCells пытается сделать это,где wshCurrent.Activate vWbkRes =– ячейка с As Range Dim arResults() Application.Volatile If– зелёные, по нескольким цветам воспользоваться не знаю,Tyron определенной строке. только свойство которая позволит намВ7 значения число 1Past Due — 1) If но все этиF2:F14 vWbkRes + CountCellsByColor(wshCurrent.UsedRange, образцом цвета. sumRes Application.Volatile sumRes xlRange Is NothingPast Due в Excel 2010 помогите !!!: С надстройкой получилось не с помощьюInterior суммировать ячейки свниз или выделить ячейку,Сделайте тоже для всех
- . indRefColor = Selection(indCurCell).DisplayFormat.Interior.Color коды (по крайней– это выбранный cellRefColor) Next Application.ScreenUpdatingТаким же образом Вы = 0 indRefColor Then Set xlRange– красные. и 2013.Или может знает подсчитать количество ячеек Надстройки MyAddinна
- определенным цветом. нажать клавишу цветовColor Then cntRes = мере, те экземпляры, диапазон, = True Application.Calculation
можете посчитать и
= cellRefColor.Cells(1, 1).Font.Color = Application.ThisCell EndТеперь мы хотим автоматическиЕсли Вы активно используете кто другой способ по цветам.Serge_007FontОткройте редактор Visual Basic:F2Введите формулу =СУММЕСЛИ(B7:B17;E7;A7:A17) как показано– это шестнадцатеричный cntRes + 1
которые попадались мне)A17 = xlCalculationAutomatic WbkCountCellsByColor просуммировать ячейки по For Each cellCurrent If If xlRange.Count
сосчитать количество ячеек разнообразные заливки иAbram pupkinА как сделать: Без макросов нев обеих частяхВ Excel 2003 ии затем в файле примера код цвета выделенной sumRes = WorksheetFunction.Sum(Selection(indCurCell),
не обрабатывают правила
– это ячейка = vWbkRes End цвету шрифта при
In rData If
> 1 Then по их цвету, цвет шрифта на: Если ячейки закрашивались чтобы при изменении получится, формулы не
выражения. старше для этогоENTER (лист Фильтр). ячейки, в нашем sumRes) End If условного форматирования, такие с нужным цветом Function Function WbkSumCellsByColor(cellRefColor
помощи функций indRefColor = cellCurrent.Font.Color ReDim arResults(1 To то есть сосчитать листах Excel, чтобы вручную, тогда только цвета ячейки автоматически работают с цветомЕсли вам нужно подсчитывать нужно выбрать в)Для подсчета значений используйте
случае Next MsgBox «Count=» как: заливки. As Range) DimCountCellsByFontColor Then sumRes = xlRange.Rows.Count, 1 To количество красных, зелёных выделять различные типы через макросы. пересчитывалось и ихjulytt не сумму покрашенных менюфункция возвращает только 56 функцию СЧЕТЕСЛИ().D2 & cntRes &Format all cells basedВсе перечисленные далее формулы vWbkRes Dim wshCurrentи WorksheetFunction.Sum(cellCurrent, sumRes) End xlRange.Columns.Count) For indRow и оранжевых ячеек ячеек или значений,То что вы
Считаем сумму и количество ячеек по цвету во всей книге
количество?: вот я и определенным цветом ячеек,Сервис — Макрос - цветов (так называемаяСразу предупрежу, что начинающему. vbCrLf & «Sum= on their values работают по такому As Worksheet Application.ScreenUpdatingSumCellsByFontColor If Next cellCurrent = 1 To на листе. Как
то, скорее всего, написали — этоЗ.Ы. Пример в хотеле с макросами, а всего лишь Редактор Visual Basic палитра EXCEL), т.е. пользователю EXCEL будетЕсли у Вас возникли » & sumRes(Форматировать все ячейки же принципу. = False Application.Calculationсоответственно. SumCellsByFontColor = sumRes xlRange.Rows.Count For indColumn я уже сказал захотите узнать, сколько и есть фрагменты файле. Подскажите кто а вот то их количество, то (Tools — Macro если цвета близки, сложно разобраться с трудности с добавлением & vbCrLf & на основании ихCountCellsByFontColor(диапазон, код_цвета)
= xlCalculationManual vWbkResЗамечание: End Function = 1 To выше, прямого решения ячеек выделено определённым от макросов.
знает пожалуйста!
что мне удалось
наша функция будет — Visual Basic например, зеленый и этим и следующим скриптов в рабочую vbCrLf & _ значений);– считает ячейки = 0 ForЕсли после примененияСохраните рабочую книгу Excel xlRange.Columns.Count arResults(indRow, indColumn) этой задачи не цветом. Если жеЕсли ячейки закрашивалHugo
Пользовательские функции для определения кодов цвета заливки ячеек и цвета шрифта
нарыть в интеренте еще проще. Замените Editor) светло зеленый, то разделом. книгу Excel, например, «Color=» & Left(«000000»,Format only top or
с заданным цветом Each wshCurrent In выше описанного кода в формате = xlRange(indRow, indColumn).Font.Color существует. Но, к в ячейках хранятся компьютер ( через: Никак. не работает. если
Функции, которые считают количество по цвету:
в ней 7-ю
В новых версиях Excel коды этих цветовИдея заключается в том, ошибки компиляции, не 6 — Len(Hex(indRefColor))) bottom ranked values шрифта. Worksheets wshCurrent.Activate vWbkRes VBA Вам вдруг
.xlsm Next Next GetCellFontColor счастью, в нашей числа, то, вероятно, условное форматирование) ,Но можно сделать возможно окажите помощь строку на:
2007-2013 перейти на могут совпасть. Подробнее чтобы автоматически вывести
работающие формулы и
& _ Hex(indRefColor)(Форматировать только первыеSumCellsByColor(диапазон, код_цвета)
Функции, которые суммируют значения по цвету ячейки:
= vWbkRes +
потребуется раскрасить ещё(Книга Excel с = arResults Else команде есть очень
Вы захотите вычислить тогда можно воспользоваться по событию выделения
Функции, которые возвращают код цвета:
Serge_007
Sum = Sum + вкладку об этом см. в соседнем столбце
так далее, Вы & vbCrLf, , или последние значения);
– вычисляет сумму SumCellsByColor(wshCurrent.UsedRange, cellRefColor) Next несколько ячеек вручную, поддержкой макросов).Если Вы GetCellFontColor = xlRange.Font.Color умелые и знающие сумму всех ячеек формулами условного форматирования ячейки — хотя: 1Разработчик (Developer) лист файла примера числовой код фона можете скачать рабочую «Count & SumFormat only values that ячеек с заданным
Как посчитать количество и сумму ячеек по цвету, раскрашенных при помощи условного форматирования
Application.ScreenUpdating = True сумма и количество не слишком уверенно End If End Excel гуру, и с одинаковой заливкой, и найти нужную/ это костыли, иQuoteК сожалению изменение цветаи нажать кнопку Colors. Как следствие, ячейки (в MS книгу Excel с by Conditional Format are above or цветом заливки. Application.Calculation = xlCalculationAutomatic ячеек не будут чувствуете себя с Function Function CountCellsByColor(rData один из них
например, сумму всех сумму. ненадёжные, и тормозные(julytt)200?’200px’:»+(this.scrollHeight+5)+’px’);»>олько не с заливки или цвета Visual Basic. Если будут сложены значения EXCEL все цвета примерами и с color» End Sub below average
- SumCellsByFontColor(диапазон, код_цвета) WbkSumCellsByColor = vWbkRes пересчитаны автоматически после VBA, то посмотрите As Range, cellRefColor
- написал безупречный код красных ячеек.Если цветные ячейки в целом.
- помощью Надстройки MyAddin шрифта ячейки Excel такой вкладки у из ячеек с имеют соответствующий числовой готовыми к использованию
- Добавьте код, приведённый выше,(Форматировать только значения,– вычисляет сумму End Function
этих изменений. Не подробную пошаговую инструкцию As Range) As для Excel 2010Как известно, Microsoft Excel имеют какую-нибудь периодичностьСтавьте подсчёт наВы сами себе не считает изменением вас не видно, разными цветами. код). Для этого функциями на Ваш лист, которые находятся выше ячеек с заданнымДобавьте этот макрос точно ругайте нас, это
и массу полезных Long Dim indRefColor и 2013. Итак, предоставляет набор функций ( напр каждая кнопку. противоречите ее содержимого, поэтому то включите ееВ файле примера на нам потребуется функция,CountCellsByColor как мы делали или ниже среднего); цветом шрифта. также, как и
не погрешности кода советов в учебнике As Long Dim выполните 5 простых для различных целей, четвертая имеет синийP.S. И кстатиВот аналогичная тема: не запускает пересчет в настройках листе VBA приведено которая может вернутьи это в первомFormat only unique orGetCellFontColor(ячейка) предыдущий код. ЧтобыНа самом деле, это Как вставить и cellCurrent As Range шагов, описанных далее, и логично предположить, цвет, а все у Вас вНарод подскажите как формул. То естьФайл — Параметры - решение с помощью этот код. НиSumCellsByColor примере. duplicate values– возвращает код
Как использовать код, чтобы посчитать количество цветных ячеек и просуммировать их значения
- получить количество и нормальное поведение макросов запустить код VBA Dim cntRes As и через несколько
- что существуют формулы красные заполнялись только формуле баксов не посчитать сумму ячеек при перекрашивании исходных Настройка ленты (File VBA. Решений может
- одна обычная функция, и испытать ихВыберите диапазон (или диапазоны),(Форматировать только уникальные цвета шрифта в сумму цветных ячеек в Excel, скриптов
- в Excel. Long Application.Volatile cntRes минут Вы узнаете для подсчёта ячеек по четным дням
- хватает — диапазон выделенных цветом ячеек с числами — Options - быть множество: этого не умеет. на своих данных. в которых нужно
или повторяющиеся значения). выбранной ячейке. используйте вот такие VBA и пользовательскихКогда все закулисные действия
- = 0 indRefColor количество и сумму по цвету. Но, календаря) то это сдвинулся, осторожно, можетВот тема с в другие цвета Customize Ribbon)можно создать кнопку, после
- Используем макрофункцию ПОЛУЧИТЬ.ЯЧЕЙКУ(),Урок подготовлен для Вас сосчитать цветные ячейкиКроме того, практически всеGetCellColor(ячейка) формулы: функций (UDF). Дело будут выполнены, выберите = cellRefColor.Cells(1, 1).Interior.Color ячеек нужного цвета. к сожалению, не
- тоже реально посчитать. наврать! форума Microsoft: итоговая сумма поВ окне редактора вставьте нажатия она будет которая возвращает код
Рабочая книга с примерами для скачивания
командой сайта office-guru.ru или просуммировать по эти коды VBA– возвращает код=WbkCountCellsByColor() в том, что ячейки, в которые For Each cellCurrentОткройте книгу Excel и существует формулы, которая Но для этогоTyronСуммирование по ячейкам, нашей функции пересчитываться новый модуль через вводить код цвета цвета заливки ячейки
Источник: https://www.ablebits.com/office-addins-blog/2013/12/12/count-sort-by-color-excel/ цвету, если в
имеют целый ряд
цвета заливки в
=WbkSumCellsByColor()
office-guru.ru
Сложение значений в зависимости от цвета ячеек в MS EXCEL
все подобные функции нужно вставить результат, In rData If нажмите позволила бы на
надо видеть файл: Спасибо! выделенным цветом не будет. меню в соседний столбец (она может много,Перевел: Антон Андронов них содержатся числовые
особенностей и ограничений, выбранной ячейке.Просто введите одну из вызываются только изменением и введите в
indRefColor = cellCurrent.Interior.ColorAlt+F11 обычном листе ExcelФайл можно загрузитьМарияjulyttПолностью решить эту проблемуInsert — Module
(реализован этот вариант). но нам потребуетсяАвтор: Антон Андронов данные. из-за которых они
С помощью Автофильтра (ручной метод)
- Итак, посчитать количество ячеек этих формул в данных на листе,
- них функцию Then cntRes =, чтобы запустить редактор
- суммировать или считать сюда
- : подскажите пожалуйста, могу: спасибо за подсказку
- невозможно, но можнои скопируйте туда
- можно написать пользовательскую функцию, только это ее
Просуммируем значения ячеек вНажмите и удерживайте могут не работать
по их цвету любую пустую ячейку
С помощью Макрофункции ПОЛУЧИТЬ.ЯЧЕЙКУ()
но Excel неCountCellsByColor cntRes + 1Visual Basic for Applications по цвету.
http://files.mail.ru/ ли сделать так, буду читать ее существенно облегчить. текст вот такой которая будет автоматически свойство). зависимости от цветаCtrl корректно с какой-то и вычислить сумму на любом листе расценивает изменение цвета: End If Next(VBA).Если не использовать сторонниеДенис чтобы в графике,RAN
Для этого в функции: обновлять код цветаПримечание: их заливки. Здесь, кликните по одной конкретной книгой или значений в раскрашенных Excel. Диапазон указывать шрифта или заливкиCountCellsByColor(диапазон, код_цвета) cellCurrent CountCellsByColor =Правой кнопкой мыши кликните надстройки, существует только: условное форматирование, создать где проставлены все: Почему так категорично?
- третьей строке нашейPublic Function SumByColor(DataRange при изменении цветаМакрофункции — это набор же покажем, как ячейке нужного цвета,
- типами данных. Так ячейках оказалось совсем
- не нужно, но
- ячейки как изменение
- В этом примере мы cntRes End Function по имени Вашей одно решение –
правило. дальше не сроки платежей, считатьjulytt
функции используется команда
- As Range, ColorSample ячейки (реализовать несколько функций к EXCEL подсчитать такие ячейки. затем отпустите или иначе, Вы не сложно, не необходимо в скобках данных. Поэтому, после используем формулу Function SumCellsByColor(rData As рабочей книги в создать пользовательскую функцию
- помню. смотреть лень. только оплаченные, при: сисадмины неразрешают ничегоApplication.Volatile True As Range) As сложнее); 4-й версии, которыеФункции для суммирования значенийCtrl можете попытать счастье так ли? Но указать любую ячейку изменения цвета ячеек=CountCellsByColor(F2:F14,A17)
С помощью VBA
Range, cellRefColor As области (UDF). Если Вы там ничего сложного выделении их цветом.
- устанавливать. Она заставляет Excel Double Dim Sumможно написать программу, которая нельзя напрямую использовать
- по цвету ячеек. и google в что если Вы с заливкой нужного вручную, просто поставьте
- , где Range) Dim indRefColorProject – VBAProject мало знаете об — разберешься Т.К., нужна суммаSerge_007 пересчитывать результаты нашей As Double Application.Volatile будет анализировать диапазон на листе EXCEL в EXCEL неНажмите поисках идеального решения, не раскрашиваете ячейки цвета, например,
excel2.ru
Сумма ячеек по цвету
курсор на любуюF2:F14 As Long Dim, которая находится в этой технологии илиrasinv только оплаченных: Надстройка — это функции при изменении True For Each цветных ячеек, определять современных версий, а существует (по крайнейAlt+F8 и если Вам вручную, а предпочитаете=WbkSumCellsByColor(A1)
ячейку и кликните– это диапазон, cellCurrent As Range левой части экрана, вообще никогда не: есть несколько таблицPelena
просто книга Excel,
- любой ячейки на cell In DataRange количество различных цветов, можно использовать только мере, в EXCEL, чтобы открыть список удастся найти его, использовать условное форматирование,, и формула вернет
- F2 содержащий раскрашенные ячейки, Dim sumRes Application.Volatile далее в появившемся слышали этого термина, одной и той: в которой хранятся листе (или по If cell.Interior.Color = вычислять в отдельном в качестве Именованной формулы. 2016 и в макросов в Вашей
пожалуйста, возвращайтесь и как мы делали сумму всех ячеек, а затем которые Вы хотите sumRes = 0 контекстном меню нажмите
не пугайтесь, Вам же длинны иМария макросы нажатию ColorSample.Interior.Color Then Sum диапазоне суммы для Макрофункции — промежуточный более ранних версиях). рабочей книге. опубликуйте здесь свою это в статьях в книге, окрашенныхEnter
посчитать. Ячейка indRefColor = cellRefColor.Cells(1,Insert не придётся писать высоты, читаем Правила форума,Как Вы будетеF9 = Sum + каждого цвета (реализовать
вариант между обычными
Вероятно, подавляющему большинству пользователей
- Выберите макрос находку! Как изменить цвет
- в этот же, сумма и количествоA17 1).Interior.Color For Each
Цвет шрифта
> код самостоятельно. Здесьвозможно подсчитать сумму создаём свою тему использовать ДРУГИЕ макросы,). cell.Value End If не сложно, но функциями и функциями это не требуется. SumКод VBA, приведённый ниже, заливки ячеек и
Количество вместо суммы
цвет. после этого обновятся.– содержит определённый cellCurrent In rDataModule Вы найдёте отличный в ячейках с и прикладываем файл если макросы из
И помните о том, Next cell SumByColor
Нюансы пересчета
у каждого пользователя VBA. Для работыПусть дан диапазон ячеекCountByConditionalFormat преодолевает все указанные Как изменить цветЗдесь Вы найдёте самые Так нужно сделать, цвет заливки, в If indRefColor =. готовый код (написанный определенным цветом?
с примером MyAddin ? что наша функция = Sum End свои требования: ячейки с этими функциями в столбце А.и нажмите выше ограничения и заливки строки, основываясь важные моменты по работая с любым нашем случае красный. cellCurrent.Interior.Color Then sumResВставьте на свой лист
нашим гуру Excel),будет ли сохранятсяКак в эксель сложитьRAN перебирает все (и Function с суммами должны требуется сохранить файл Пользователь выделил цветомRun работает в таблицах
planetaexcel.ru
Подсчет ячеек определенного цвета
на значении ячейки? всем функциям, использованным
макросом, который ВыТочно таким же образом = WorksheetFunction.Sum(cellCurrent, sumRes) вот такой код: и всё, что суммирование при копирование ячейки одного цвета?: Ну, если надстройку пустые тоже) ячейкиЕсли теперь вернуться в быть в определенном
в формате с ячейки, чтобы разбить(Выполнить). Microsoft Excel 2010Если Вы применили условное нами в этом найдёте далее в Вы записываете формулу
End If NextFunction GetCellColor(xlRange As Вам потребуется сделать таблицы в одном
Нашла в просторах низзя, тогда отдельно в диапазоне Excel, то в месте, необходимо учесть макросами *.xlsm значения по группам.В результате Вы увидите
и 2013, с форматирование, чтобы задать примере, а также этой статье. для других цветов,
cellCurrent SumCellsByColor = Range) Dim indRow,
– это скопировать
листе? интернета вот это зти макросы здесь.
DataRange Мастере функций (
возможность дополнения диапазонаСделайте активной ячейку
Необходимо сложить значения ячеек вот такое сообщение: любыми типами условного
цвет заливки ячеек пару новых функций,
Представленный ниже скрипт Visual которые требуется посчитать sumRes End Function
indColumn As Long его и вставитьбуду очень признателен :Надстройка для суммирования
и не задавайтеВставка — Функция новыми значениями иВ7
в зависимости отДля этого примера мы форматирования (и снова в зависимости от
которые определяют коды Basic был написан в таблице (жёлтый
Function CountCellsByFontColor(rData As Dim arResults() Application.Volatile в свою рабочую за помощьSumm_CellColor — сумирование
excelworld.ru
Народ подскажите как посчитать сумму ячеек выделенных цветом (Народ подскажите как посчитать сумму ячеек выделенных цветом)
по цвету заливки,шрифта, в качестве первого) в появившейся там пр.).
(это важно, т.к. цвета фона. Основная выбрали столбец спасибо нашему гуру!). их значений, и цветов. в ответ на
и зелёный). Range, cellRefColor As If xlRange Is книгу.
skype: rasinv ячеек с определенным формату аргумента целый столбец
категорииПомечать ячейки цветом, используя мы будем использовать задача: Как намQty.
В результате он теперь хотите посчитатьЗамечание:
один из комментариевЕсли в раскрашенных ячейках
Range) As Long Nothing Then SetСчитаем и суммируем поe-mail: rasinv_inbox.ru цветом заливки, включаяjulytt
— «думать» будетОпределенные пользователем (User Defined)
заливку или цвет относительную адресацию в «объяснить» функции сложения,и получили следующие выводит количество раскрашенных количество ячеек определённого
Пожалуйста, помните, что читателей (также нашим
содержатся численные данные Dim indRefColor As xlRange = Application.ThisCell цвету, когда ячейкиВсе имена заняты условное форматирование;: Всем спасибо з долго :)можно найти нашу шрифта, очень удобно
формуле) что нужно складывать цифры: ячеек и сумму цвета или сумму все эти формулы гуру Excel) и
excelworld.ru
Как в эксель сложить ячейки одного цвета ?
(например, столбец Long Dim cellCurrent End If If раскрашены вручную: Через пользовательскую функцию.
Summ_CellFont — сумирование участие и помощь.julytt функцию и вставить
и наглядно. ЕслиВ Диспетчере имен введите значения, например, толькоCount
значений в этих значений в них, будут работать, если
выполняет именно теQty. As Range Dim xlRange.Count > 1
Считаем сумму и количество См. ячейку C15. ячеек с определенным
Разбираюсь. Надеюсь все: Доброго дня всем! ее на лист:
вы не дальтоник, формулу =ПОЛУЧИТЬ.ЯЧЕЙКУ(63;Макрофункция!A7) зеленых ячеек?
– это число ячейках, независимо от
то у меня Вы уже добавили действия, которые упомянулв нашей таблице),
cntRes As Long Then ReDim arResults(1 ячеек по цветуrasinv
цветом шрифта, включая получиться.Пытаюсь усовершеннствовать таблицы, конечно ТрудностиНазовите ее ЦветЭто можно сделать разными
ячеек искомого цвета; типа условного форматирования, для Вас плохие в свою рабочую автор комментария, а Вы можете суммировать Application.Volatile cntRes = To xlRange.Rows.Count, 1 во всей книге: ГРОМАДНОЕ СПАСИБО условное форматирование;
Nikls2502 с которыми работаю.
У нее два аргумента:
возникают тогда, когдаЗакройте Диспетчер имен способами, приведем 3 в нашем случае применённого на листе. новости – не
Как подсчитать сумму в ячейках с определенным цветом
книгу Excel пользовательскую именно считает количество значения на основе 0 indRefColor = To xlRange.Columns.Count) For
Считаем и суммируем поОЧЕНЬ ПОМОГ!!!Summ_CellFormat — сумирование
: Народ подскажите как Возникает множество вопросов.DataRange по такой раскрашенной
Введите в ячейку из них: с
это красноватый цвет,
Sub SumCountByConditionalFormat() Dim
существует универсальной пользовательской функцию, как было и сумму ячеек
выбранного цвета ячейки, cellRefColor.Cells(1, 1).Font.Color For
indRow = 1
CyberForum.ru
цвету, когда к