СчетЯчеек_Заливка

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

 

Функция подсчитывает количество ячеек, окрашенных в определенный цвет. Помимо цвета ячеек возможно указать дополнительно текстовый критерий(например, подсчитать только ячейки с красным цветом заливки и напротив которых содержится слово "расход").
Для чего это нужно? Скорее всего Вы в работе с Excel уже сталкивались с таблицами, ячейки которых окрашены в тот или иной цвет заливки либо шрифта. Например, Желтый - расходы Транспортного отдела, Красный - Экономического, Зеленый - Администрация и т.п. И необходимо все эти расходы просуммировать/подсчитать, но опираясь на ячейки с определенным цветом заливки/шрифта. В Excel до сих пор нет ни одной функции для суммирования/подсчета данных в ячейках с определенным цветом заливки или шрифта.

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

Мастер функций-Категория "MulTEx"- СчетЯчеек_Заливка

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

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

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


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

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

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

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

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

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

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

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

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

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

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

Loading

40 комментариев

  1. Подскажите мне пожалуйста!!! Надеюсь форум не слишком устарел(
    Ситуация в следующем. Мне необходимо вычислить количество ячеек, которые выделены цветом и одновременно удовлетворяют некоторому условию (в поле стоит буква x).
    Пишу так: =Count_CellColor(D5:D47;$A$3;"x";4)
    Все работает отлично, НО! Только один раз. Т.е. если я выделю, например, еще одну ячейку с буквой, то значение функции не пересчитается автоматически. Только если зайти в ячейку с этой формулой и нажать энтер. Хочется, чтобы выделив цветом ячейку значение функции автоматически изменялось, как это можно сделать?

  2. Ирина, добрый день.
    В принципе это не форум :-) Но не устарел. Никак ситуацию не изменить - Excel не предоставляет разработчику возможности отследить изменение цвета ячейки или шрифта. Могу лишь посоветовать использовать клавишу F9 для пересчета. Это будет быстрее, чем вход в режим редактирования ячейки.

  3. Добрый день, пытаюсь использовать формулу Count_CellColor, но или я тормоз или у меня эксель тормозит. Могу ли я вам выслать пример того что мне надо подсчитать, и по факту посоветуйте мне что делать. Заранее спасибо!

  4. Добрый день,

    подскажите пожалусто в чем ошибка:
    ввожу формулу:
    =Count_CellColor(D6:J28,H6) - все считает отлично, но как только даю любой критерий, например:
    =Count_CellColor(D6:J28,H6,M5) либо =Count_CellColor(D6:J28,H6,"x"), сразу выдает :
    #VALUE!. То есть не считывает никакои критерий.

  5. Добрый день!
    Может, что не так делаю, но формула не работает, если ссылаться на диапазон ячеек другого листа, считает только текущий) Прошу помочь.

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.