Excel подсчет окрашенных ячеек

Как посчитать количество и сумму ячеек по цвету в Excel 2010 и 2013

​Смотрите также​ первая в .Рар​ Возникает множество вопросов.​ закрашены​ то будут учитываться​ галочку напротив пункта​ значений, которые больше​«больше»​ в выделенном диапазоне,​ условия подсчета.​.​Один из способов​ sumRes = 0​– возвращает код​ Basic был написан​

​ indRefColor = cellCurrent.Font.Color​Правой кнопкой мыши кликните​Из этой статьи Вы​ формате. Как скачал,​ Некоторые из них​насколько я понимаю,​ только такие ячейки,​«Количество»​ числа 150.​(​ а в нашем​С помощью оператора​Можно применить фильтр​узнать количество выделенных​ cntCells = Selection.CountLarge​ цвета шрифта в​ в ответ на​

​ Then sumRes =​ по имени Вашей​ узнаете, как в​ кликнул на нее​ решаю сама, а​ подобную задачу надо​ в которых содержится​. После этого счетчик​Выделяем ячейку для вывода​>​ случае в столбце,​СЧЁТЗ​ по цвету.​

​ строк – это​ indRefColor = ActiveCell.DisplayFormat.Interior.Color​ выбранной ячейке.​ один из комментариев​ WorksheetFunction.Sum(cellCurrent, sumRes) End​ рабочей книги в​ Excel посчитать количество​ и там что-то​ вот с некоторыми​ решать посредством VBA,​ значение больше числа​ опять будет отображаться.​ результата и производим​),​ который содержит числовые​, как и в​Затем выделить ячейки и​ настроить порядковые номера​ For indCurCell =​GetCellColor(ячейка)​ читателей (также нашим​

  • ​ If Next cellCurrent​ области​ и сумму ячеек​
    • ​ произошло…​ совсем немогу справиться.​ некоторые варианты я​
  • ​ 50. Также можно​Подсчитать количество заполненных ячеек​ переход в окно​«меньше»​

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

​ значения. Синтаксис этой​ предыдущем случае, имеется​ посмотреть количество в​ строк после фильтра.​​ 1 To (cntCells​​– возвращает код​ гуру Excel) и​​ SumCellsByFontColor = sumRes​​Project – VBAProject​​ определенного цвета. Этот​​Guest​​ Поэтому обнаружив такой​​ видел в интернете,​

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

​ задавать значения «»​ можно при помощи​ аргументов функции​(​ функции практически идентичен​ возможность подсчета всех​ строке состояния.​ Смотрите об этом​ — 1) If​ цвета заливки в​ выполняет именно те​ End Function​, которая находится в​ способ работает как​: То что Вы​ замечательный форум, решила​ у меня не​ (не равно) и​ функции СЧЁТЗ. Она​СЧЁТЕСЛИ​),​ предыдущему оператору:​ значений, расположенных в​Здесь ячейки выделены условным​ способе статью «Порядковый​

  1. ​ indRefColor = Selection(indCurCell).DisplayFormat.Interior.Color​ выбранной ячейке.​​ действия, которые упомянул​​Сохраните рабочую книгу Excel​​ левой части экрана,​​ для ячеек, раскрашенных​
  2. ​ открыли надстройку и​ обратиться к Вам​ получилось​ т.д.​​ отличается от предыдущего​​.​«не равно»​=СЧЁТ(значение1;значение2;…)​ столбце. Но в​​ форматированием. Отфильтровали по​​ номер строк по​​ Then cntRes =​​Итак, посчитать количество ячеек​Подсчет и суммирование ячеек по цвету в Excel
  3. ​ автор комментария, а​ в формате​

​ далее в появившемся​ вручную, так и​ у Вас функции​ за помощью.​помогите, пожалуйста​После того, как выделили​ способа тем, что​В поле​(​Как видим, аргументы у​ отличие от варианта​ цвету. В строке​ порядку после фильтра​ cntRes + 1​ по их цвету​ именно считает количество​.xlsm​ контекстном меню нажмите​ для ячеек с​ появились, то так​есть образцы цвета​KoGG​ ячейку для вывода​ позволяет зафиксировать подсчет​«Диапазон»​<>​СЧЁТ​ с индикатором в​ состояния написано, что​ в Excel»​ sumRes = WorksheetFunction.Sum(Selection(indCurCell),​ и вычислить сумму​ и сумму ячеек​(Книга Excel с​Insert​ правилами условного форматирования.​ и должно быть.​ ячеек (В1,В2), в​: Function СчетЕслиЦвет(Oblast As​ результата и запустили​ определенного диапазона в​вводим координаты третьего​) и т.д.​и​ панели состояния, данный​ выделено 3 строки​Второй способ​ sumRes) End If​ значений в раскрашенных​ определённого цвета на​ поддержкой макросов).Если Вы​>​ Кроме того, Вы​ Но пока Вы​ таблице ниже необходимо​ Range, Obrazec As​ Мастер функций, выбираем​ отдельной ячейке. То​ столбца нашей таблицы.​Посчитаем, сколько ячеек с​СЧЁТЗ​ способ предоставляет возможность​ (ячейки).​–​ Next MsgBox «Count=»​ ячейках оказалось совсем​ всех листах данной​ не слишком уверенно​Module​ научитесь настраивать фильтр​ не установите надстройку​ посчитать количество ячеек​ Range) As Variant​ запись​ есть, для просмотра​В поле​ наименованием​абсолютно одинаковые и​ зафиксировать полученный результат​Как преобразовать формат​посчитать количество выделенных ячеек​ & cntRes &​ не сложно, не​ книги. Итак, вот​ чувствуете себя с​.​ по нескольким цветам​ как положено, Вам​ определенного цвета по​ ‘ Считает число​«СЧЁТЕСЛИ»​ информации по нему​«Критерий»​«Мясо»​ представляют собой ссылки​ в отдельном элементе​ данных из других​ в столбце Excel​ vbCrLf & «Sum=​ так ли? Но​ этот код:​ VBA, то посмотрите​Вставьте на свой лист​ в Excel 2010​ придется запускать её​ определенной строке. только​ ячеек в заданном​. Кликаем по кнопке​ область не нужно​записываем следующее условие:​располагаются в первой​

  1. ​ на ячейки или​ листа.​​ программ в формат​​.​ » & sumRes​ что если Вы​Function WbkCountCellsByColor(cellRefColor As​ подробную пошаговую инструкцию​ вот такой код:​ и 2013.​ каждый раз вручную.​ не с помощью​ диапазоне, цвет фона​«OK»​
  2. ​ будет постоянно выделять.​>150​ колонке таблицы.​ диапазоны. Различие в​Главной задачей функции​ числа Excel, чтобы​​Выделяем ячейки в​​ & vbCrLf &​

    ​ не раскрашиваете ячейки​

​ Range) Dim vWbkRes​ и массу полезных​​Function GetCellColor(xlRange As​​Если Вы активно используете​​А про «Там​​ Надстройки MyAddin​ которых совпадает с​.​Выделяем область, в которую​​Это означает, что программа​​Выделяем элемент на листе,​ синтаксисе заключается лишь​СЧЁТЗ​

​ формулы считали такие​ столбце и смотрим​ vbCrLf & _​ вручную, а предпочитаете​ Dim wshCurrent As​ советов в учебнике​

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

​ Range) Dim indRow,​ разнообразные заливки и​ help-a нет на​​Serge_007​​ цветом фона ячейки​Открывается окно аргументов. У​ будет выводиться результат​ будет подсчитывать только​ куда будет производиться​​ в наименовании самого​​, которая относится к​

​ числа, смотрите в​

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

​ внизу листа Excel​ «Color=» & Left(«000000»,​ использовать условное форматирование,​

​ Worksheet Application.ScreenUpdating =​

​ Как вставить и​​ indColumn As Long​​ цвет шрифта на​​ этих функциях» -​​: Без макросов не​ образца. Dim Summa1​

​ данной функции два​ подсчета. Кликаем по​ те элементы столбца,​ вывод готовых данных.​ оператора.​​ статистической категории операторов,​​ статье «Преобразовать текст​​ в строке состояния​​ 6 — Len(Hex(indRefColor)))​

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

​ как мы делали​​ False Application.Calculation =​ запустить код VBA​ Dim arResults() Application.Volatile​ листах Excel, чтобы​ какую функцию Вам​ получится, формулы не​ As Variant, c​ аргумента: диапазон, где​ значку​ которые содержат числа,​ Щелкаем по значку​:)

​Выделяем элемент на листе,​ как раз является​ в число Excel».​ цифру «Количество». Это​ & _ Hex(indRefColor)​ это в статьях​ xlCalculationManual vWbkRes =​ в Excel.​ If xlRange Is​ выделять различные типы​ пояснить поподробней? Их​ работают с цветом​ As Range, ObrazecCvet​ происходит подсчет ячеек,​«Вставить функцию»​ превышающие 150.​«Вставить функцию»​ куда будет выводиться​​ подсчет количества непустых​​В некоторых случаях перед​​ число заполненных выделенных​​ & vbCrLf, ,​ Как изменить цвет​ 0 For Each​Когда все закулисные действия​ Nothing Then Set​ ячеек или значений,​ там несколько.{/post}{/quote}​

Считаем сумму и количество ячеек по цвету во всей книге

​julytt​ As Long ObrazecCvet​ и критерий, то​.​Далее, как всегда, жмем​.​ результат. Нажимаем уже​ ячеек. Поэтому мы​ пользователем ставится задача​ ячеек. Пустые ячейки​ «Count & Sum​ заливки ячеек и​ wshCurrent In Worksheets​ будут выполнены, выберите​ xlRange = Application.ThisCell​

​ то, скорее всего,​Summ_Color если есть​: вот я и​ = Obrazec.Interior.Color For​ есть, условие, о​Открывается окно Мастера функций.​ на кнопку​В​ знакомую нам иконку​ её с легкостью​ не подсчета суммы​ так Excel не​ by Conditional Format​ Как изменить цвет​ wshCurrent.Activate vWbkRes =​ ячейки, в которые​ End If If​ захотите узнать, сколько​ и Count_Color​ хотеле с макросами,​ Each c In​ котором мы говорили​ Ищем в представленном​«OK»​Мастере функций​«Вставить функцию»​ сможем приспособить для​ значений в столбце,​ считает. Но, если​

​ color» End Sub​ заливки строки, основываясь​ vWbkRes + CountCellsByColor(wshCurrent.UsedRange,​ нужно вставить результат,​ xlRange.Count > 1​ ячеек выделено определённым​Inter_E​

​ а вот то​
​ Oblast.Cells If c.Interior.Color​

​ выше. В поле​ списке элемент​.​совершаем переход в​.​ наших нужд, а​ а подсчета их​ нужно посчитать строку,​Добавьте код, приведённый выше,​ на значении ячейки?​​ cellRefColor) Next Application.ScreenUpdating​​ и введите в​ Then ReDim arResults(1​ цветом. Если же​: Т.е я должен​ что мне удалось​

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

​ = ObrazecCvet Then​«Диапазон»​«СЧЁТЗ»​После проведения подсчета Excel​ категорию​После запуска​ именно для подсчета​ количества. То есть,​

​ в которой в​​ на Ваш лист,​Если Вы применили условное​ = True Application.Calculation​ них функцию​ To xlRange.Rows.Count, 1​ в ячейках хранятся​ вводить диапазон и​ нарыть в интеренте​ Summa1 = Summa1​

Функции, которые считают количество по цвету:

  • ​вводим координаты обрабатываемой​​. После того, как​ выводит в заранее​«Статистические»​Мастера функций​ элементов столбца, заполненных​ попросту говоря, нужно​ столбце А нет​ как мы делали​

    ​ форматирование, чтобы задать​

    ​ = xlCalculationAutomatic WbkCountCellsByColor​​CountCellsByColor​​ To xlRange.Columns.Count) For​ числа, то, вероятно,​​ затем номер цвета​​ не работает. если​ + 1 End​ области, а в​

    ​ это наименование выделено,​ обозначенную ячейку результат.​, выделяем название​

  • ​опять перемещаемся в​​ данными. Синтаксис этой​ подсчитать, сколько ячеек​ значений, а есть​

