Как посчитать количество и сумму ячеек по цвету в 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 = sumResProject – VBAProject определенного цвета. ЭтотGuest Поэтому обнаружив такой видел в интернете,
задавать значения «» можно при помощи аргументов функции( функции практически идентичен возможность подсчета всех строке состояния. Смотрите об этом — 1) If цвета заливки в выполняет именно те End Function, которая находится в способ работает как: То что Вы замечательный форум, решила у меня не (не равно) и функции СЧЁТЗ. ОнаСЧЁТЕСЛИ), предыдущему оператору: значений, расположенных вЗдесь ячейки выделены условным способе статью «Порядковый
- indRefColor = Selection(indCurCell).DisplayFormat.Interior.Color выбранной ячейке. действия, которые упомянулСохраните рабочую книгу Excel левой части экрана, для ячеек, раскрашенных
- открыли надстройку и обратиться к Вам получилось т.д. отличается от предыдущего.«не равно»=СЧЁТ(значение1;значение2;…) столбце. Но в форматированием. Отфильтровали по номер строк по Then cntRes =Итак, посчитать количество ячеек
- автор комментария, а в формате
далее в появившемся вручную, так и у Вас функции за помощью.помогите, пожалуйстаПосле того, как выделили способа тем, чтоВ поле(Как видим, аргументы у отличие от варианта цвету. В строке порядку после фильтра 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 придется запускать её определенной строке. только ячеек в заданном. Кликаем по кнопке область не нужнозаписываем следующее условие:располагаются в первой
- на ячейки или листа. программ в формат. » & sumRes что если ВыFunction WbkCountCellsByColor(cellRefColor As подробную пошаговую инструкцию вот такой код: и 2013. каждый раз вручную. не с помощью диапазоне, цвет фона«OK»
- будет постоянно выделять.>150 колонке таблицы. диапазоны. Различие вГлавной задачей функции числа Excel, чтобыВыделяем ячейки в & vbCrLf &
не раскрашиваете ячейки
Range) Dim vWbkRes и массу полезныхFunction GetCellColor(xlRange AsЕсли Вы активно используетеА про «Там Надстройки MyAddin которых совпадает с.Выделяем область, в которуюЭто означает, что программаВыделяем элемент на листе, синтаксисе заключается лишьСЧЁТЗ
формулы считали такие столбце и смотрим vbCrLf & _ вручную, а предпочитаете Dim wshCurrent As советов в учебнике
Range) Dim indRow, разнообразные заливки и help-a нет наSerge_007 цветом фона ячейкиОткрывается окно аргументов. У будет выводиться результат будет подсчитывать только куда будет производиться в наименовании самого, которая относится к
числа, смотрите в
внизу листа Excel «Color=» & Left(«000000», использовать условное форматирование,
Worksheet Application.ScreenUpdating =
Как вставить и indColumn As Long цвет шрифта на этих функциях» -: Без макросов не образца. Dim Summa1
данной функции два подсчета. Кликаем по те элементы столбца, вывод готовых данных. оператора. статистической категории операторов, статье «Преобразовать текст в строке состояния 6 — Len(Hex(indRefColor)))
как мы делали 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 WbkCountCellsByColorCountCellsByColor To xlRange.Columns.Count) For числа, то, вероятно, затем номер цвета не работает. если + 1 End области, а в
это наименование выделено, обозначенную ячейку результат., выделяем название
опять перемещаемся в
данными. Синтаксис этой подсчитать, сколько ячеек значений, а есть
Функции, которые суммируют значения по цвету ячейки:
это в первом
цвет заливки ячеек = vWbkRes End: indRow = 1
Вы захотите вычислить определенной заливки? Допустим возможно окажите помощь
Функции, которые возвращают код цвета:
If Next СчетЕслиЦвет
поле жмем на кнопку Как видим, выбранныйСЧЁТЕСЛИ
категорию функции следующий: в данном столбце
в столбце В, примере. в зависимости от Function Function WbkSumCellsByColor(cellRefColorCountCellsByColor(диапазон, код_цвета) 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_EQuote 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 ExcelCell_Color — ячейка-образец помощью Надстройки MyAddin Variant ‘ Суммирует«OK» ссылки на ячейки. что в ExcelПроизводится активация окошка аргументов кнопке «OK».«Значение» которые способны решить строк. Например, так. цвету, если в значений в них,
= xlCalculationManual vWbkResF2:F14 GetCellColor = arResults предоставляет набор функций заливки. Разве здесьВы сами себе заданный диапазон ячеек. Ссылку на диапазон существует целый ряд функцииПосле того, как было. В качестве аргументов указанную проблему. РассмотримЗдесь выделили четыре строки. них содержатся числовые
то у меня = 0 For– это диапазон, Else GetCellColor = для различных целей, написано — «укажите противоречите при условии, чтоДля ручного ввода шаблон можно прописать вручную, способов подсчитать количествоСЧЁТЕСЛИ запущено окно аргументов как раз выступают каждый из нихТретий способ данные. для Вас плохие Each wshCurrent In содержащий раскрашенные ячейки, xlRange.Interior.Color End If и логично предположить, код цвета заливки»?Вот аналогичная тема: RGB цвет фона выглядит следующим образом: но лучше установить значений в столбце.. Как видим, окно оператора ссылки на ячейки в отдельности..
Как использовать код, чтобы посчитать количество цветных ячеек и просуммировать их значения
- Нажмите и удерживайте новости – не Worksheets wshCurrent.Activate vWbkRes которые Вы хотите End Function Function
- что существуют формулыВы просто ЩЕЛКАЕТЕНарод подскажите как слагаемого совпадает с=СЧЁТЕСЛИ(диапазон;критерий) курсор в поле Выбор определенного варианта
- имеет два поля,СЧЁТ или диапазон, вСкачать последнюю версиюМожно в таблицеCtrl существует универсальной пользовательской
- = vWbkRes + посчитать. Ячейка GetCellFontColor(xlRange As Range) для подсчёта ячеек НА ЯЧЕЙКУ с
- посчитать сумму ячеек цветом фона ячейкиПосле этого программа производит«Значение1» зависит от конкретных которые соответствуют аргументам, следует в его котором нужно произвести
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 в первом пункте ячеек в нескольких без фиксации результата; не раз описывали
представлено до 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
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 работал давноОбозначаем ячейку, в которуюи т.д. Когда помощью функцииПосле того, как вышеуказанные нужно выполнить операцию. щелчок по кнопке поставленные задачи различными
курсор в нижнююВ результате Вы увидите которые попадались мне) любую пустую ячейку значения на основе Next Next GetCellFontColor не пугайтесь, Вам: Inter_E, Вы читаете, в которой хранятсясоздал модуль, забил будет выводиться результат все данные введены.СЧЁТЕСЛИ настройки выполнены, жмем Делаем это все«OK» способами. ячейку столбца. Нажимаем
вот такое сообщение: не обрабатывают правила на любом листе выбранного цвета ячейки, = 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
- готовый код (написанный с текстом, то если макросы из и в конце«СЧЁТЕСЛИМН»Данную функцию также можноАвтор: Максим Тютюшев
- Оператор производит вычисления иСЧЁТЗСЧЁТЗ позволяет подсчитать количество «А». Активная ячейка,и получили следующие on their values указать любую ячейкуSumCellsByColor(диапазон, код_цвета) As Range, cellRefColor
- нашим гуру Excel), они будут игнорироваться.» MyAddin ? добавилось 2 строки. Выделяем его и ввести вручную вПри выполнении определенных задач выдает результат на: устанавливаем курсор в. В нём располагаются ячеек, содержащих числовые при этом, находится цифры:(Форматировать все ячейки с заливкой нужногоКак показано на снимке As Range) As и всё, что И тем неRAN»Sub test() жмем на кнопку ячейку или строку во время работы экран. Как видим, поле и выделяем поля ввода аргументов.
- и текстовые данные. в таблице.Count на основании их цвета, например, экрана ниже, мы Long Dim indRefColor Вам потребуется сделать менее, в своём
: Ну, если надстройку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 сумму всех ячеек
- где Dim cntRes As в свою рабочую буквы!»Надстройка для суммирования компайл ерор, ожидается
- Собственно, аргументы функцииПосле того, как формула Эксель предоставляет такую«Мясо» в поле, жмем единиц. Но для состояния. статье «Сочетание клавиш это красноватый цвет,
- (Форматировать только первые в книге, окрашенныхD2:D14 Long Application.Volatile cntRes книгу.Inter_E по цвету заливки,шрифта, End Sub, в те же самые, введена, программа в возможность с помощью. на кнопку решения поставленной передДля выполнения данной задачи в Excel». которым выделены ячейки или последние значения); в этот же– диапазон, = 0 indRefColorСчитаем и суммируем по: Да, мне надо формату чем ошибка? что и у заранее выделенной области встроенных инструментов. ДавайтеДавайте немного изменим задачу.«OK» нами задачи хватит достаточно зажать левуюЧетвертый способ со значениемFormat only values that
- цвет.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– это сумма которые находятся выше
- нами в этом можете посчитать и Then cntRes = во всей книге решить эту проблемку! получиться.
- его значение нужно. Разница только в заполненных ячеек в Excel«Мясо» для содержания функции. этого с зажатой значений. Как только. Выделяем ячейку, в значений всех ячеек или ниже среднего);
- примере, а также просуммировать ячейки по cntRes + 1Считаем и суммируем по Просто на делеInter_E подставить в ObrazecCvet
том, что диапазонов Экселе существует ещёВ программе Excel количество. Как видим, программа левой кнопкой мыши выделение будет произведено,
которой будет стоять красного цвета вFormat only unique or пару новых функций, цвету шрифта при End If Next цвету, когда к
сижу, самому найти: Добрый день!Heidegger и соответствующих им функция счет. В
- заполненных ячеек можноВыделяем ячейку, куда будем подсчитала только ячейки, выделяем на листе в строке состояния, цифра количества строк. столбце duplicate values
которые определяют коды помощи функций cellCurrent CountCellsByColor = ячейкам применены правила в стандартном екселеКак можно без: Текст функций не
- условий может быть отличие от предыдущей увидеть при помощи выводить результат, и которые содержат числовые тот столбец, значения которая расположена внизу
Нажимаем стрелку уQty.(Форматировать только уникальные цветов.CountCellsByFontColor cntRes End Function
условного форматирования через заводских надстройеек VBA, просто с
нужно никуда забивать
много. Вводим адреса формулы, она считает счетчика на строке уже описанным ранее значения. Пустые ячейки в котором нужно окна, около параметра кнопки «Автосумма» на, то есть общее или повторяющиеся значения).Замечание:и
Function SumCellsByColor(rData AsПредположим, у Вас есть время сейчас берет! использованием формулы IF – они должны
- диапазонов и соответствующие только ячейки заполненные состояния или целого способом вызываем окно и элементы, содержащие подсчитать. После того,«Количество» закладке Excel «Главная» количество элементов сКроме того, практически все
Пожалуйста, помните, чтоSumCellsByFontColor Range, cellRefColor As таблица заказов компании,Заранее спасибо!
- посчитать значения в быть на верхнем им условия, а числовыми данными. ряда функций, каждая аргументов оператора
текстовые данные, в как координаты столбцабудет отображаться число и выбираем функцию
отметкой эти коды VBA все эти формулы
соответственно.
Range) Dim indRefColor в которой ячейкиЮрий М ячейках которые залиты уровне.
потом жмем наКак и в предыдущем из которых подсчитываетСЧЁТЕСЛИ
- подсчете не участвовали. отобразились в поле, значений, содержащихся в «Число».Past Due имеют целый ряд будут работать, если
Замечание: As Long Dim в столбце: Я полагаю, что определенным цветом. ФормулаНет, вторым аргументом кнопку случае, выделяем ячейку, элементы, заполненные определенным.Урок: Функция СЧЁТ в жмем на кнопку столбце. В подсчетеЭта функция считает только. особенностей и ограничений, Вы уже добавилиЕсли после применения cellCurrent As RangeDelivery штатными средствами такого будет считать по функции идёт ячейка,«OK» куда будут выводиться типом данных.В поле
Excel
lumpics.ru
Подсчет заполненных ячеек в Microsoft Excel
«OK» будут участвовать ячейки, заполненные строки. ЕслиColor из-за которых они в свою рабочую выше описанного кода Dim sumRes Application.Volatileраскрашены в зависимости не сделать. Нужно горизонтали. (например зеленым)!
имеющая целевой цвет,.
Подсчет ячеек
данные и такимСамый простой способ подсчитать«Диапазон»В отличие от предыдущихв нижней части заполненные любыми данными есть пустые ячейки– это шестнадцатеричный могут не работать
Способ 1: счетчик на строке состояния
книгу Excel пользовательскую VBA Вам вдруг sumRes = 0 от их значений: изощряться :-)Мой примерный план: вхождения которого ищутсяСинтаксис у этой функции же способом запускаем ячейки, содержащие данныевводим координаты все способов, использование оператора окна аргументов. (числовые, текстовые, дата в столбце, то код цвета выделенной корректно с какой-то функцию, как было потребуется раскрасить ещё indRefColor = cellRefColor.Cells(1,Due in X DaysInter_E =if(E36:G36,colorindex(15773696),counta(E36:G36)) во входном диапазоне
следующий: Мастер функций. В – это воспользоваться того же первогоСЧЁТЕСЛИПрограмма производит подсчет и и т.д.). Пустые в формуле исправляем ячейки, в нашем конкретной книгой или показано ранее в несколько ячеек вручную, 1).Interior.Color For Each– оранжевые,: У меня однаЗаранее благодарен. (первый аргумент функции).=СЧЁТЕСЛИМН(диапазон_условия1;условие1; диапазон_условия2;условие2;…) нём выбираем оператора
Способ 2: функция СЧЁТЗ
информацией со счетчика, столбца таблицы, которыйпозволяет задавать условия, выводит в ячейку, элементы при подсчете адрес первой ячейки случае типами данных. Так этой статье. сумма и количество cellCurrent In rDataDelivered
- идейка, надо соЮрий МKoGGПосле этого приложение производит с наименованием который размещен в
- обрабатывали ранее. отвечающие значения, которые которую мы выделяли будут игнорироваться. диапазона. Например, мыD2 или иначе, ВыCountCellsByColor(диапазон, код_цвета) ячеек не будут
- If indRefColor =– зелёные, стандартными средствами и: В «Копилке» для, прекрасный код, но подсчет заполненных ячеек«СЧЁТ» правой части строкиВ поле будут принимать участие на первом шагеВ некоторых случаях индикатор вставили формулу функцией. можете попытать счастье– считает ячейки пересчитаны автоматически после cellCurrent.Interior.Color Then sumResPast Due плюс функциями Прист-а работы с закрашенными я бы ещё указанных диапазонов, которые. Жмем на кнопку состояния слева от«Критерий» в подсчете. Все данной инструкции, количество
- количества значений может «Автосумма». В этойЕсли у Вас возникли и google в с заданным цветом
этих изменений. Не
- = WorksheetFunction.Sum(cellCurrent, sumRes)– красные. попробовать. Так попробовал ячейками есть функция добавил Application.Volatile, чтобы соответствуют установленным условиям.
Способ 3: функция СЧЁТ
«OK» кнопок переключения режимоввводим следующее выражение: остальные ячейки будут всех значений (как не высвечиваться в формуле указан диапазон трудности с добавлением
- поисках идеального решения, заливки.В примере, рассмотренном ругайте нас, это End If NextТеперь мы хотим автоматически через стандартный COUNT от The_Prist. функция пересчитывалась хотя Результат выводится в. просмотра в Excel.<>Мясо
- игнорироваться. числовых, так и строке состояния. Это до первой пустой скриптов в рабочую и если Вам выше, мы использовали не погрешности кода cellCurrent SumCellsByColor = сосчитать количество ячеек и пристовским, чеInter_E бы по F9. заранее отмеченную область.
Запускается окно аргументов. Аргументы Пока на листе
То есть, данный критерий
- Оператор текстовых), содержащихся в означает то, что ячейке столбца. =СЧЁТ(A4:A6) книгу Excel, например,
Способ 4: функция СЧЁТЕСЛИ
удастся найти его, вот такую формулуНа самом деле, это sumRes End Function по их цвету, то не получается: Спасибо, но какByronelКак видим, простейший подсчет те же самые, выделен диапазон, в задает условие, чтоСЧЁТЕСЛИ целевом столбце. он, скорее всего, Мы адрес ячейки
- ошибки компиляции, не пожалуйста, возвращайтесь и для подсчёта количества нормальное поведение макросов Function CountCellsByFontColor(rData As то есть сосчитать у меня… можно себе поставить, В приложении образец
- количества заполненных ячеек что и при котором все элементы мы подсчитываем всетоже причислен кКак видим, в отличие отключен. Для его А4 исправляем на работающие формулы и опубликуйте здесь свою ячеек по их в Excel, скриптов Range, cellRefColor As количество красных, зелёныхsvd2017 эту надстройку. У – можно поиграть выделенного диапазона можно
использовании предыдущего способа. пустые или лишь
заполненные данными элементы,
- статистической группе функций от предыдущего способа, включения следует кликнуть адрес ячейки А1. так далее, Вы находку! цвету: VBA и пользовательских
Способ 5: функция СЧЁТЕСЛИМН
Range) As Long и оранжевых ячеек: Добрый день! Такое: меня 2007-ой на с ним. увидеть в строке В их роли один содержит какое-то
- которые не содержат Excel. Его единственной данный вариант предлагает правой кнопкой мыши Получится так. можете скачать рабочуюКод VBA, приведённый ниже,=CountCellsByColor(F2:F14,A17) функций (UDF). Дело Dim indRefColor As
- на листе. Какесть колонка с английской версий.KoGG состояния Эксель. Если выступают ссылки на значение, данный индикатор слово задачей является подсчет выводить результат в по строке состояния.Пятый способ. книгу Excel с преодолевает все указанныегде в том, что Long Dim cellCurrent я уже сказал цифрами, нужно посчитать
Inter_E: To Heidegger :
же вам нужно
- ячейки. Вставляем координаты скрыт. Счетчик автоматически«Мясо» непустых элементов в конкретный элемент листа Появляется меню. В
Посчитать, если выделено цветом примерами и с выше ограничения и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 2010sboy что-то тихо произошло. в целевом диапазонеАвтор: Максим Тютюшев=СЧЁТ(значение1;значение2;…) этот счетчик включен,.
«Диапазон»С помощью оператора что полученный результатЧтобы посчитать ячейки
Источник: https://www.ablebits.com/office-addins-blog/2013/12/12/count-sort-by-color-excel/ значений в этихCountCellsByFontColor(диапазон, код_цвета) курсор на любую If Next cellCurrent и 2013. Итак,: И Вам здравствуйте!Ну как теперь
— функция автоматическиByronelПосле этого в области, и только ждетВ предварительно заданной ячейке
представляется в видеСЧЁТ
нигде не фиксируется.
(строки) по определенномуПеревел: Антон Андронов ячейках, независимо от
– считает ячейки ячейку и кликните
CountCellsByFontColor = cntRes выполните 5 простых
buchlotnik пользоваться? Там help-a не пересчитается -
: добрый день! в которой находится
того, когда пользователь сразу же отображается ссылки на конкретный
можно произвести подсчет То есть, как условию, используем функциюАвтор: Антон Андронов типа условного форматирования,
с заданным цветомF2 End Function Function шагов, описанных далее,
: можно нет на этих надо вводить ееесть 2 столбца
формула, отобразится количество выделит определенные элементы, результат. Он сообщает
массив ячеек, а только числовых значений только вы снимете «СЧЁТЕСЛИ». Примеры формулГоворят, что нет
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 DimSumCellsByFontColor(диапазон, код_цвета) работая с любым sumRes Application.Volatile sumRes нажмите , именно зеленый.. виде стандартный зеленый и без Volatile. «другие цвета»)
выражениями, но только Для этого нужно«Мясо» Это может быть функция также относится с помощью данногоПосчитать строки, выделенные условным других приемов, чтобы
sumRes Dim cntCells– вычисляет сумму макросом, который Вы
= 0 indRefColorAlt+F11buchlotnik цвет?julyttнеобходимо посчитать количество такие из них, кликнуть правой кнопкой.
как точное числовое к категории статистических способа можно производить форматированием посчитать выделенные строки, As Long Dim ячеек с заданным найдёте далее в = cellRefColor.Cells(1, 1).Font.Color, чтобы запустить редактор: читаем правила форумаСпасибо!
: Доброго дня всем!
ячеек определенного цвета которые соответствуют определенному мыши по строкеТеперь давайте произведем в или текстовое значение,
операторов, как и подсчет только всехили ячейки Excel. Было indCurCell As Long цветом шрифта. этой статье. For Each cellCurrentVisual Basic for Applications , прикладываем пример,
planetaexcel.ru
Посчитать значения в закрашенных ячейках. (Макросы/Sub)
Inter_EПытаюсь усовершеннствовать таблицы,
в ячейках значений условию. Например, если состояния и в третьей колонке данной так и значение,
предыдущая. Её задачей
заполненных значениями ячеекокрашены цветом вручную в бы желание, а cntRes = 0GetCellFontColor(ячейка)
Представленный ниже скрипт Visual In rData If
(VBA). получаем помощь
: Которая вторая и с которыми работаю.
нет, они просто задать условие «>50», открывшемся списке установить таблицы подсчет всех
заданное знаками является подсчет ячеек и нельзя задавать Excel
excelworld.ru
способы найдем. )))
Вычисления по цвету ячеек
Помечать ячейки цветом, используя заливку или цвет шрифта, очень удобно и наглядно. Если вы не дальтоник, конечно 🙂 Трудности возникают тогда, когда по такой раскрашенной таблице возникает необходимость сделать отчет. И если фильтровать и сортировать по цвету Excel в последних версиях научился, то суммировать по цвету до сих пор не умеет.
Чтобы исправить этот существенный недостаток можно использовать несложные пользовательские макрофункции на Visual Basic, которые позволят нам суммировать/подсчитывать количество/среднее арифметическое ячеек с определенным цветом заливки/шрифта.
На вкладке Разработчик (Developer) нажмите кнопку Visual Basic или сочетание клавиш Alt + F11 , чтобы открыть редактор макросов. Если такой вкладки у вас не видно, то включите ее в настройках Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon) .
В окне редактора вставьте новый модуль через меню Insert — Module и скопируйте туда текст следующих функций:
Как легко сообразить, первая функция здесь вычисляет количество ячеек с заданным цветом заливки, вторая — сумму, а третья — среднее арифметическое. У всех функций два аргумента:
- DataRange — диапазон исходных ячеек с числами, раскрашенных в разные цвета
- ColorSample — ячейка, цвет заливки которой мы берём за образец
Если теперь вернуться в Excel, то в Мастере функций (вкладка Формулы — кнопка Вставить функцию) в появившейся там категории Определенные пользователем (User Defined) можно найти наши функции и вставить их на лист. Либо напрямую ввести их в строку формул, как любые другие функции Excel:
Добавление условий
Ограничения и нюансы пересчёта
У созданных нами макрофункций есть 2 важных нюанса.
Во-первых, эти функции «не видят» заливку, созданную с помощью условного форматирования, т.е. работают только с цветом, который был задан для ячеек вручную.
Во-вторых, к сожалению, изменение цвета заливки или цвета шрифта ячейки Excel не считает изменением её содержимого, поэтому не запускает пересчет формул. То есть при перекрашивании исходных ячеек с числами в другие цвета итоговая сумма/среднее/количество по нашим функциям автоматически пересчитываться пересчитываться не будет.
Полностью решить эту проблему невозможно, но есть несколько способов её обойти:
- Сделать двойной щелчок левой кнопкой мыши по ячейки с нашей формулой и нажать на Enter , т.е. имитировать повторный ввод функции в ячейку — Excel её заново пересчитает и выдаст обновленный результат.
- Можно использовать сочетание клавиш Ctrl + Alt + F9 , которое принудительно заставит Excel пересчитать всё формулы и функции независимо от того, изменились ли для них исходные данные. Но это сочетание нужно будет не забывать нажимать каждый раз при изменении исходных данных.
- Добавить в код наших макрофункций (в любое место) команду Application.Volatile True. Эта команда языка Visual Basic заставляет Excel пересчитывать результаты нашей функции при изменении любой ячейки на листе (или по нажатию F9). Однако, в этом случае, скорость работы наших функций заметно снизится, т.к. их пересчёт будет происходить постоянно — даже когда мы не меняли цвета или значения ячеек в исходных данных. Пользуйтесь этим методом осторожно.
И помните о том, что наша функция перебирает все (и пустые тоже) ячейки в диапазоне DataRange и не задавайте в качестве первого аргумента целый столбец — «думать» будет долго 🙂
Функции для суммирования значений по цвету ячеек в EXCEL не существует (по крайней мере, в EXCEL 2016 и в более ранних версиях). Вероятно, подавляющему большинству пользователей это не требуется.
Пусть дан диапазон ячеек в столбце А. Пользователь выделил цветом ячейки, чтобы разбить значения по группам.
Необходимо сложить значения ячеек в зависимости от цвета фона. Основная задача: Как нам «объяснить» функции сложения, что нужно складывать значения, например, только зеленых ячеек?
Это можно сделать разными способами, приведем 3 из них: с помощью Автофильтра , Макрофункции ПОЛУЧИТЬ.ЯЧЕЙКУ() и VBA.
С помощью Автофильтра (ручной метод)
- Добавьте справа еще один столбец с заголовком Код цвета .
- Выделите заголовки и нажмите CTRL+SHIFT+L, т.е. вызовите Автофильтр ( подробнее здесь )
- Вызовите меню Автофильтра , выберите зеленый цвет
- Будут отображены только строки с зелеными ячейками
- Введите напротив каждого «зеленого» значения число 1
- Сделайте тоже для всех цветов
Введите формулу =СУММЕСЛИ(B7:B17;E7;A7:A17) как показано в файле примера (лист Фильтр) .
Для подсчета значений используйте функцию СЧЕТЕСЛИ() .
С помощью Макрофункции ПОЛУЧИТЬ.ЯЧЕЙКУ()
Сразу предупрежу, что начинающему пользователю EXCEL будет сложно разобраться с этим и следующим разделом.
Идея заключается в том, чтобы автоматически вывести в соседнем столбце числовой код фона ячейки (в MS EXCEL все цвета имеют соответствующий числовой код). Для этого нам потребуется функция, которая может вернуть этот код. Ни одна обычная функция этого не умеет. Используем макрофункцию ПОЛУЧИТЬ.ЯЧЕЙКУ(), которая возвращает код цвета заливки ячейки (она может много, но нам потребуется только это ее свойство).
Примечание: Макрофункции — это набор функций к EXCEL 4-й версии, которые нельзя напрямую использовать на листе EXCEL современных версий, а можно использовать только в качестве Именованной формулы . Макрофункции — промежуточный вариант между обычными функциями и функциями VBA. Для работы с этими функциями требуется сохранить файл в формате с макросами *.xlsm
- Сделайте активной ячейку В7 (это важно, т.к. мы будем использовать относительную адресацию в формуле)
- В Диспетчере имен введите формулу =ПОЛУЧИТЬ.ЯЧЕЙКУ(63;Макрофункция!A7)
- Назовите ее Цвет
- Закройте Диспетчер имен
- Введите в ячейку В7 формулу =Цвет и скопируйте ее вниз.
Сложение значений организовано так же как и в предыдущем разделе.
Макрофункция работает кривовато:
- если вы измените цвет ячейки, то макрофункция не обновит значения кода (для этого нужно опять скопировать формулу из В7 вниз или выделить ячейку, нажать клавишу F2 и затем ENTER )
- функция возвращает только 56 цветов (так называемая палитра EXCEL), т.е. если цвета близки, например, зеленый и светло зеленый, то коды этих цветов могут совпасть. Подробнее об этом см. лист файла примера Colors . Как следствие, будут сложены значения из ячеек с разными цветами.
С помощью VBA
В файле примера на листе VBA приведено решение с помощью VBA. Решений может быть множество:
Как в Excel посчитать сумму закрашенных ячеек?
Считаем сумму и количество ячеек по цвету во всей книге
Диапазон указывать не нужно, но необходимо в скобках указать любую ячейку с заливкой нужного цвета, например, =WbkSumCellsByColor(A1), и формула вернет сумму всех ячеек в книге, окрашенных в этот же цвет.
Как в Excel задать условие по цвет ячейки?
- Выделите диапазон ячеек B2:L15 и выберите инструмент: «ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Создать правило». .
- В поле ввода введите формулу:
- Щелкните на кнопку «Формат» и укажите на вкладке «Заливка» каким цветом будут выделены ячейки актуального месяца.
Как посчитать выделенные цветом ячейки?
- Нажмите кнопку Счёт по цвету на панели XLTools. .
- Из выпадающего списка «Учитывать только» выберите, какой тип цветовой расцветки следует учитывать в дальнейших расчётах: .
- Из следующего выпадающего списка выберите «Вычислять по цвету» Фона.
Как посчитать количество заполненных ячеек в строке Excel?
- СЧЁТЗ: подсчитывает количество непустых ячеек.
- СЧЁТ: подсчитывает количество ячеек, содержащих числа.
- СЧИТАТЬПУСТОТЫ: подсчитывает количество пустых ячеек.
Как посчитать количество одинаковых ячеек в Excel?
Для подсчета количества ячеек, содержащих определенный текст, вы можете использовать функцию СЧЁТЕСЛИ. В общей форме формулы (выше), RNG является диапазон ячеек, TXT представляет собой текст, который должны содержать ячейки, и «*» является подстановочным символом, соответствующим любому количеству символов.
Как суммировать ячейки по условию?
Первым делом нужно указать расположение номера: =СУММЕСЛИМН(D2:D11; Другими словами нужно ввести формулу для суммирования чисел в столбце, если они удовлетворяют условиям. Что диапазон ячеек — это первый аргумент в этой формуле — первая часть данных, функция требует в качестве входных данных.
Как подсчитать или суммировать ячейки на основе цвета ячеек в листе Google?
- Откройте Tools > Script Editor.
- Вставьте код ниже, сохраните сценарий
- Вернитесь к своей электронной таблице. Используйте с =countColoredCells(A1:Z5,C5) , где C5 — ячейка с цветом, который нужно подсчитать.
Как посчитать количество ячеек по цвету в гугл таблице?
- Установите электроинструменты через панель дополнений (Дополнения- > Получить дополнения)
- На боковой панели Power Tools нажмите кнопку Σ и в этом меню выберите пункт меню «Sum by Color»
- Выберите «Pattern cell» с цветом markup, который вы хотите найти
Как изменить цвет текста в Excel формулой?
- Выделите ячейку или диапазон ячеек с данными, которые вы хотите отформатировать. Вы также можете выбрать часть текста в ячейке.
- На вкладке Главная щелкните стрелку рядом с кнопкой Цвет шрифта .
- Выберите цвет в группе Цвета темы или Стандартные цвета.
Как в Excel закрасить ячейку по условию или формуле?
Закрасить ячейки на условиях очень просто. Выберите ячейки, столбцы или строки, цвет которых Вы хотите изменить. Затем на вкладке Главная перейдите в меню Стили и выберите Условное форматирование > Условия выделения ячейки. Выберите подходящее Вам условие.
Как закрасить ячейку в Excel в зависимости от даты?
Подсветка дат и сроков с помощью правил выделения ячеек
Для начала необходимо выделить нужный диапазон с вашими датами, на панели управления во вкладке «Главная», выбрать выпадающее меню «Условное форматирование», выбрать в списке «Правила выделения ячеек», далее выбрать тип «Дата…».
Skip to content
В этой статье вы узнаете, как посчитать ячейки по цвету и получить сумму по цвету ячеек в Excel. Эти решения работают как для окрашенных вручную, так и с условным форматированием.
Если вы активно используете различные цвета заливки и шрифта на листах Excel, чтобы различать различные типы значений, вам может потребоваться узнать, сколько ячеек выделено определенным цветом. Если значения ваших ячеек являются числами, вы можете автоматически вычислить сумму ячеек, закрашенных одним цветом, например, сумму всех красных ячеек.
Как все мы знаем, Microsoft Excel предоставляет множество формул для разных целей, и было бы логично предположить, что для подсчета ячеек по цвету есть и такие. Но, к сожалению, нет стандартной функции, которая позволяла бы суммировать по цветам или считать по цветам в Excel.
Помимо использования сторонних надстроек, есть только одно возможное решение — использование пользовательских функций. Если вы очень мало знаете об этой технологии или никогда раньше не слышали этот термин, не пугайтесь, вам не придется писать код самостоятельно. Здесь вы найдете готовое решение, и все, что вам нужно сделать, это скопировать / вставить его в свою книгу.
Функции и макросы, которые мы рассмотрим в этой статье, помогут нам сделать следующее:
- Как посчитать по цвету и суммировать по цвету на листе Excel
- Как суммировать по цвету и сосчитать по цвету во всей рабочей книге
- Пользовательские функции для получения цвета ячейки, цвета шрифта и цветового кода
- Как считать по цвету и суммировать ячейки, окрашенные с использованием условного форматирования
- Самый быстрый способ подсчета и суммирования ячеек по цвету в Excel
Как посчитать по цвету и суммировать по цвету на листе Excel
Предположим, у вас есть таблица со списком заказов, в которой ячейки в столбце «Количество» окрашены в зависимости от их значения в колонке «Выполнение» и даты: ячейки с выполняемыми заказами сроком до 30 дней от текущей даты — желтые, уже выполненные — зеленые, а просроченные заказы — красные.
Теперь нам нужно автоматически подсчитать ячейки определенного цвета, т.е. посчитать количество красных, зеленых и желтых ячеек в таблице. Как я объяснил выше, прямого решения этой задачи при помощи стандартных формул Excel не существует. Но, к счастью, есть код VBA для Excel. Выполните 5 быстрых шагов ниже, и вы узнаете число и сумму ваших цветных ячеек всего за несколько минут.
- Откройте книгу Excel и нажмите
Alt+F11
, чтобы открыть редактор Visual Basic (VBE). - Щелкните правой кнопкой мыши имя своей книги в разделе «Project–VBAProject» в правой части экрана, а затем выберите «Вставить» > «Модуль» в контекстном меню.
- Добавьте в вашу рабочую книгу следующий код:
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
- Сохраните свою книгу как «Книга Excel с поддержкой макросов (.xlsm)».
Если вы новичок и вам сложно работать с VBA, вы можете найти подробные пошаговые инструкции и несколько полезных советов в этом руководстве: Как вставить и запустить код VBA в Excel .
- Теперь, когда вся подготовительная работа сделана, выберите ячейку, в которой вы хотите получить результат, и введите в нее только что записанную нами пользовательскую функцию 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
Как использовать этот макрос для подсчета цветных ячеек и суммирования их значений.
Опишем процесс пошагово:
- Добавьте приведенный выше код на лист, как описано в первом параграфе статьи .
- Выберите ячейку с нужным цветом.
- Нажмите и удерживайте
Ctrl
. - Выберите диапазон, в котором вы хотите подсчитать цветные ячейки и/или суммировать по цвету, если у вас есть числовые данные.
- Отпустите клавишу
Ctrl
. - НажНажмите комбинацию
Alt+F8
, чтобы открыть список макросов в вашей книге. - Выберите макрос SumCountByConditionalFormat и нажмите «Выполнить» .
Покажем эти действия на скриншотах. Используем пример данных, с которыми мы уже работали в первых параграфах этой статьи. Только теперь они окрашены в столбце В при помощи условного форматирования.
Сначала выбираем ячейку D5, поскольку хотим подсчитать ячейки красного цвета с просроченными заказами.
Затем дополнительно, удерживая Ctrl
, выделяем диапазон ячеек в столбце D, по которым нужно выполнить подсчет ячеек определенного цвета.
Выполняем макрос, как показано на скриншоте ниже.
В результате вы увидите следующее сообщение с результатами:
Для этого примера мы выбрали столбец «Количество» и получили следующие цифры:
- Count — это количество ячеек определенного цвета, красного в нашем случае, который отмечает ячейки «Просрочен».
- Sum — это сумма значений всех красных ячеек в выбранной колонке, т.е. общее количество «Просроченных» заказов.
- Color — это шестнадцатеричный код цвета выбранной ячейки, в нашем случае D5.
Таким образом мы можем посчитать сумму и количество по цвету ячеек с условным форматированием.
Самый быстрый способ подсчета и суммирования ячеек по цвету в Excel
Я могу рекомендовать вам надстройку для Excel, которая бы считала и суммировала ячейки по указанному вами цвету или по всем цветам в выбранном диапазоне.
При этом не имеет значения, как установлены эти цвета – прямым форматированием ячейки либо при помощи условного форматирования.
Позвольте представить вам наш совершенно новый инструмент — «Счет и сумма по цвету» для Excel. Он имеет два варианта подсчета — «Один цвет» и «Все цвета», как видно на скриншоте ниже.
Подсчет и суммирование по одному цвету.
Вы нажимаете кнопку « Один цвет » на ленте, и в левой части рабочего листа открывается панель « Подсчет и сумма по цвету» . На панели вы выбираете:
- Диапазон, в котором вы хотите подсчитать и суммировать ячейки
- Любую ячейку с нужным цветом как образец
- Вариант — цвет фона или шрифта
После этого нажмите « Рассчитать » и сразу же увидите результат в нижней части панели! Помимо подсчета и суммы, надстройка вычисляет среднее значение и находит максимальное и минимальное значения. Никаких макросов, никаких формул, никакой боли
Обратите внимание, что подсчет возможен как по цвету фона, так и по цвету шрифта.
Подсчет и суммирование ячеек по всем цветам в выбранном диапазоне
Опция «Все цвета» работает в основном так же, за исключением того, что вам не нужно выбирать цвет. В разделе «Result for ..» вы можете выбрать любой из параметров: Количество, Сумма, Среднее, Максимальное или Минимальное значение и другие.
Если вы хотите скопировать результаты на свой рабочий лист, нажмите кнопку «Paste All…» в нижней части панели .
В настоящее время надстройка доступна как часть Ultimate Suite for Excel . Это коллекция отличных инструментов, специально разработанных для решения самых утомительных, кропотливых и подверженных ошибкам задач в Excel.
В дополнение к надстройке «Подсчет и суммирование по цвету», Ultimate Suite включает более 70 инструментов, которые помогут вам объединить данные из разных листов, удалить дубликаты, сравнить листы на совпадения и различия и многое другое.
Надеюсь, теперь сумма по цвету и подсчет ячеек по цвету для вас не будут сложными. Если же будут вопросы – не стесняйтесь задавать их в комментариях.
В своей работе мы практически ежедневно сталкиваемся с таблицами 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 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 (файл с поддержкой макросов)