Подсчет ячеек по цвету заливки
Функция подсчитывает количество ячеек, окрашенных в определенный цвет. Помимо цвета ячеек возможно указать дополнительно текстовый критерий(например, подсчитать только ячейки с красным цветом заливки и напротив которых содержится слово "расход").
Мастер функций-Категория "MulTEx"- СчетЯчеек_Заливка
Сумма/Поиск/Функции - Математические - СчетЯчеек_Заливка
Синтаксис:
=СчетЯчеек_Заливка(
=СчетЯчеек_Заливка(
=СчетЯчеек_Заливка(
ДиапазонСчета(
ЯчейкаОбразец(
Критерий(
Так же данный аргумент может принимать в качестве критерия символы сравнения (
">0" - будут подсчитаны все ячейки в ДиапазонеСчета, значения ячеек критериев для которых больше нуля;">=2" - будут подсчитаны все ячейки в ДиапазонеСчета, значения ячеек критериев для которых больше или равно двум;"<0" - будут подсчитаны все ячейки в ДиапазонеСчета, значения ячеек критериев для которых меньше нуля;"<=60" - будут подсчитаны все ячейки в ДиапазонеСчета, значения ячеек критериев для которых меньше или равно 60;"<>0" - будут подсчитаны все ячейки в ДиапазонеСчета, значения ячеек критериев для которых не равно нулю;"<>" - будут подсчитаны все ячейки в ДиапазонеСчета, значения ячеек критериев для которых не пустые;"*отчет*" - будут подсчитаны все ячейки в ДиапазонеСчета, значения ячеек критериев для которых содержит слово "отчет";
Вместо нуля может быть любое число или текст. Так же можно добавить ссылку на ячейку со значением:
ДиапазонКритерия(
ИспУФ() - Необязательный аргумент. Допускается указание логических значений ИСТИНА(TRUE) или ЛОЖЬ(FALSE). По умолчанию принимает значение ИСТИНА. Если указан как ИСТИНА, то функция будет подсчитывать ячейки с учетом примененного к ним условного форматирования. Если указан как ЛОЖЬ, то функция будет подсчитывать ячейки без учета примененного условного форматирования, т.е. даже если условное форматирование применено и ячейка окрашена с его помощью, а реальный цвет заливки не соответствует цвету ЯчейкиОбразца - то она не будет подсчитана.
ДиапазонЦвета(
Функция подсчитывает любые ячейки, заливка которых равна заливке ячейки-образца. Даже если ячейка будет пустая, но заливка будет равна указанной - ячейка будет подсчитана. Чтобы подсчитать только заполненные ячейки в качестве критерия следует указать -
Важно: Функция не вычисляется при изменении цвета заливки. Для пересчета функции после изменения параметров необходимо выделить ячейку и нажатьF2 -Enter . Либо нажать сочетания клавишShift +F9 (пересчет функций активного листа) или клавишуF9 (пересчет функций всей книги)
Примечание: данная функция будет корректно работать даже при примененном к ячейке Условном форматировании. Однако если в ячейке/диапазоне присутствуют условия, формат для которых задан при помощи шкал, градиентов, гистограмм и значков - функция может вернуть некорректный результат. Связано это с тем, что Excel не предоставляет доступ к данным типам УФ извне.
![]()

Приведите текст формулы, которую вводите. Т.к. все она считает верно - с того листа, диапазон на котором указан. И диапазон и критерий могут быть на разных листах, притом текущий это или нет - совершенно не имеет значения.
Или можете мне на личную почту(The-Prist@yandex.ru) направить файл с функцией, которая не считает - я посмотрю, в чем может быть проблема.
Дмитрий, добрый день!
Всё сделал, я использовал другую формулу. Цвет заливки :)
Но стало очень дико тормозить, это из-за широкого диапазона ячеек?
Не могу точно сказать - я не вижу к какому диапазону применено. Возможно, на листе много условных форматов - их обработка достаточно неплохо тормозит процесс.
Дмитрий, спасибо! Всё работает! Но увы процесс вычисления очень замедляет процесс работы, вынужден отказаться от использования данной формулы. И использовать фильтр, что очень неудобно :(
Доброго дня!
MulTEx для Mac не подходит?
К сожалению вообще никак под MAC не подходит...
Добрый!
Не могу додумать, помогите)
Формула игнорирует ячейки с текстом внутри.а у меня во всех стоит время в формате [h]:mm:ss Т.е. формула ничего не считает...
Как исправить?.. Что-то я про критерий не поняла... Время везде разное...
Спасибо!
Анастасия, время хоть и может быть посчитано, но игнорируется, т.к. это все же не число и его подсчет будет неверным.
Если у Вас там действительно нормальные даты - поставьте в ячейках формат "Общий" и функция подсчитает. Только числа в любом случае запредельные получатся.
P.S. В скором времени выпущу обновление этих функций и использование критериев и диапазонов будет более логичным и понятным.
Спасибо.
Обычно формулы считают 2 объединённые ячейки за одну, а тут у меня все объединённые ячейки считаются за количество ячеек из которых состоят, ну и нельзя задать например всю таблицу в диапазон или отдельный столбец/строку так как программа просто зависает
Lerdn, формулы excel никогда не считали объединенную ячейку за одну, потому что это не одна ячейка, а несколько объединенных. И если объединять стандартно - то значение остается только в левой верхней(об этом даже предупреждение появляется), что и создает впечатление, будто формулы считают её за одну. На самом деле это не так - просто в этих ячейках нет данных. Можно проверить, если объединить ячейки А1:А3 и рядом записать функцию =СЧИТАТЬПУСТОТЫ(A1:A4). Будут просмотрены все 4 ячейки."<<>>" )
А вот если объединить при помощи той же команды MulTEx - то все иначе.
Функция СчетЯчеек_Заливка ведет себя так же. Только в данном случае, если считаете только цвет - то цвет распространяется на ВСЕ ячейки внутри объединенной - так уж сделан Excel. Попробуйте считать не только по цвету, но и по наличию любого значения(в качестве критерия можно указать
А вот насчет задать полностью таблицу или столбцы - да, будет долго. Потому что это более 1млн.ячеек. Попробуйте указывать меньшее кол-во ячеек, т.к. внутри функции никаких урезаний заданных диапазонов не производится. Плюс попробуйте задать для аргумента ИспУФ значение ЛОЖЬ(или 0), т.к. определение условного форматирования значительно тормозит процесс определения цвета.
Я попробую в одной из следующих версий реализовать определение действительно рабочего диапазона данных для этих функций(чтобы обрабатывались не полностью столбцы, а только использованный пользователем диапазон на листе).