Функции, которые суммируют значения по цвету ячейки:

  • ​ это в первом​​ цвет заливки ячеек​ = vWbkRes End​:​
  • ​ indRow = 1​​ Вы захотите вычислить​ определенной заливки? Допустим​ возможно окажите помощь​

Функции, которые возвращают код цвета:

  • ​ If Next СчетЕслиЦвет​​ поле​ жмем на кнопку​ Как видим, выбранный​
  • ​СЧЁТЕСЛИ​​ категорию​ функции следующий:​ в данном столбце​Подсчет и суммирование ячеек по цвету в Excel

​ в столбце В,​ примере.​ в зависимости от​ Function Function WbkSumCellsByColor(cellRefColor​CountCellsByColor(диапазон, код_цвета)​ To xlRange.Rows.Count For​ сумму всех ячеек​ зеленый, какой код​Serge_007​ = Summa1 End​«Критерий»​«OK»​ столбец содержит 82​и щелкаем по​«Статистические»​=СЧЁТЗ(значение1;значение2;…)​ заполнено определенными числовыми​ то выделяем ячейку​

Как посчитать количество и сумму ячеек по цвету, раскрашенных при помощи условного форматирования

​Выберите диапазон (или диапазоны),​ их значений, и​ As Range) Dim​В этом примере мы​ indColumn = 1​ с одинаковой заливкой,​ у него?​:​ Function Function СумЕслиЦвет(Oblast​вписываем условия. После​.​ значения, которые превышают​ кнопке​. Затем выделяем наименование​Всего у оператора может​ или текстовыми данными.​ столбца В. Главное,​ в которых нужно​ теперь хотите посчитать​ vWbkRes Dim wshCurrent​ используем формулу​ To xlRange.Columns.Count arResults(indRow,​:(

​ например, сумму всех​Inter_E​Quote​ As Range, Obrazec​ этого жмем на​Запускается окно аргументов. Аргументами​ число 150.​«OK»​«СЧЁТ»​ насчитываться до 255​ В Экселе существует​

  • ​ чтобы были выделены​ сосчитать цветные ячейки​​ количество ячеек определённого​ As Worksheet Application.ScreenUpdating​=CountCellsByColor(F2:F14,A17)​
  • ​ indColumn) = xlRange(indRow,​ красных ячеек.​​: Вы издеваетесь?!​(julytt)200?’200px’:»+(this.scrollHeight+5)+’px’);»>олько не с​
  • ​ As Range) As​ кнопку​ этой функции являются​​Таким образом, мы видим,​.​и щелкаем по​
  • ​ аргументов общей группы​ целый ряд инструментов,​​ ячейки всех нужных​ или просуммировать по​

​ цвета или сумму​ = False Application.Calculation​, где​ indColumn).Interior.Color Next Next​Как известно, Microsoft Excel​Cell_Color — ячейка-образец​ помощью Надстройки MyAddin​ Variant ‘ Суммирует​«OK»​ ссылки на ячейки.​ что в Excel​Производится активация окошка аргументов​ кнопке «OK».​«Значение»​ которые способны решить​ строк. Например, так.​ цвету, если в​ значений в них,​

​ = xlCalculationManual vWbkRes​F2:F14​ GetCellColor = arResults​ предоставляет набор функций​ заливки. Разве здесь​Вы сами себе​ заданный диапазон ячеек​.​ Ссылку на диапазон​ существует целый ряд​ функции​После того, как было​. В качестве аргументов​ указанную проблему. Рассмотрим​Здесь выделили четыре строки.​ них содержатся числовые​

​ то у меня​ = 0 For​– это диапазон,​ Else GetCellColor =​ для различных целей,​ написано — «укажите​ противоречите​ при условии, что​Для ручного ввода шаблон​ можно прописать вручную,​ способов подсчитать количество​СЧЁТЕСЛИ​ запущено окно аргументов​ как раз выступают​ каждый из них​Третий способ​ данные.​ для Вас плохие​ Each wshCurrent In​ содержащий раскрашенные ячейки,​ xlRange.Interior.Color End If​ и логично предположить,​ код цвета заливки»?​Вот аналогичная тема:​ RGB цвет фона​ выглядит следующим образом:​ но лучше установить​ значений в столбце.​. Как видим, окно​ оператора​ ссылки на ячейки​ в отдельности.​.​

Как использовать код, чтобы посчитать количество цветных ячеек и просуммировать их значения

  1. ​Нажмите и удерживайте​ новости – не​ Worksheets wshCurrent.Activate vWbkRes​ которые Вы хотите​ End Function Function​
  2. ​ что существуют формулы​Вы просто ЩЕЛКАЕТЕ​Народ подскажите как​ слагаемого совпадает с​=СЧЁТЕСЛИ(диапазон;критерий)​ курсор в поле​ Выбор определенного варианта​
  3. ​ имеет два поля,​​СЧЁТ​​ или диапазон, в​Скачать последнюю версию​Можно в таблице​​Ctrl​​ существует универсальной пользовательской​
  4. ​ = vWbkRes +​​ посчитать. Ячейка​​ GetCellFontColor(xlRange As Range)​ для подсчёта ячеек​ НА ЯЧЕЙКУ с​
  5. ​ посчитать сумму ячеек​​ цветом фона ячейки​​После этого программа производит​​«Значение1»​​ зависит от конкретных​​ которые соответствуют аргументам​Подсчет и суммирование ячеек по цвету в Excel​, следует в его​ котором нужно произвести​

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

​ Excel​ фильтром отфильтровать нужные​​, кликните по одной​​ функции, которая будет​ SumCellsByColor(wshCurrent.UsedRange, cellRefColor) Next​

  • ​A17​​ Dim indRow, indColumn​ по цвету. Но,​ цветом заливки, который​ выделенных цветом​ образца. Dim Summa1​ подсчет заполненных ячеек​​, куда нужно ввести​​ целей пользователя. Так,​
  • ​ функции.​​ поле внести запись.​ подсчет значений.​Читайте также: Как посчитать​ данные. Затем выделить​​ ячейке нужного цвета,​​ по цвету суммировать​ Application.ScreenUpdating = True​– содержит определённый​​ As Long Dim​​ к сожалению, не​
  • ​ надо суммировать. Закрепляете​​Вот тема с​ As Variant, c​ выделенного диапазона, которые​ данные, и выделить​​ индикатор на строке​​В поле​

Рабочая книга с примерами для скачивания

​ В этом окне,​Выделяем элемент листа, в​ количество строк в​ отфильтрованные ячейки в​ затем отпустите​ или считать количество​ Application.Calculation = xlCalculationAutomatic​ цвет заливки, в​ arResults() Application.Volatile If​ существует формулы, которая​ эту ячейку(знаки долаара​ форума Microsoft:​​ As Range, ObrazecCvet​​ соответствуют заданному условию,​​ соответствующую область на​​ состояния позволяет только​«Диапазон»​

​ как и в​ который будет выводиться​
​ Excel​
​ столбце. В строке​

​Ctrl​

office-guru.ru

Количество выделенных строк в Excel.

​ ячеек и выводить​ WbkSumCellsByColor = vWbkRes​ нашем случае красный.​​ xlRange Is Nothing​ позволила бы на​​ $A$1 — ставятся​Суммирование по ячейкам,​ As Long ObrazecCvet​ и выводит их​ листе. Если нужно​ посмотреть количество всех​
​тем же способом,​​ окне предыдущей функции,​ итоговый результат. Щелкаем​Как посчитать количество​ состояния будет видно​.​ результат в определённые​ End Function​Точно таким же образом​ Then Set xlRange​
​ обычном листе Excel​​ через F4. Если​​ выделенным цветом​ = Obrazec.Interior.Color For​​ в область указанную​
​ произвести подсчет заполненных​ значений в столбце​ который мы уже​ тоже может быть​ по значку​ заполненных ячеек в​ количество строк. Помним,​Нажмите​ ячейки. По крайней​Добавьте этот макрос точно​ Вы записываете формулу​ = Application.ThisCell End​ суммировать или считать​ не получится -​julytt​ Each c In​ в первом пункте​ ячеек в нескольких​ без фиксации результата;​Посчитать выделенные строки в Excel.​ не раз описывали​
​ представлено до 255​​«Вставить функцию»​
​ Экселе​ что пустые ячейки​Alt+F8​ мере, я не​ также, как и​ для других цветов,​ If If xlRange.Count​ по цвету.​ ставьте вручную…){/post}{/quote}​: спасибо за подсказку​ Oblast.Cells If c.Interior.Color​​ этого способа.​
​ удаленных друг от​ функция​ выше, вводим координаты​ полей, но, как​, который размещен слева​В зависимости от целей​ не считаются в​, чтобы открыть список​
​ слышал о таких​ предыдущий код. Чтобы​ которые требуется посчитать​ > 1 Then​Если не использовать сторонние​
​Извини брат, что-то​ буду читать​ = ObrazecCvet Then​Оператор СЧЁТЕСЛИМН является продвинутым​ друга диапазонах, то​
​СЧЁТЗ​​ первого столбца таблицы.​
​ и в прошлый​ от строки формул.​​ пользователя, в Экселе​​ строке состояния. Получится​ макросов в Вашей​ функциях, а жаль​ получить количество и​ в таблице (жёлтый​ ReDim arResults(1 To​ надстройки, существует только​ у меня не​​RAN​ Summa1 = Summa1​ вариантом функции СЧЁТЕСЛИ.​ координаты второго, третьего​предоставляет возможность их​В поле​ раз, нам понадобится​Тем самым мы вызвали​ можно производить подсчет​ так.​ рабочей книге.​Конечно, Вы можете найти​ сумму цветных ячеек​ и зелёный).​ xlRange.Rows.Count, 1 To​ одно решение –​
​ правильно работает. Или​
​: Почему так категорично?​ + c.Value End​​ Его используют, когда​
​ и последующего диапазона​ число зафиксировать в​«Критерий»​ всего одно из​Мастер функций​ всех значений в​
​Выделены три строки.​
​Выберите макрос​ тонны кода VBA​ используйте вот такие​Если в раскрашенных ячейках​ xlRange.Columns.Count) For indRow​ создать пользовательскую функцию​ я совсем понял!​
​julytt​​ If Next СумЕслиЦвет​
​ нужно указать более​ нужно вводить в​​ отдельной ячейке; оператор​​нам нужно задать​ них под названием​​. Переходим в категорию​
​ столбце, только числовых​Быстро выделить столбец​
​Sum​ в интернете, который​ формулы:​
​ содержатся численные данные​ = 1 To​ (UDF). Если Вы​ Прикрепляю файл образец​: сисадмины неразрешают ничего​ = Summa1 End​
​ одного условия соответствия​ поля под названием​СЧЁТ​ условие подсчета. Вписываем​«Значение1»​«Статистические»​ данных и тех,​ можно так. Выделяем​

excel-office.ru

Подсчет количества значений в столбце в Microsoft Excel

Подсчет значений в столбце в Microsoft Excel

​CountByConditionalFormat​ пытается сделать это,​=WbkCountCellsByColor()​ (например, столбец​ xlRange.Rows.Count For indColumn​ мало знаете об​ там я написал​ устанавливать​ Function​ для различных диапазонов.​«Значение2»​производит подсчет только​ туда слово​. Вводим в это​и выделяем наименование​ которые соответствуют определенному​ верхнюю ячейку столбца.​

​и нажмите​ но все эти​

​=WbkSumCellsByColor()​Qty.​ = 1 To​
​ этой технологии или​ что нужно мне…​Serge_007​

Процедура подсчета значений в столбце

​Byronel​ Всего можно указать​,​ элементов, содержащих числовые​«Мясо»​ поле координаты столбца,​«СЧЁТЗ»​ заданному условию. Давайте​ Нажимаем на клавишу​Run​ коды (по крайней​

Способ 1: индикатор в строке состояния

​Просто введите одну из​в нашей таблице),​ xlRange.Columns.Count arResults(indRow, indColumn)​ вообще никогда не​ Заранее спасибо!​: Надстройка — это​: сразу предупреждаю, с​ до 126 условий.​«Значение3»​ данные; а с​

​.​ над которым нам​. После этого производим​ рассмотрим, как решить​ F8 и ставим​(Выполнить).​ мере, те экземпляры,​ этих формул в​ Вы можете суммировать​ = xlRange(indRow, indColumn).Font.Color​ слышали этого термина,​​Юрий М​​ просто книга Excel,​ VBA работал давно​Обозначаем ячейку, в которую​и т.д. Когда​ помощью функции​После того, как вышеуказанные​ нужно выполнить операцию.​ щелчок по кнопке​ поставленные задачи различными​

Количество значений в столбце отображаемое на строке состояния в Microsoft Excel

​ курсор в нижнюю​В результате Вы увидите​ которые попадались мне)​ любую пустую ячейку​ значения на основе​ Next Next GetCellFontColor​ не пугайтесь, Вам​: Inter_E, Вы читаете,​ в которой хранятся​создал модуль, забил​ будет выводиться результат​ все данные введены.​СЧЁТЕСЛИ​​ настройки выполнены, жмем​​ Делаем это все​«OK»​ способами.​ ячейку столбца. Нажимаем​

Включение индикатора количества на строке состояния в Microsoft Excel

​ вот такое сообщение:​ не обрабатывают правила​ на любом листе​ выбранного цвета ячейки,​ = arResults Else​ не придётся писать​ что Вам пишут?​ макросы​ туда этот код​ и запускаем Мастер​ Жмем на кнопку​можно задать более​ на кнопку​ тем же образом,​внизу данного окошка.​Данный способ самый простой​ левую мышку.​

Способ 2: оператор СЧЁТЗ

​Для этого примера мы​​ условного форматирования, такие​​ Excel. Диапазон указывать​ используя аналогичную функцию​ GetCellFontColor = xlRange.Font.Color​ код самостоятельно. Здесь​»Если в диапазоне​Как Вы будете​ и сохранил, выбрал​ функций. В нем​«OK»​ сложные условия подсчета​«OK»​ каким выполняли данную​

​Мы переходим к окну​​ и требующий минимального​​Или нажимаем сочетание​ выбрали столбец​ как:​ не нужно, но​SumCellsByColor​ End If End​ Вы найдёте отличный​ суммирования находятся ячейки​ использовать ДРУГИЕ макросы,​ имя модуля «test»​ ищем элемент​.​

​ элементов.​

​.​ процедуру для функции​ аргументов функции​​ количества действий. Он​​ клавиш «Ctrl» +​Qty.​Format all cells based​ необходимо в скобках​:​ Function Function CountCellsByColor(rData​

  1. ​ готовый код (написанный​ с текстом, то​ если макросы из​ и в конце​​«СЧЁТЕСЛИМН»​​Данную функцию также можно​Автор: Максим Тютюшев​

    Переход в Мастер функций в Microsoft Excel

  2. ​Оператор производит вычисления и​​СЧЁТЗ​​СЧЁТЗ​​ позволяет подсчитать количество​​ «А». Активная ячейка,​​и получили следующие​​ on their values​ указать любую ячейку​​SumCellsByColor(диапазон, код_цвета)​​ As Range, cellRefColor​

    Переход в окно аргументов функции СЧЁТЗ в Microsoft Excel

  3. ​ нашим гуру Excel),​ они будут игнорироваться.»​​ MyAddin ?​​ добавилось 2 строки​. Выделяем его и​ ввести вручную в​При выполнении определенных задач​ выдает результат на​: устанавливаем курсор в​. В нём располагаются​ ячеек, содержащих числовые​ при этом, находится​​ цифры:​​(Форматировать все ячейки​ с заливкой нужного​Как показано на снимке​ As Range) As​ и всё, что​ И тем не​RAN​»Sub test()​ жмем на кнопку​ ячейку или строку​ во время работы​​ экран. Как видим,​​ поле и выделяем​ поля ввода аргументов.​

    Окно аргументов функции СЧЁТЗ в Microsoft Excel

  4. ​ и текстовые данные.​ в таблице.​Count​ на основании их​ цвета, например,​ экрана ниже, мы​ Long Dim indRefColor​ Вам потребуется сделать​ менее, в своём​

Результат вычисления функции СЧЁТЗ в Microsoft Excel

​: Ну, если надстройку​End Sub»​«OK»​ формул, придерживаясь следующего​ с таблицей бывает​ в выделенной колонке​ колонку таблицы. После​ Как и количество​​ Сделать это можно​​О других сочетаниях​– это число​ значений);​

​=WbkSumCellsByColor(A1)​ использовали формулу:​

Способ 3: оператор СЧЁТ

​ As Long Dim​​ – это скопировать​​ примере пишете: «не​ низзя, тогда отдельно​забил внутрь текст​.​ синтаксиса:​ необходимость произвести подсчет​ в 63 ячейках​ того, как адрес​ аргументов, они могут​ просто взглянув на​ клавиш, чтобы выделить​ ячеек искомого цвета;​Format only top or​, и формула вернет​=SumCellsByColor(D2:D14,A17)​ cellCurrent As Range​ его и вставить​ важно цифры или​ зти макросы здесь.​

​ функций - пишется​

​Происходит открытие окна аргументов.​​=СЧЁТЗ(значение1;значение2;…)​​ заполненных данными ячеек.​​ содержится слово​​ столбца был занесен​ достигать численности 255​ индикатор в строке​ ячейки, смотрите в​ в нашем случае​ bottom ranked values​ сумму всех ячеек​

  1. ​где​ Dim cntRes As​ в свою рабочую​ буквы!»​​Надстройка для суммирования​​ компайл ерор, ожидается​

    Переход в Мастер функций в программе Microsoft Excel

  2. ​ Собственно, аргументы функции​​После того, как формула​​ Эксель предоставляет такую​«Мясо»​​ в поле, жмем​​ единиц. Но для​​ состояния.​​ статье «Сочетание клавиш​ это красноватый цвет,​

    Переход в окно аргументов функции СЧЁТ в Microsoft Excel

  3. ​(Форматировать только первые​ в книге, окрашенных​D2:D14​​ Long Application.Volatile cntRes​​ книгу.​Inter_E​ по цвету заливки,шрифта,​ End Sub, в​ те же самые,​ введена, программа в​ возможность с помощью​.​ на кнопку​ решения поставленной перед​Для выполнения данной задачи​ в Excel».​​ которым выделены ячейки​​ или последние значения);​ в этот же​– диапазон,​ = 0 indRefColor​Считаем и суммируем по​: Да, мне надо​ формату​ чем ошибка?​​ что и у​​ заранее выделенной области​ встроенных инструментов. Давайте​Давайте немного изменим задачу.​«OK»​ нами задачи хватит​ достаточно зажать левую​Четвертый способ​​ со значением​​Format only values that​

    Окно аргументов функции СЧЁТ в Microsoft Excel

  4. ​ цвет.​A17​ = cellRefColor.Cells(1, 1).Interior.Color​ цвету, когда ячейки​ чтоб и буквы​julytt​и попутно вопрос​ предыдущей –​ показывает результат подсчета​ выясним, как выполнить​ Теперь посчитаем количество​

​.​ и одного поля​

Способ 4: оператор СЧЁТЕСЛИ

​ кнопку мыши и​.​​Past Due​​ are above or​Здесь Вы найдёте самые​– ячейка с​ For Each cellCurrent​ раскрашены вручную​ считалось, потому и​

​: Всем спасибо з​​ — как узнать​​«Диапазон»​ заполненных ячеек указанного​ указанную процедуру в​ ячеек в этой​Результат тут же будет​«Значение1»​ выделить весь столбец,​Посчитать количество строк​.​ below average​ важные моменты по​ образцом цвета.​

​ In rData If​

​Считаем сумму и количество​​ он COUNT! Ну​​ участие и помощь.​ код цвета, насколько​и​ диапазона.​ этой программе.​

​ же колонке, которые​​ выведен в ячейку,​​. Устанавливаем в него​ в котором вы​ можно с помощью​Sum​(Форматировать только значения,​ всем функциям, использованным​​Таким же образом Вы​​ indRefColor = cellCurrent.Interior.Color​​ ячеек по цвету​​ как-то можно же​​ Разбираюсь. Надеюсь все​​ я понял именно​​«Условие»​​Кроме того, для подсчета​​Скачать последнюю версию​​ не содержат слово​​ которую мы определили​

​ курсор и после​ хотите произвести подсчет​​функции «Автосумма» в Excel​​– это сумма​ которые находятся выше​

  1. ​ нами в этом​ можете посчитать и​ Then cntRes =​ во всей книге​​ решить эту проблемку!​​ получиться.​

    Вставить функцию в Microsoft Excel

  2. ​ его значение нужно​​. Разница только в​​ заполненных ячеек в​ Excel​​«Мясо»​​ для содержания функции.​​ этого с зажатой​​ значений. Как только​. Выделяем ячейку, в​​ значений всех ячеек​​ или ниже среднего);​

    Переход в окно аргументов функции СЧЁТЕСЛИ в Microsoft Excel

  3. ​ примере, а также​ просуммировать ячейки по​​ cntRes + 1​​Считаем и суммируем по​ Просто на деле​Inter_E​ подставить в ObrazecCvet​

    ​ том, что диапазонов​​ Экселе существует ещё​​В программе Excel количество​.​ Как видим, программа​ левой кнопкой мыши​ выделение будет произведено,​

    ​ которой будет стоять​​ красного цвета в​​Format only unique or​ пару новых функций,​ цвету шрифта при​​ End If Next​​ цвету, когда к​

    ​ сижу, самому найти​: Добрый день!​Heidegger​​ и соответствующих им​​ функция счет. В​

    Окно аргументов функции СЧЁТЕСЛИ в Microsoft Excel

  4. ​ заполненных ячеек можно​Выделяем ячейку, куда будем​ подсчитала только ячейки,​ выделяем на листе​ в строке состояния,​ цифра количества строк.​​ столбце​​ duplicate values​

Результат вычисления функции СЧЁТЕСЛИ в Microsoft Excel

​ которые определяют коды​ помощи функций​ cellCurrent CountCellsByColor =​ ячейкам применены правила​ в стандартном екселе​​Как можно без​​: Текст функций не​

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

    ​ Нажимаем стрелку у​​Qty.​​(Форматировать только уникальные​ цветов.​CountCellsByFontColor​ cntRes End Function​

    ​ условного форматирования​​ через заводских надстройеек​​ VBA, просто с​

    ​ нужно никуда забивать​

    ​ много. Вводим адреса​ формулы, она считает​ счетчика на строке​ уже описанным ранее​ значения. Пустые ячейки​ в котором нужно​​ окна, около параметра​​ кнопки «Автосумма» на​​, то есть общее​​ или повторяющиеся значения).​​Замечание:​​и​

    ​ Function SumCellsByColor(rData As​Предположим, у Вас есть​ время сейчас берет!​​ использованием формулы IF​​ – они должны​

    Окно аргументов функции СЧЁТЕСЛИ в программе Microsoft Excel

  2. ​ диапазонов и соответствующие​ только ячейки заполненные​ состояния или целого​ способом вызываем окно​ и элементы, содержащие​ подсчитать. После того,​«Количество»​ закладке Excel «Главная»​​ количество элементов с​​Кроме того, практически все​

Результат вычисления функции СЧЁТЕСЛИ в программе Microsoft Excel

​Пожалуйста, помните, что​SumCellsByFontColor​ Range, cellRefColor As​ таблица заказов компании,​Заранее спасибо!​

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

    ​ текстовые данные, в​​ как координаты столбца​​будет отображаться число​ и выбираем функцию​

    ​ отметкой​​ эти коды VBA​​ все эти формулы​

    ​соответственно.​

    ​ Range) Dim indRefColor​ в которой ячейки​Юрий М​ ячейках которые залиты​ уровне.​

    ​ потом жмем на​Как и в предыдущем​​ из которых подсчитывает​​СЧЁТЕСЛИ​

    Подсчет значений больше 50 в окне аргументов функции СЧЁТЕСЛИ в Microsoft Excel

  2. ​ подсчете не участвовали.​ отобразились в поле,​ значений, содержащихся в​ «Число».​Past Due​ имеют целый ряд​ будут работать, если​

Результат подсчета значений больше 50 функцией СЧЁТЕСЛИ в Microsoft Excel

​Замечание:​ As Long Dim​ в столбце​: Я полагаю, что​ определенным цветом. Формула​Нет, вторым аргументом​ кнопку​ случае, выделяем ячейку,​ элементы, заполненные определенным​.​Урок: Функция СЧЁТ в​ жмем на кнопку​ столбце. В подсчете​Эта функция считает только​​.​​ особенностей и ограничений,​ Вы уже добавили​Если после применения​​ cellCurrent As Range​​Delivery​ штатными средствами такого​ будет считать по​ функции идёт ячейка,​​«OK»​​ куда будут выводиться​ типом данных.​В поле​

​ Excel​

lumpics.ru

Подсчет заполненных ячеек в Microsoft Excel

Подсчет заполненных ячеек в Microsoft Excel

​«OK»​ будут участвовать ячейки,​ заполненные строки. Если​Color​ из-за которых они​ в свою рабочую​ выше описанного кода​ Dim sumRes Application.Volatile​раскрашены в зависимости​ не сделать. Нужно​ горизонтали. (например зеленым)!​

​ имеющая целевой цвет,​.​

Подсчет ячеек

​ данные и таким​Самый простой способ подсчитать​«Диапазон»​В отличие от предыдущих​в нижней части​ заполненные любыми данными​ есть пустые ячейки​– это шестнадцатеричный​ могут не работать​

Способ 1: счетчик на строке состояния

​ книгу Excel пользовательскую​ VBA Вам вдруг​ sumRes = 0​ от их значений:​ изощряться :-)​Мой примерный план:​ вхождения которого ищутся​Синтаксис у этой функции​ же способом запускаем​ ячейки, содержащие данные​вводим координаты все​ способов, использование оператора​ окна аргументов.​ (числовые, текстовые, дата​ в столбце, то​ код цвета выделенной​ корректно с какой-то​ функцию, как было​ потребуется раскрасить ещё​ indRefColor = cellRefColor.Cells(1,​Due in X Days​Inter_E​​ =if(E36:G36,colorindex(15773696),counta(E36:G36))​​ во входном диапазоне​

Подсчет ячеек в строке состояния в Microsoft Excel

​ следующий:​ Мастер функций. В​ – это воспользоваться​ того же первого​СЧЁТЕСЛИ​Программа производит подсчет и​ и т.д.). Пустые​ в формуле исправляем​ ячейки, в нашем​ конкретной книгой или​ показано ранее в​ несколько ячеек вручную,​ 1).Interior.Color For Each​– оранжевые,​: У меня одна​Заранее благодарен.​​ (первый аргумент функции).​​=СЧЁТЕСЛИМН(диапазон_условия1;условие1; диапазон_условия2;условие2;…)​ нём выбираем оператора​

Включение счетчика в Microsoft Excel

Способ 2: функция СЧЁТЗ

​ информацией со счетчика,​ столбца таблицы, который​позволяет задавать условия,​ выводит в ячейку,​ элементы при подсчете​ адрес первой ячейки​ случае​ типами данных. Так​ этой статье.​ сумма и количество​ cellCurrent In rData​Delivered​

  1. ​ идейка, надо со​Юрий М​KoGG​После этого приложение производит​​ с наименованием​​ который размещен в​

    Переход к вставке функции в Microsoft Excel

  2. ​ обрабатывали ранее.​ отвечающие значения, которые​ которую мы выделяли​​ будут игнорироваться.​​ диапазона. Например, мы​D2​ или иначе, Вы​​CountCellsByColor(диапазон, код_цвета)​​ ячеек не будут​

    Переход к функции СЧЁТЗ в Microsoft Excel

  3. ​ If indRefColor =​– зелёные,​ стандартными средствами и​: В «Копилке» для​, прекрасный код, но​ подсчет заполненных ячеек​«СЧЁТ»​​ правой части строки​​В поле​ будут принимать участие​ на первом шаге​В некоторых случаях индикатор​ вставили формулу функцией​.​ можете попытать счастье​– считает ячейки​ пересчитаны автоматически после​ cellCurrent.Interior.Color Then sumRes​Past Due​ плюс функциями Прист-а​​ работы с закрашенными​​ я бы ещё​​ указанных диапазонов, которые​​. Жмем на кнопку​ состояния слева от​«Критерий»​​ в подсчете. Все​​ данной инструкции, количество​

    Функция СЧЁТЗ в Microsoft Excel

  4. ​ количества значений может​ «Автосумма». В этой​Если у Вас возникли​ и google в​ с заданным цветом​

    ​ этих изменений. Не​

    Введение вручную функции СЧЁТЗ в Microsoft Excel

  5. ​ = WorksheetFunction.Sum(cellCurrent, sumRes)​– красные.​ попробовать. Так попробовал​ ячейками есть функция​ добавил Application.Volatile, чтобы​ соответствуют установленным условиям.​

Резултьтат подсчета функции СЧЁТЗ в Microsoft Excel

Способ 3: функция СЧЁТ

​«OK»​ кнопок переключения режимов​вводим следующее выражение:​ остальные ячейки будут​ всех значений (как​ не высвечиваться в​ формуле указан диапазон​ трудности с добавлением​

  1. ​ поисках идеального решения,​ заливки.В примере, рассмотренном​ ругайте нас, это​ End If Next​Теперь мы хотим автоматически​ через стандартный COUNT​ от The_Prist.​ функция пересчитывалась хотя​​ Результат выводится в​​.​​ просмотра в Excel.​​<>Мясо​

    Переход к функции СЧЁТ в Microsoft Excel

  2. ​ игнорироваться.​ числовых, так и​ строке состояния. Это​ до первой пустой​ скриптов в рабочую​ и если Вам​ выше, мы использовали​ не погрешности кода​ cellCurrent SumCellsByColor =​ сосчитать количество ячеек​ и пристовским, че​Inter_E​​ бы по F9.​​ заранее отмеченную область.​

    Функция СЧЁТ в Microsoft Excel

    ​Запускается окно аргументов. Аргументы​ Пока на листе​

    ​То есть, данный критерий​

    Введение вручную функции СЧЁТ в Microsoft Excel

  3. ​Оператор​ текстовых), содержащихся в​ означает то, что​ ячейке столбца. =СЧЁТ(A4:A6)​ книгу Excel, например,​

Резултьтат подсчета функции СЧЁТ в Microsoft Excel

Способ 4: функция СЧЁТЕСЛИ

​ удастся найти его,​ вот такую формулу​На самом деле, это​ sumRes End Function​ по их цвету,​ то не получается​: Спасибо, но как​Byronel​Как видим, простейший подсчет​ те же самые,​ выделен диапазон, в​ задает условие, что​СЧЁТЕСЛИ​ целевом столбце.​ он, скорее всего,​ Мы адрес ячейки​

  1. ​ ошибки компиляции, не​ пожалуйста, возвращайтесь и​ для подсчёта количества​ нормальное поведение макросов​ Function CountCellsByFontColor(rData As​​ то есть сосчитать​​ у меня…​​ можно себе поставить​​, В приложении образец​

    Переход к функции СЧЁТЕСЛИ в Microsoft Excel

  2. ​ количества заполненных ячеек​ что и при​ котором все элементы​ мы подсчитываем все​тоже причислен к​Как видим, в отличие​ отключен. Для его​ А4 исправляем на​​ работающие формулы и​​ опубликуйте здесь свою​ ячеек по их​ в Excel, скриптов​​ Range, cellRefColor As​​ количество красных, зелёных​svd2017​ эту надстройку. У​​ – можно поиграть​​ выделенного диапазона можно​

    Функция СЧЁТЕСЛИ в Microsoft Excel

    ​ использовании предыдущего способа.​ пустые или лишь​

    ​ заполненные данными элементы,​

    Введение вручную функции СЧЁТЕСЛИ в Microsoft Excel

  3. ​ статистической группе функций​ от предыдущего способа,​ включения следует кликнуть​ адрес ячейки А1.​ так далее, Вы​ находку!​ цвету:​ VBA и пользовательских​

Резултьтат подсчета функции СЧЁТЕСЛИ в Microsoft Excel

Способ 5: функция СЧЁТЕСЛИМН

​ Range) As Long​ и оранжевых ячеек​: Добрый день! Такое:​ меня 2007-ой на​ с ним.​ увидеть в строке​ В их роли​ один содержит какое-то​

  1. ​ которые не содержат​ Excel. Его единственной​ данный вариант предлагает​ правой кнопкой мыши​ Получится так.​​ можете скачать рабочую​​Код VBA, приведённый ниже,​=CountCellsByColor(F2:F14,A17)​​ функций (UDF). Дело​​ Dim indRefColor As​

    Переход к функции СЧЁТЕСЛИМН в Microsoft Excel

  2. ​ на листе. Как​есть колонка с​ английской версий.​KoGG​ состояния Эксель. Если​​ выступают ссылки на​​ значение, данный индикатор​​ слово​​ задачей является подсчет​ выводить результат в​ по строке состояния.​Пятый способ.​ книгу Excel с​ преодолевает все указанные​где​ в том, что​ Long Dim cellCurrent​​ я уже сказал​​ цифрами, нужно посчитать​

    Функция СЧЁТЕСЛИМН в Microsoft Excel

    ​Inter_E​: To Heidegger :​

    ​ же вам нужно​

    Введение вручную функции СЧЁТЕСЛИМН в Microsoft Excel

  3. ​ ячейки. Вставляем координаты​ скрыт. Счетчик автоматически​«Мясо»​ непустых элементов в​ конкретный элемент листа​ Появляется меню. В​

Резултьтат подсчета функции СЧЁТЕСЛИМН в Microsoft Excel

​Посчитать, если выделено цветом​ примерами и с​ выше ограничения и​F2:F14​ все подобные функции​ As Range Dim​ выше, прямого решения​ сумму только тех​: у меня в​Сознательно не вставлял​ вывести результат в​ диапазонов на листе,​ появляется тогда, когда​. Знак​ диапазоне, а в​

​ с возможным его​

lumpics.ru

Посчитать количество цветных ячеек

​ нем нужно установить​​ – формула Excel​
​ готовыми к использованию​
​ работает в таблицах​– это выбранный​ вызываются только изменением​ cntRes As Long​ этой задачи не​ ячеек, где фон​
​ «User defined» т.е​ Application.Volatile, чтобы не​
​ отдельную область на​ в которых нужно​ выделено две или​
​«<>»​ нашем случае в​ сохранением там. Но,​ галочку около пункта​.​ функциями​ Microsoft Excel 2010​
​ диапазон,​

​ данных на листе,​​ Application.Volatile cntRes =​ существует. Но, к​ зеленый.​ у вас как​ вводить пользователя в​ листе, а тем​ подсчитать количество заполненных​ более не пустых​означает в Экселе​ столбце, которые отвечают​ к сожалению, функция​«Количество»​Можно написать такую​CountCellsByColor​ и 2013, с​A17​ но Excel не​ 0 indRefColor =​ счастью, в нашей​Это первое.​ «Определенные пользователи» появились​ заблуждение: да при​ более произвести подсчет​ ячеек числовыми данными.​ ячеек, и сразу​«не равно»​ заданному условию. Синтаксис​СЧЁТЗ​. После этого количество​ формулу. =СЧЁТ(A1:A6) Эта​и​ любыми типами условного​– это ячейка​ расценивает изменение цвета​ cellRefColor.Cells(1, 1).Font.Color For​ команде есть очень​Можно ли из​ эти функций. Знаете​ изменении значений в​ с учетом определенных​ Жмем кнопку​ показывает их число​

​.​​ у данного оператора​все-таки не позволяет​
​ заполненных данными ячеек​ формула считает только​SumCellsByColor​ форматирования (и снова​ с нужным цветом​ шрифта или заливки​
​ Each cellCurrent In​
​ умелые и знающие​
​ макроса обращаться к​ как я сделал,​ целевых ячейках функция​ условий, то в​«OK»​
​ после слова​После введения этих настроек​ заметно отличается от​ задавать условия отбора​ будет отображаться в​ ячейки с числами,​

​, и испытать их​​ спасибо нашему гуру!).​ заливки.​ ячейки как изменение​ rData If indRefColor​ Excel гуру, и​
​ фону ячейки, вытаскивать​ просто 2-раза кликнул​ пересчитается, но если​ этом случае придут​.​«Количество»​
​ в окне аргументов​​ предыдущих двух функций:​ значений.​ строке состояния.​ а с текстом​ на своих данных.​
​ В результате он​​Все перечисленные далее формулы​ данных. Поэтому, после​ = cellCurrent.Font.Color Then​

​ один из них​​ значение фона и​
​ на файл который​ не меняя значений​ на помощь специализированные​Для ручного введения формулы​.​ жмем на кнопку​=СЧЁТЕСЛИ(диапазон;критерий)​Урок: Мастер функций в​К недостаткам данного способа​ – не считает.​Урок подготовлен для Вас​ выводит количество раскрашенных​ работают по такому​ изменения цвета ячеек​

​ cntRes = cntRes​​ написал безупречный код​

​ менять его?​​ я скачал и​ поменять цвета ячеек​

CyberForum.ru

Подсчет ячеек определенного цвета

​ функции.​​ придерживаемся следующего синтаксиса:​
​Но, хотя по умолчанию​«OK»​Аргумент​ Excel​ можно отнести то,​Шестой способ.​ командой сайта office-guru.ru​ ячеек и сумму​ же принципу.​ вручную, просто поставьте​ + 1 End​
​ для Excel 2010​sboy​ что-то тихо произошло.​ в целевом диапазоне​Автор: Максим Тютюшев​=СЧЁТ(значение1;значение2;…)​ этот счетчик включен,​.​

​«Диапазон»​​С помощью оператора​ что полученный результат​Чтобы посчитать ячейки​

​Источник: https://www.ablebits.com/office-addins-blog/2013/12/12/count-sort-by-color-excel/​​ значений в этих​CountCellsByFontColor(диапазон, код_цвета)​ курсор на любую​ If Next cellCurrent​ и 2013. Итак,​: И Вам здравствуйте!​Ну как теперь​

​ — функция автоматически​​Byronel​​После этого в области,​​ и только ждет​В предварительно заданной ячейке​
​представляется в виде​СЧЁТ​smile
​ нигде не фиксируется.​
​ (строки) по определенному​Перевел: Антон Андронов​ ячейках, независимо от​
​– считает ячейки​ ячейку и кликните​
​ CountCellsByFontColor = cntRes​ выполните 5 простых​

​buchlotnik​​ пользоваться? Там help-a​ не пересчитается -​

​: добрый день!​​ в которой находится​

​ того, когда пользователь​​ сразу же отображается​ ссылки на конкретный​

​можно произвести подсчет​​ То есть, как​ условию, используем функцию​Автор: Антон Андронов​ типа условного форматирования,​
​ с заданным цветом​F2​ End Function Function​ шагов, описанных далее,​biggrin

​: можно​​ нет на этих​ надо вводить ее​есть 2 столбца​biggrin
​ формула, отобразится количество​ выделит определенные элементы,​ результат. Он сообщает​

​ массив ячеек, а​​ только числовых значений​ только вы снимете​ «СЧЁТЕСЛИ». Примеры формул​Говорят, что нет​

excelworld.ru

Подсчет значений в цветных ячейках

​ применённого на листе.​​ шрифта.​
​, а затем​ SumCellsByFontColor(rData As Range,​ и через несколько​svd2017​ функция. Т.е надо​ заново.​ячейки в них​ ячеек, заполненных числовыми​
​ в некоторых случаях​ о том, что​
​ в нашем случае​

​ в выбранной колонке.​​ выделение, он исчезнет.​ смотрите в статье​ специальной функции без​Sub SumCountByConditionalFormat() Dim​

​SumCellsByColor(диапазон, код_цвета)​​Enter​ cellRefColor As Range)​ минут Вы узнаете​: ура​ только 2 аргумента?​

​Александр Смит​​ закрашены 4 цветами​ данными.​ он может быть​ в выделенном столбце​ на колонку.​ Он игнорирует текстовые​ Поэтому, при необходимости​ «Функция «СЧЁТЕСЛИ» в​ макросов​ indRefColor As Long​
​– вычисляет сумму​, сумма и количество​ Dim indRefColor As​ количество и сумму​а как ?​ область и цвет​: Ctrl+Alt+F9​ (причем, некоторые из​Данная функция позволяет подсчитать​ отключен вручную. Тогда​
​ находятся 190 элементов​

​Аргумент​​ значения и не​ его зафиксировать, придется​ Excel» здесь.​посчитать количество выделенных строк​ Dim cellCurrent As​ ячеек с заданным​

​ после этого обновятся.​​ Long Dim cellCurrent​ ячеек нужного цвета.​ =суммесли(…что?)) как вписать​ ячейки указать? как​Heidegger​ них нестандартны -​ не просто количество​ актуальным становится вопрос​ с данными, которые​«Критерий»​
​ включает их в​ записывать полученный итог​Седьмой способ​ в Excel​ Range Dim cntRes​ цветом заливки.​

​ Так нужно сделать,​ As Range Dim​

​Откройте книгу Excel и​​ туда фон ячейки​ будет в цифровом​: Да, тогда пересчитает​ выбирал оттенки через​ ячеек, заполненных числовыми​ о его включении.​

​ не содержат слово​​содержит заданное условие.​
​ общий итог. Данная​ вручную. Кроме того,​.​. Неправда. Есть много​
​ As Long Dim​SumCellsByFontColor(диапазон, код_цвета)​ работая с любым​ sumRes Application.Volatile sumRes​ нажмите​ , именно зеленый..​ виде стандартный зеленый​ и без Volatile.​ «другие цвета»)​

​ выражениями, но только​ Для этого нужно​«Мясо»​ Это может быть​ функция также относится​ с помощью данного​Посчитать строки, выделенные условным​ других приемов, чтобы​

​ sumRes Dim cntCells​​– вычисляет сумму​ макросом, который Вы​
​ = 0 indRefColor​Alt+F11​buchlotnik​ цвет?​julytt​необходимо посчитать количество​ такие из них,​ кликнуть правой кнопкой​.​

​ как точное числовое​​ к категории статистических​ способа можно производить​ форматированием​ посчитать выделенные строки,​ As Long Dim​ ячеек с заданным​ найдёте далее в​ = cellRefColor.Cells(1, 1).Font.Color​, чтобы запустить редактор​: читаем правила форума​Спасибо!​
​: Доброго дня всем!​

​ ячеек определенного цвета​​ которые соответствуют определенному​ мыши по строке​Теперь давайте произведем в​ или текстовое значение,​

​ операторов, как и​​ подсчет только всех​или​ ячейки Excel. Было​ indCurCell As Long​ цветом шрифта.​ этой статье.​ For Each cellCurrent​Visual Basic for Applications​ , прикладываем пример,​

planetaexcel.ru

Посчитать значения в закрашенных ячейках. (Макросы/Sub)

​Inter_E​​Пытаюсь усовершеннствовать таблицы,​
​в ячейках значений​ условию. Например, если​ состояния и в​ третьей колонке данной​ так и значение,​
​ предыдущая. Её задачей​
​ заполненных значениями ячеек​окрашены цветом вручную в​ бы желание, а​ cntRes = 0​GetCellFontColor(ячейка)​

​Представленный ниже скрипт Visual​​ In rData If​

​(VBA).​​ получаем помощь​

​: Которая вторая и​​ с которыми работаю.​:)
​ нет, они просто​ задать условие «>50»,​ открывшемся списке установить​ таблицы подсчет всех​

​ заданное знаками​​ является подсчет ячеек​ и нельзя задавать​ Excel​

excelworld.ru

​ способы найдем. )))​

Skip to content

Сумма по цвету и подсчёт по цвету в Excel

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

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

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

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

Функции и макросы, которые мы рассмотрим в этой статье, помогут нам сделать следующее:

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

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

Предположим, у вас есть таблица со списком заказов, в которой ячейки в столбце «Количество» окрашены в зависимости от их значения в колонке «Выполнение» и даты: ячейки с выполняемыми заказами сроком до 30 дней от текущей даты  — желтые,  уже выполненные — зеленые, а просроченные заказы — красные.

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

  1. Откройте книгу Excel и нажмите Alt+F11, чтобы открыть редактор Visual Basic (VBE).
  2. Щелкните правой кнопкой мыши имя своей книги в разделе «Project–VBAProject» в правой части экрана, а затем выберите «Вставить» > «Модуль» в контекстном меню.

  1. Добавьте в вашу рабочую книгу следующий код:
Function GetCellColor(xlRange As Range)
  Dim indRow, indColumn As Long
  Dim arResults()
  Dim colorVal As Variant
  
  Application.Volatile
 
  If xlRange Is Nothing Then
      Set xlRange = Application.ThisCell
  End If
 
  If xlRange.Count > 1 Then
    ReDim arResults(1 To xlRange.Rows.Count, 1 To xlRange.Columns.Count)
     For indRow = 1 To xlRange.Rows.Count
       For indColumn = 1 To xlRange.Columns.Count
         colorVal = xlRange(indRow, indColumn).Interior.Color
         arResults(indRow, indColumn) = (colorVal Mod 256) & ", " & ((colorVal  256) Mod 256) & ", " & (colorVal  65536)
       Next
     Next
   GetCellColor = arResults
  Else
   colorVal = xlRange.Cells(1, 1).Interior.Color
   GetCellColor = (colorVal Mod 256) & ", " & ((colorVal  256) Mod 256) & ", " & (colorVal  65536)
  End If
End Function
 
Function GetCellFontColor(xlRange As Range)
  Dim indRow, indColumn As Long
  Dim arResults()
  Dim colorVal As Variant
 
  Application.Volatile
 
  If xlRange Is Nothing Then
      Set xlRange = Application.ThisCell
  End If
 
  If xlRange.Count > 1 Then
    ReDim arResults(1 To xlRange.Rows.Count, 1 To xlRange.Columns.Count)
     For indRow = 1 To xlRange.Rows.Count
       For indColumn = 1 To xlRange.Columns.Count
         colorVal = xlRange(indRow, indColumn).Font.Color
         arResults(indRow, indColumn) = (colorVal Mod 256) & ", " & ((colorVal  256) Mod 256) & ", " & (colorVal  65536)
       Next
     Next
   GetCellFontColor = arResults
  Else
   colorVal = xlRange.Cells(1, 1).Font.Color
   GetCellFontColor = (colorVal Mod 256) & ", " & ((colorVal  256) Mod 256) & ", " & (colorVal  65536)
  End If
End Function

Function CountCellsByColor(rData As Range, cellRefColor As Range) As Long
    Dim indRefColor As Long
    Dim cellCurrent As Range
    Dim cntRes As Long
 
    Application.Volatile
    cntRes = 0
    indRefColor = cellRefColor.Cells(1, 1).Interior.Color
    For Each cellCurrent In rData
        If indRefColor = cellCurrent.Interior.Color Then
            cntRes = cntRes + 1
        End If
    Next cellCurrent
 
    CountCellsByColor = cntRes
End Function
 
Function SumCellsByColor(rData As Range, cellRefColor As Range)
    Dim indRefColor As Long
    Dim cellCurrent As Range
    Dim sumRes
 
    Application.Volatile
    sumRes = 0
    indRefColor = cellRefColor.Cells(1, 1).Interior.Color
    For Each cellCurrent In rData
        If indRefColor = cellCurrent.Interior.Color Then
            sumRes = WorksheetFunction.Sum(cellCurrent, sumRes)
        End If
    Next cellCurrent
 
    SumCellsByColor = sumRes
End Function
 
Function CountCellsByFontColor(rData As Range, cellRefColor As Range) As Long
    Dim indRefColor As Long
    Dim cellCurrent As Range
    Dim cntRes As Long
 
    Application.Volatile
    cntRes = 0
    indRefColor = cellRefColor.Cells(1, 1).Font.Color
    For Each cellCurrent In rData
        If indRefColor = cellCurrent.Font.Color Then
            cntRes = cntRes + 1
        End If
    Next cellCurrent
 
    CountCellsByFontColor = cntRes
End Function
 
Function SumCellsByFontColor(rData As Range, cellRefColor As Range)
    Dim indRefColor As Long
    Dim cellCurrent As Range
    Dim sumRes
 
    Application.Volatile
    sumRes = 0
    indRefColor = cellRefColor.Cells(1, 1).Font.Color
    For Each cellCurrent In rData
        If indRefColor = cellCurrent.Font.Color Then
            sumRes = WorksheetFunction.Sum(cellCurrent, sumRes)
        End If
    Next cellCurrent
 
    SumCellsByFontColor = sumRes
End Function
  1. Сохраните свою книгу как «Книга Excel с поддержкой макросов (.xlsm)».

Если вы новичок и вам сложно работать с VBA, вы можете найти подробные пошаговые инструкции и несколько полезных советов в этом руководстве: Как вставить и запустить код VBA в Excel .

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

CountCellsByColor( диапазон ; код цвета )

здесь и далее эти аргументы означают:

диапазон – диапазон ячеек, в которых вы хотите произвести подсчеты по цвету,

код цвета – адрес ячейки-образца, цвет фона или шрифта которой соответствуют искомому цвету фона или шрифта.

В этом примере мы используем формулу, =CountCellsByColor(D2:D21;A24), где D2:D21— это диапазон, в котором вы хотите посчитать количество ячеек с цветом, а A24 — это ячейка, закрашенная нужным нам цветом, красным в нашем случае.

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

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

SumCellsByColor( диапазон ; код цвета)

Как показано на скриншоте выше, мы использовали формулу суммы по цвету, =SumCellsByColor(D2:D21;A24), где D2:D21 — это диапазон, а A24 — ячейка с образцом цвета.

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

На скриншоте ниже вы видите, как можно подсчитать количество значений, написанных красным цветом.

=CountCellsByFontColor(D2:D21;A24)

Аналогично подсчитываем сумму чисел, имеющих определённый цвет шрифта, при помощи формулы:

=SumCellsByFontColor(D2:D21;A24)

Примечание. Если после применения вышеупомянутого кода VBA вам потребуется раскрасить еще несколько ячеек вручную, то сумма и количество окрашенных ячеек не будут пересчитаны автоматически, чтобы отразить произошедшие изменения. Пожалуйста, не сердитесь на нас, это не ошибка кода :)

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

Итак, после раскрашивания ячеек вручную, просто поместите курсор в любую ячейку и нажмите F2, а затем Enter. То есть, сделайте вид, что меняете содержимое какой-либо ячейки. Сумма и количество в пользовательской функции тут же будут обновлены. То же самое относится и к другим макросам, которые считают по цвету.

Как суммировать по цвету и сосчитать по цвету во всей рабочей книге

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

Function WbkCountCellsByColor(cellRefColor As Range)
  Dim vWbkRes
  Dim wshCurrent As Worksheet
 
  Application.ScreenUpdating = False
  Application.Calculation = xlCalculationManual
 
  vWbkRes = 0
  For Each wshCurrent In Worksheets
    wshCurrent.Activate
    vWbkRes = vWbkRes + CountCellsByColor(wshCurrent.UsedRange, cellRefColor)
  Next
  Application.ScreenUpdating = True
  Application.Calculation = xlCalculationAutomatic
 
  WbkCountCellsByColor = vWbkRes
End Function
 
Function WbkSumCellsByColor(cellRefColor As Range)
  Dim vWbkRes
  Dim wshCurrent As Worksheet
 
  Application.ScreenUpdating = False
  Application.Calculation = xlCalculationManual
 
  vWbkRes = 0
  For Each wshCurrent In Worksheets
    wshCurrent.Activate
    vWbkRes = vWbkRes + SumCellsByColor(wshCurrent.UsedRange, cellRefColor)
  Next
  Application.ScreenUpdating = True
  Application.Calculation = xlCalculationAutomatic
 
  WbkSumCellsByColor = vWbkRes
End Function

Вы используете этот макрос так же, как и предыдущий код, и выводите количество и сумму цветных ячеек с помощью следующих формул =WbkCountCellsByColor() и =WbkSumCellsByColor() соответственно. 

Единственный аргумент, который нужен этим функциям, это адрес ячейки с нужным цветом.

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

=WbkSumCellsByColor(A1)   

Формула отобразит сумму всех ячеек, закрашенных тем же цветом, на всех листах в вашей рабочей книге.

Пользовательские функции для получения цвета ячейки, цвета шрифта и цветового кода

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

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

Если вы вдруг забыли, как можно вручную раскрасить ячейку в нужный цвет, то напомню. Жмем Ctrl+1, затем Заливка – Другие цвета – Спектр – RGB формат. Вот туда и вставляем полученный код. Точное соответствие цвета будет обеспечено.

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

Функции для подсчета по цвету:

  • CountCellsByColor(диапазон; код цвета) ­– считает ячейки с заданным цветом фона.

В приведенном выше примере мы использовали следующую формулу для подсчета ячеек по цвету 

= CountCellsByColor (F2: F14, A17) 

где F2: F14 — выбранный диапазон, а A17 — ячейка с нужным цветом фона. Вы можете использовать все остальные формулы, перечисленные ниже, аналогичным образом.

  • CountCellsByFontColor(диапазон; код цвета) – подсчитывает ячейки с указанным цветом шрифта.

Формулы для суммирования по цветам:

  • SumCellsByColor(диапазон; код цвета) – вычисляет сумму ячеек с определенным цветом фона.
  • SumCellsByFontColor(диапазон; код цвета) – вычисляет сумму ячеек с определенным цветом шрифта.

Функции для получения кода цвета ячейки:

  • GetCellFontColor(ячейка) – возвращает цветовой код цвета шрифта указанной ячейки.
  • GetCellColor(ячейка) – возвращает цветовой код цвета фона указанной ячейки.

Вот примеры использования функции цвета ячейки:

А на этим скриншоте мы получаем цветовой RGB код шрифта.

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

Если вы применили условное форматирование к ячейкам на основе их значений и теперь хотите посчитать эти ячейки по цвету или просуммировать значения в закрашенных ячейках, то у меня плохие новости — не существует универсальной определяемой пользователем функции, которая бы суммировала по цвету или пересчитала закрашенные условным форматированием ячейки и вывела бы полученные числа прямо в указанные клетки таблицы. По крайней мере мне о такой функции не известно, увы :(

Конечно, вы можете найти в Интернете тонны кода VBA, который пытается это сделать, но все эти коды (по крайней мере, примеры, с которыми я сталкивался), не обрабатывают условное форматирование, такое как «Форматировать все ячейки на основе их значений», «Форматировать только наибольшие или наименьшие значения», «Форматировать только значения выше или ниже среднего», «Форматировать только уникальные или повторяющиеся значения». Кроме того, почти все эти коды VBA имеют ряд особенностей и ограничений, из-за которых они могут работать некорректно с определенными книгами или типами данных. В общем, вы можете испытать удачу и поискать в Google идеальное решение, и если вы его найдете, пожалуйста, вернитесь и опубликуйте свое открытие здесь!

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

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

Sub SumCountByConditionalFormat()
  Dim indRefColor As Long
  Dim cellCurrent As Object
  Dim cntRes As Long
  Dim sumRes
  Dim cntCells As Long
  Dim indCurCell As Long
 
  cntRes = 0
  sumRes = 0
  
  Set cellCurrent = Selection
  adr = Mid(cellCurrent.Address, InStr(cellCurrent.Address, ",") + 1, 20)
  adr1 = Left(adr, 4)
  adr2 = Left(cellCurrent.Address, InStr(cellCurrent.Address, ",") - 1)
  Range(adr2).Activate
  indRefColor = ActiveCell.DisplayFormat.Interior.Color
  Range(adr).Activate
  cntCells = Selection.CountLarge
  Range(adr).Select
  Range(adr).Activate
 Set cellCurrent = Selection
 For indCurCell = 1 To (cntCells - 1)
    If indRefColor = cellCurrent(indCurCell).DisplayFormat.Interior.Color Then
        cntRes = cntRes + 1
        sumRes = WorksheetFunction.Sum(cellCurrent(indCurCell), sumRes)
    End If
  Next
  MsgBox "Count=" & cntRes & vbCrLf & "Sum= " & sumRes & vbCrLf & vbCrLf & _
    "Color=" & Left("000000", 6 - Len(Hex(indRefColor))) & _
    Hex(indRefColor) & vbCrLf, , "Count & Sum by Conditional Format color"
End Sub

Как использовать этот макрос для подсчета цветных ячеек и суммирования их значений.

Опишем процесс пошагово:

  1. Добавьте приведенный выше код на лист, как описано в первом параграфе статьи .
  2. Выберите ячейку с нужным цветом.
  3. Нажмите и удерживайте Ctrl.
  4. Выберите диапазон, в котором вы хотите подсчитать цветные ячейки и/или суммировать по цвету, если у вас есть числовые данные.
  5. Отпустите клавишу Ctrl.
  6. НажНажмите комбинацию  Alt+F8, чтобы открыть список макросов в вашей книге.
  7. Выберите макрос SumCountByConditionalFormat и нажмите «Выполнить» .

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

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

Затем дополнительно, удерживая Ctrl, выделяем диапазон ячеек в столбце D, по которым нужно выполнить подсчет ячеек определенного цвета.

Выполняем макрос, как показано на скриншоте ниже.

В результате вы увидите следующее сообщение с результатами:

Для этого примера мы выбрали столбец «Количество» и получили следующие цифры:

  1. Count — это количество ячеек определенного цвета, красного в нашем случае, который отмечает ячейки «Просрочен».
  2. Sum — это сумма значений всех красных ячеек в выбранной колонке, т.е. общее количество «Просроченных» заказов.
  3. Color — это шестнадцатеричный код цвета выбранной ячейки, в нашем случае D5.

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

Самый быстрый способ подсчета и суммирования ячеек по цвету в Excel

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

При этом не имеет значения, как установлены эти цвета – прямым форматированием ячейки либо при помощи условного форматирования.

Позвольте представить вам наш совершенно новый инструмент — «Счет и сумма по цвету» для Excel. Он имеет два варианта подсчета — «Один цвет» и «Все цвета», как видно на скриншоте ниже.

Подсчет и суммирование по одному цвету.

Вы нажимаете кнопку « Один цвет » на ленте, и в левой части рабочего листа открывается панель « Подсчет и сумма по цвету» . На панели вы выбираете:

  • Диапазон, в котором вы хотите подсчитать и суммировать ячейки
  • Любую ячейку с нужным цветом как образец
  • Вариант — цвет фона или шрифта

После этого нажмите « Рассчитать » и сразу же увидите результат в нижней части панели! Помимо подсчета и суммы, надстройка вычисляет среднее значение и находит максимальное и минимальное значения. Никаких макросов, никаких формул, никакой боли :)

Обратите внимание, что подсчет возможен как по цвету фона, так и по цвету шрифта.

Подсчет и суммирование ячеек по всем цветам в выбранном диапазоне

Опция «Все цвета» работает в основном так же, за исключением того, что вам не нужно выбирать цвет. В разделе «Result for ..» вы можете выбрать любой из параметров: Количество, Сумма, Среднее, Максимальное или Минимальное значение  и другие.

Если вы хотите скопировать результаты на свой рабочий лист, нажмите кнопку «Paste All» в нижней части панели .

В настоящее время надстройка доступна как часть Ultimate Suite for Excel . Это коллекция отличных инструментов, специально разработанных для решения самых утомительных, кропотливых и подверженных ошибкам задач в Excel.

В дополнение к надстройке «Подсчет и суммирование по цвету», Ultimate Suite включает более 70 инструментов, которые помогут вам объединить данные из разных листов, удалить дубликаты, сравнить листы на совпадения и различия и многое другое.

Надеюсь, теперь сумма по цвету и подсчет ячеек по цвету для вас не будут сложными. Если же будут вопросы – не стесняйтесь задавать их в комментариях.

Функция СУММПРОИЗВ с примерами формул В статье объясняются основные и расширенные способы использования функции СУММПРОИЗВ в Excel. Вы найдете ряд примеров формул для сравнения массивов, условного суммирования и подсчета ячеек по нескольким условиям, расчета средневзвешенного значения…
Проверка данных с помощью регулярных выражений В этом руководстве показано, как выполнять проверку данных в Excel с помощью регулярных выражений и пользовательской функции RegexMatch. Когда дело доходит до ограничения пользовательского ввода на листах Excel, проверка данных очень полезна. Хотите…
Поиск и замена в Excel с помощью регулярных выражений В этом руководстве показано, как быстро добавить пользовательскую функцию в свои рабочие книги, чтобы вы могли использовать регулярные выражения для замены текстовых строк в Excel. Когда дело доходит до замены…
Как извлечь строку из текста при помощи регулярных выражений В этом руководстве вы узнаете, как использовать регулярные выражения в Excel для поиска и извлечения части текста, соответствующего заданному шаблону. Microsoft Excel предоставляет ряд функций для извлечения текста из ячеек. Эти функции…
4 способа отладки пользовательской функции Как правильно создавать пользовательские функции и где нужно размещать их код, мы подробно рассмотрели ранее в этой статье.  Чтобы решить проблемы при создании пользовательской функции, вам скорее всего придется выполнить…

Как в Excel посчитать количество ячеек по цвету ячейки или цвету текста

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

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

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

Итак, приступим. Зайдите в редактор 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.Interior.ColorIndex
End Function

После этого закройте редактор Visual Basic и можно вернуться к нашему файлу. В любой пустой ячейки введите пользовательскую функцию, которую мы ввели раннее. В нашем случае это функция ColorNom, ее можно вызвать либо через меню Вставка, Функция — категория Определенные пользователем, либо просто можно напечатать ее в самой ячейке =ColorNom ( A1 ), где A1 — это наша ячейка, в которой нам необходимо определить индекс цвета.

После этого уже не составит труда посчитать количество ячеек или значений в зависимости от цвета ячейки. Используйте нашу статью как посчитать в Excel количество ячеек/значений

Если вам необходимо посчитать количество значений или сумму в зависимости от цвета текста, то необходимо немного изменить код пользовательской функции.

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 )

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

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

Excel — выборка ячеек по цвету заливки

December 15, 2013

На работе столкнулся с такой задачей — имеется таблица в Excel, в которой ведется табель выходов рабочих в цеху.

В таблице подсчитывается количество часов, фактически отработанных; часов переработки и часов сверх нормы. Так вот, необходимо сделать так, чтобы производилась автоматическая выборка ячеек таблицы по цвету заливки последних.

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

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

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

Прекрасное и готовое решение моей задачи я нашел на сайте http://www.excel-vba.ru/. Даже не одно, а целых два решения, под разные условия. Ниже привожу последовательность шагов, которые привели меня к успеху.

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

Режим “Разработчик” в Excel

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

Переходим в “Пуск — Параметры Excel” и находим в левом списке пункт “Надстройки”:

Выбираем в основном окне строчку “Пакет анализа — VBA” и жмем кнопочку “Перейти” в самом низу окна. Откроется еще одно окошко со списком доступных под Excel расширений (надстроек). Снова выбираем в этом списке “Пакет анализа — VBA” и соглашаемся, что хотим установить его, нажав кнопку “ОК”:

Потребуется установочный диск с Microsoft Office на нем (или же подключение к Интернет) чтобы программа получила необходимые пакеты для инсталляции. Если установка прошла успешно, то в “Ленте” появиться пункт “Разработчик” (Excel 2010). Можно перейти в него через эту панель или же с помощью сочетания клавиш Alt + F11 .

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

Вставка готовых функций в Excel VBA

Но есть готовые решения, которые я вставлю в виде кода с помощью меню “Insert — Module”. Просто берем отсюда код функций и вставляем в свой Excel. Затем сохраняем файл Excel с поддержкой VBA (макросов) и все готово для дальнейшей работы.

Вставленные функции появятся в списке формул таблицы:

Ниже представлен готовый код двух функций на VBA, написанных их автором Дмитрием Щербаковым. Первая функция с именем “CountByInteriorColor” выполняет подсчет количества ячеек по цвету заливки.

Вторая функция с именем “SumByInteriorColor” выполняет выборку ячеек по цвету заливки и суммирует все значения в этих ячейках.

Обе функции имеют одинаковый синтаксис и принимают три входных аргумента, первые два из которых обязательные, а третий — необязательный:

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

Разберем простые способы как посчитать количество, и как суммировать ячейки по цвету в Excel.

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

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

Перейдем в редактор VBA, для этого в панели вкладок выбираем Разработчик -> Visual Basic (или нажимаем комбинацию клавиш Alt + F11).
Создаем новый модуль и добавляем в него следующий код (напротив каждой строчки дается пояснение к коду):

Функция СУММЦВЕТ содержит два аргумента:

  • MyRange(обязательный аргумент) — диапазон ячеек для суммирования;
  • MyCell(обязательный аргумент) — ячейка, по цвету заливки которой рассчитывается сумма.

Функция СУММЦВЕТ теперь будет определяться при вводе формулы в ячейку, переходим из редактора на лист Excel и воспользуемся новой функцией:


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

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

Чтобы посчитать ячейки одного цвета достаточно немного видоизменить функцию для подсчета суммы — вместо прибавления значения текущей ячейки (Sum = Sum + cell.Value) мы добавляем 1 (Sum = Sum + 1).

При работе с данными функциями обратите внимание на два важных момента:

  • Если цвет выбранной ячейки определяется с помощью условного форматирования (т.е. цвет ячейки определяется не за счет заливки), то рассмотренные функции не сработают.
  • В случае изменения раскраски ячейки в Excel формулы автоматически не пересчитываются, так как не изменяется содержимое ячейки, поэтому для корректного расчета необходимо произвести пересчет формул. Комбинация клавиш Shift + F9 пересчитает формулы на активном листе (F9 — для всей книги).

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

Помечать ячейки цветом, используя заливку или цвет шрифта, очень удобно и наглядно. Если вы не дальтоник, конечно 🙂 Трудности возникают тогда, когда по такой раскрашенной таблице возникает необходимость сделать отчет. И если фильтровать и сортировать по цвету 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 и не задавайте в качестве первого аргумента целый столбец — «думать» будет долго 🙂

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

  1. Откройте книгу Excel и нажмите Alt+F11, чтобы запустить редактор Visual Basic for Applications (VBA).
  2. Правой кнопкой мыши кликните по имени Вашей рабочей книги в области Project – VBAProject, которая находится в левой части экрана, далее в появившемся контекстном меню нажмите Insert >Module.
  3. Вставьте на свой лист вот такой код:
  1. Сохраните рабочую книгу Excel в формате .xlsm (Книга Excel с поддержкой макросов).Если Вы не слишком уверенно чувствуете себя с VBA, то посмотрите подробную пошаговую инструкцию и массу полезных советов в учебнике Как вставить и запустить код VBA в Excel.
  2. Когда все закулисные действия будут выполнены, выберите ячейки, в которые нужно вставить результат, и введите в них функцию 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 – это ячейка с нужным цветом заливки.

Все перечисленные далее формулы работают по такому же принципу.

  • CountCellsByFontColor( диапазон , код_цвета ) – считает ячейки с заданным цветом шрифта.
  • Функции, которые суммируют значения по цвету ячейки:

    • 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, с любыми типами условного форматирования (и снова спасибо нашему гуру!). В результате он выводит количество раскрашенных ячеек и сумму значений в этих ячейках, независимо от типа условного форматирования, применённого на листе.

    Как использовать код, чтобы посчитать количество цветных ячеек и просуммировать их значения

    1. Добавьте код, приведённый выше, на Ваш лист, как мы делали это в первом примере.
    2. Выберите диапазон (или диапазоны), в которых нужно сосчитать цветные ячейки или просуммировать по цвету, если в них содержатся числовые данные.
    3. Нажмите и удерживайте Ctrl, кликните по одной ячейке нужного цвета, затем отпустите Ctrl.
    4. Нажмите Alt+F8, чтобы открыть список макросов в Вашей рабочей книге.
    5. Выберите макрос SumCountByConditionalFormat и нажмите Run (Выполнить).В результате Вы увидите вот такое сообщение:

    Для этого примера мы выбрали столбец Qty. и получили следующие цифры:

    • Count – это число ячеек искомого цвета; в нашем случае это красноватый цвет, которым выделены ячейки со значением Past Due.
    • Sum – это сумма значений всех ячеек красного цвета в столбце Qty., то есть общее количество элементов с отметкой Past Due.
    • Color – это шестнадцатеричный код цвета выделенной ячейки, в нашем случае D2.

    Рабочая книга с примерами для скачивания

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

    В своей работе мы практически ежедневно сталкиваемся с таблицами Excel. Для их анализа, зачастую, используем разноцветные заливки ячеек. Визуализация данных, безусловно, помогает пользователю легче усваивать содержимое таблицы. Но, что делать, когда наступает момент подсчета результата? Для этого мы предлагаем не использовать стандартный подход применения фильтров по цвету, а воспользоваться редактором Microsoft Visual Basic (далее VBA), который есть в любом стандартном пакете от Microsoft Office.

    Запускать его будем в Microsoft Excel по следующему алгоритму:

    • запускаем MS Excel;
    • входим во вкладку «Вид»;
    • нажимаем «Макросы»;
    • в отрывшемся окне вводим название нашей будущей программы (разрешены английские буквы и символы);
    • нажимаем «Создать».

    Теперь мы в редакторе Visual Basic, и чтобы осуществить расчет по количеству залитых ячеек используем следующий код:

    Public Function SumColour(DataRange As Range, ColorSample As Range) As Double
    Dim cell As Range
    Dim SumAll As Long
    Application.Volatile True
    SumAll = 0
    For Each cell In DataRange
    If cell.Interior.Color = ColorSample.Interior.Color Then
    SumAll = SumAll+ 1
    End If
    Next cell
    SumColour = SumAll
    End Function

    Так, с помощью функции SumColour, можно пересчитать количество ячеек.

    Для пересчета суммы окрашенных ячеек берем вышеописанный код, меняем название функции (например, SumByColour) и строку кода «SumAll = SumAll+ 1» на «SumAll = SumAll+ cell.Value».

    На практике использование редактора VBA помогает пересчитывать большие объемы данных не опасаясь ошибок, связанных с сортировкой и фильтрацией в Excel.

    А какой способ используете вы? Делитесь в комментариях!

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

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

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

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

    • Считаем и суммируем по цвету, когда ячейки раскрашены вручную
      • Считаем сумму и количество ячеек по цвету во всей книге
    • Считаем и суммируем по цвету, когда к ячейкам применены правила условного форматирования

    Содержание

    1. Как считать и суммировать по цвету на листе Excel
    2. Считаем сумму и количество ячеек по цвету во всей книге
    3. Пользовательские функции для определения кодов цвета заливки ячеек и цвета шрифта
    4. Функции, которые считают количество по цвету:
    5. Функции, которые суммируют значения по цвету ячейки:
    6. Функции, которые возвращают код цвета:
    7. Как посчитать количество и сумму ячеек по цвету, раскрашенных при помощи условного форматирования
    8. Как использовать код, чтобы посчитать количество цветных ячеек и просуммировать их значения
    9. Рабочая книга с примерами для скачивания

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

    Предположим, у Вас есть таблица заказов компании, в которой ячейки в столбце Delivery раскрашены в зависимости от их значений: Due in X Days – оранжевые, Delivered – зелёные, Past Due – красные.

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

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

    1. Откройте книгу Excel и нажмите Alt+F11, чтобы запустить редактор Visual Basic for Applications (VBA).
    2. Правой кнопкой мыши кликните по имени Вашей рабочей книги в области Project – VBAProject, которая находится в левой части экрана, далее в появившемся контекстном меню нажмите Insert > Module.Подсчет и суммирование ячеек по цвету в Excel
    3. Вставьте на свой лист вот такой код:
    Function GetCellColor(xlRange As Range)
        Dim indRow, indColumn As Long
        Dim arResults()
     
        Application.Volatile
     
        If xlRange Is Nothing Then
            Set xlRange = Application.ThisCell
        End If
     
        If xlRange.Count > 1 Then
          ReDim arResults(1 To xlRange.Rows.Count, 1 To xlRange.Columns.Count)
           For indRow = 1 To xlRange.Rows.Count
             For indColumn = 1 To xlRange.Columns.Count
               arResults(indRow, indColumn) = xlRange(indRow, indColumn).Interior.Color
             Next
           Next
         GetCellColor = arResults
        Else
         GetCellColor = xlRange.Interior.Color
        End If
    End Function
     
    Function GetCellFontColor(xlRange As Range)
        Dim indRow, indColumn As Long
        Dim arResults()
     
        Application.Volatile
     
        If xlRange Is Nothing Then
            Set xlRange = Application.ThisCell
        End If
     
        If xlRange.Count > 1 Then
          ReDim arResults(1 To xlRange.Rows.Count, 1 To xlRange.Columns.Count)
           For indRow = 1 To xlRange.Rows.Count
             For indColumn = 1 To xlRange.Columns.Count
               arResults(indRow, indColumn) = xlRange(indRow, indColumn).Font.Color
             Next
           Next
         GetCellFontColor = arResults
        Else
         GetCellFontColor = xlRange.Font.Color
        End If
     
    End Function
     
    Function CountCellsByColor(rData As Range, cellRefColor As Range) As Long
        Dim indRefColor As Long
        Dim cellCurrent As Range
        Dim cntRes As Long
     
        Application.Volatile
        cntRes = 0
        indRefColor = cellRefColor.Cells(1, 1).Interior.Color
        For Each cellCurrent In rData
            If indRefColor = cellCurrent.Interior.Color Then
                cntRes = cntRes + 1
            End If
        Next cellCurrent
     
        CountCellsByColor = cntRes
    End Function
     
    Function SumCellsByColor(rData As Range, cellRefColor As Range)
        Dim indRefColor As Long
        Dim cellCurrent As Range
        Dim sumRes
     
        Application.Volatile
        sumRes = 0
        indRefColor = cellRefColor.Cells(1, 1).Interior.Color
        For Each cellCurrent In rData
            If indRefColor = cellCurrent.Interior.Color Then
                sumRes = WorksheetFunction.Sum(cellCurrent, sumRes)
            End If
        Next cellCurrent
     
        SumCellsByColor = sumRes
    End Function
     
    Function CountCellsByFontColor(rData As Range, cellRefColor As Range) As Long
        Dim indRefColor As Long
        Dim cellCurrent As Range
        Dim cntRes As Long
     
        Application.Volatile
        cntRes = 0
        indRefColor = cellRefColor.Cells(1, 1).Font.Color
        For Each cellCurrent In rData
            If indRefColor = cellCurrent.Font.Color Then
                cntRes = cntRes + 1
            End If
        Next cellCurrent
     
        CountCellsByFontColor = cntRes
    End Function
     
    Function SumCellsByFontColor(rData As Range, cellRefColor As Range)
        Dim indRefColor As Long
        Dim cellCurrent As Range
        Dim sumRes
     
        Application.Volatile
        sumRes = 0
        indRefColor = cellRefColor.Cells(1, 1).Font.Color
        For Each cellCurrent In rData
            If indRefColor = cellCurrent.Font.Color Then
                sumRes = WorksheetFunction.Sum(cellCurrent, sumRes)
            End If
        Next cellCurrent
     
        SumCellsByFontColor = sumRes
    End Function
    1. Сохраните рабочую книгу Excel в формате .xlsm (Книга Excel с поддержкой макросов).Если Вы не слишком уверенно чувствуете себя с VBA, то посмотрите подробную пошаговую инструкцию и массу полезных советов в учебнике Как вставить и запустить код VBA в Excel.
    2. Когда все закулисные действия будут выполнены, выберите ячейки, в которые нужно вставить результат, и введите в них функцию CountCellsByColor:

      CountCellsByColor(диапазон, код_цвета)

    В этом примере мы используем формулу =CountCellsByColor(F2:F14,A17), где F2:F14 – это диапазон, содержащий раскрашенные ячейки, которые Вы хотите посчитать. Ячейка A17 – содержит определённый цвет заливки, в нашем случае красный.

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

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

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

    SumCellsByColor(диапазон, код_цвета)

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

    Как показано на снимке экрана ниже, мы использовали формулу:

    =SumCellsByColor(D2:D14,A17)

    где D2:D14 – диапазон, A17 – ячейка с образцом цвета.

    Таким же образом Вы можете посчитать и просуммировать ячейки по цвету шрифта при помощи функций CountCellsByFontColor и SumCellsByFontColor соответственно.

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

    Замечание: Если после применения выше описанного кода VBA Вам вдруг потребуется раскрасить ещё несколько ячеек вручную, сумма и количество ячеек не будут пересчитаны автоматически после этих изменений. Не ругайте нас, это не погрешности кода 🙂

    На самом деле, это нормальное поведение макросов в Excel, скриптов VBA и пользовательских функций (UDF). Дело в том, что все подобные функции вызываются только изменением данных на листе, но Excel не расценивает изменение цвета шрифта или заливки ячейки как изменение данных. Поэтому, после изменения цвета ячеек вручную, просто поставьте курсор на любую ячейку и кликните F2, а затем Enter, сумма и количество после этого обновятся. Так нужно сделать, работая с любым макросом, который Вы найдёте далее в этой статье.

    Считаем сумму и количество ячеек по цвету во всей книге

    Представленный ниже скрипт Visual Basic был написан в ответ на один из комментариев читателей (также нашим гуру Excel) и выполняет именно те действия, которые упомянул автор комментария, а именно считает количество и сумму ячеек определённого цвета на всех листах данной книги. Итак, вот этот код:

    Function WbkCountCellsByColor(cellRefColor As Range)
        Dim vWbkRes
        Dim wshCurrent As Worksheet
     
        Application.ScreenUpdating = False
        Application.Calculation = xlCalculationManual
     
        vWbkRes = 0
        For Each wshCurrent In Worksheets
           wshCurrent.Activate
           vWbkRes = vWbkRes + CountCellsByColor(wshCurrent.UsedRange, cellRefColor)
        Next
        Application.ScreenUpdating = True
        Application.Calculation = xlCalculationAutomatic
     
        WbkCountCellsByColor = vWbkRes
    End Function
     
    Function WbkSumCellsByColor(cellRefColor As Range)
        Dim vWbkRes
        Dim wshCurrent As Worksheet
     
        Application.ScreenUpdating = False
        Application.Calculation = xlCalculationManual
     
        vWbkRes = 0
        For Each wshCurrent In Worksheets
           wshCurrent.Activate
           vWbkRes = vWbkRes + SumCellsByColor(wshCurrent.UsedRange, cellRefColor)
        Next
        Application.ScreenUpdating = True
        Application.Calculation = xlCalculationAutomatic
     
        WbkSumCellsByColor = vWbkRes
    End Function

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

    =WbkCountCellsByColor()
    =WbkSumCellsByColor()

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

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

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

    Замечание: Пожалуйста, помните, что все эти формулы будут работать, если Вы уже добавили в свою рабочую книгу Excel пользовательскую функцию, как было показано ранее в этой статье.

    Функции, которые считают количество по цвету:

    • CountCellsByColor(диапазон, код_цвета) – считает ячейки с заданным цветом заливки.В примере, рассмотренном выше, мы использовали вот такую формулу для подсчёта количества ячеек по их цвету:

      =CountCellsByColor(F2:F14,A17)

      где F2:F14 – это выбранный диапазон, A17 – это ячейка с нужным цветом заливки.

      Все перечисленные далее формулы работают по такому же принципу.

    • CountCellsByFontColor(диапазон, код_цвета) – считает ячейки с заданным цветом шрифта.

    Функции, которые суммируют значения по цвету ячейки:

    • SumCellsByColor(диапазон, код_цвета) – вычисляет сумму ячеек с заданным цветом заливки.
    • SumCellsByFontColor(диапазон, код_цвета) – вычисляет сумму ячеек с заданным цветом шрифта.

    Функции, которые возвращают код цвета:

    • GetCellFontColor(ячейка) – возвращает код цвета шрифта в выбранной ячейке.
    • GetCellColor(ячейка) – возвращает код цвета заливки в выбранной ячейке.Подсчет и суммирование ячеек по цвету в Excel

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

    Как посчитать количество и сумму ячеек по цвету, раскрашенных при помощи условного форматирования

    Если Вы применили условное форматирование, чтобы задать цвет заливки ячеек в зависимости от их значений, и теперь хотите посчитать количество ячеек определённого цвета или сумму значений в них, то у меня для Вас плохие новости – не существует универсальной пользовательской функции, которая будет по цвету суммировать или считать количество ячеек и выводить результат в определённые ячейки. По крайней мере, я не слышал о таких функциях, а жаль 🙁

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

    Sub SumCountByConditionalFormat()
        Dim indRefColor As Long
        Dim cellCurrent As Range
        Dim cntRes As Long
        Dim sumRes
        Dim cntCells As Long
        Dim indCurCell As Long
     
        cntRes = 0
        sumRes = 0
     
        cntCells = Selection.CountLarge
        indRefColor = ActiveCell.DisplayFormat.Interior.Color
     
        For indCurCell = 1 To (cntCells - 1)
            If indRefColor = Selection(indCurCell).DisplayFormat.Interior.Color Then
                cntRes = cntRes + 1
                sumRes = WorksheetFunction.Sum(Selection(indCurCell), sumRes)
            End If
        Next
       MsgBox "Count=" & cntRes & vbCrLf & "Sum= " & sumRes & vbCrLf & vbCrLf & _
            "Color=" & Left("000000", 6 - Len(Hex(indRefColor))) & _
            Hex(indRefColor) & vbCrLf, , "Count & Sum by Conditional Format color"
    End Sub

    Как использовать код, чтобы посчитать количество цветных ячеек и просуммировать их значения

    1. Добавьте код, приведённый выше, на Ваш лист, как мы делали это в первом примере.
    2. Выберите диапазон (или диапазоны), в которых нужно сосчитать цветные ячейки или просуммировать по цвету, если в них содержатся числовые данные.
    3. Нажмите и удерживайте Ctrl, кликните по одной ячейке нужного цвета, затем отпустите Ctrl.
    4. Нажмите Alt+F8, чтобы открыть список макросов в Вашей рабочей книге.
    5. Выберите макрос SumCountByConditionalFormat и нажмите Run (Выполнить).Подсчет и суммирование ячеек по цвету в ExcelВ результате Вы увидите вот такое сообщение:

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

    Для этого примера мы выбрали столбец Qty. и получили следующие цифры:

    • Count – это число ячеек искомого цвета; в нашем случае это красноватый цвет, которым выделены ячейки со значением Past Due.
    • Sum – это сумма значений всех ячеек красного цвета в столбце Qty., то есть общее количество элементов с отметкой Past Due.
    • Color – это шестнадцатеричный код цвета выделенной ячейки, в нашем случае D2.

    Рабочая книга с примерами для скачивания

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

    Оцените качество статьи. Нам важно ваше мнение:

    Like this post? Please share to your friends:
  • Excel подсчет одинаковых символов
  • Excel подсчет непустых ячеек в столбце
  • Excel подсчет непустых ячеек в диапазоне
  • Excel подсчет неповторяющихся значений
  • Excel подсчет ненулевых ячеек