Посчитать ячейки с условным форматированием excel

Обновлено: 04.07.2024

Ранее я описал, как с помощью пользовательской функции найти сумму значений в ячейках, выделенных цветом. К сожалению, эта функция не работает, если ячейки раскрашены с помощью условного форматирования. Я обещал «доработать» функцию. Но за два года, прошедшие с публикации той заметки, я не смог ни самостоятельно, ни с помощью информации из Интернета написать удобоваримый код… (Дополнение от 29 марта 2017 г. Спустя еще пять лет, код мне всё же удалось написать; см. заключительную часть заметки). И вот недавно я наткнулся на идею, содержащуюся в книге Д.Холи, Р. Холи «Excel 2007. Трюки», которая позволяет обойтись вовсе без кода.

Пусть есть список чисел от 1 до 100, размещенных в диапазоне А1:А100 (рис. 1; см. также лист «СУММЕСЛИ» Excel-файла) [1]. На диапазон наложено условное форматирование, помечающее ячейки, содержащие числа больше 10 и меньше или равно 20.

Рис. 1. Диапазон чисел; условным форматированием выделены ячейки, содержащие значения от 10 до 20

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

Чтобы сложить диапазон ячеек, отвечающих одному критерию, можно использовать функцию СУММЕСЛИ (рис. 2).


Рис. 2. Суммирование ячеек, отвечающих одному условию

Если у вас несколько условий, можно использовать функцию СУММЕСЛИМН (рис. 3).


Рис. 3. Суммирование ячеек, отвечающих нескольким условиям

Для подсчета числа ячеек, отвечающих одному критерию, можно использовать функцию СЧЁТЕСЛИ.

Для подсчета числа ячеек, отвечающих нескольким критериям, можно использовать функцию СЧЁТЕСЛИМН.

В Excel предусмотрена еще одна функция, которая позволяет указать несколько условий. Эта функция входит в набор функций баз данных Excel и называется БДСУММ. Чтобы проверить ее, используйте тот же набор чисел в диапазоне А2:А100 (рис. 4; см. также лист «БДСУММ» Excel-файла).


Рис. 4. Использование функций баз данных

Выделите ячейки C1:D2 и присвойте этому диапазону имя Критерий, введя его в поле имени слева от строки формул. Теперь выделите ячейку С1 и введите =$А$1, то есть ссылку на первую ячейку на листе, содержащую имя базы данных. Введите =$А$1 в ячейку D1 и вы получите две копии заголовка столбца А. Эти копии будут использоваться как заголовки для условий БДСУММ (C1:D2), который вы назвали Критерий. В ячейке С2 введите >10. В ячейке D2 введите <=20. В ячейке, где должен быть результат, введите следующую формулу:

Для подсчета числа ячеек, отвечающих нескольким критериям, можно использовать функцию БСЧЁТ.

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

На вкладке Разработчик (Developer) нажмите кнопку Visual Basic или сочетание клавиш Alt + F11 , чтобы открыть редактор макросов. Если такой вкладки у вас не видно, то включите ее в настройках Файл - Параметры - Настройка ленты (File - Options - Customize Ribbon) .

В окне редактора вставьте новый модуль через меню Insert - Module и скопируйте туда текст следующих функций:

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

  • DataRange - диапазон исходных ячеек с числами, раскрашенных в разные цвета
  • ColorSample - ячейка, цвет заливки которой мы берём за образец

Если теперь вернуться в Excel, то в Мастере функций (вкладка Формулы - кнопка Вставить функцию) в появившейся там категории Определенные пользователем (User Defined) можно найти наши функции и вставить их на лист. Либо напрямую ввести их в строку формул, как любые другие функции Excel:

Сумма, количество и среднее ячеек с заданным цветом заливки

Добавление условий

Аналогичный подход можно легко масштабировать, добавляя, при необходимости, дополнительные условия в проверку (команда if . then. ). Так, например, если нам нужно при вычислении среднего арифметического учитывать не только цвет заливки, но и цвет шрифта (т.е. считать не просто жёлтые, а именно жёлто-красные ячейки), то код нашей макро-функции будет выглядеть так:Разница только в добавленном через логическую связку "И" (and) условии на проверку соответствия цвета шрифта очередной проверяемой ячейки cell.Font.Color цвету шрифта ячейки-образца ColorSample.Font.Color.

Ограничения и нюансы пересчёта

У созданных нами макрофункций есть 2 важных нюанса.

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

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

Полностью решить эту проблему невозможно, но есть несколько способов её обойти:

  • Сделать двойной щелчок левой кнопкой мыши по ячейки с нашей формулой и нажать на Enter , т.е. имитировать повторный ввод функции в ячейку - Excel её заново пересчитает и выдаст обновленный результат.
  • Можно использовать сочетание клавиш Ctrl + Alt + F9 , которое принудительно заставит Excel пересчитать всё формулы и функции независимо от того, изменились ли для них исходные данные. Но это сочетание нужно будет не забывать нажимать каждый раз при изменении исходных данных.
  • Добавить в код наших макрофункций (в любое место) команду Application.Volatile True. Эта команда языка Visual Basic заставляет Excel пересчитывать результаты нашей функции при изменении любой ячейки на листе (или по нажатию F9). Однако, в этом случае, скорость работы наших функций заметно снизится, т.к. их пересчёт будет происходить постоянно - даже когда мы не меняли цвета или значения ячеек в исходных данных. Пользуйтесь этим методом осторожно.

И помните о том, что наша функция перебирает все (и пустые тоже) ячейки в диапазоне DataRange и не задавайте в качестве первого аргумента целый столбец - "думать" будет долго :)

lukoie

5cc664b7b2da3695859799.jpg

Вот пример. В нужной ячейке выделяется зеленым кто сдал протоколы до 12 ночи(то есть не хитрили, и не ждали чтобы получить оплату за двое суток работы), и кто сдал после часу ночи - то есть сигнал что были проблемы на участке с протоколом и стоит на них обратить внимание почему пришлось создавать уточняющий протокол.
Мне надо чтобы внизу автоматически считало кол-во зеленых и красных ячеек.

Смотрим на дату - 22 число
Смотрим на время - больше либо равно 1

Ну и для тех, кто сдал до 22 числа

lukoie

JohnnyBravo7, а, типа Вы предлагаете просто не привязываться к условному форматированию, а по дате? По сути я примерно так и сделал(я ж и так из уже раскрасил условным форматированием по этим признакам), но хотел(даже хотя бы для развития) понять как считать такие условно форматированные ячейки. К примеру, по всему листу у меня есть ячейки с красным текстом, где по тем или иным призназнакам можно подозревать проблему - как такие ячейки посчитать все автоматически? Там же статистика разная применяется, там так, а сям иначе. Потом увидеть число сколько всего у меня было "под вопросом" ячеек. lukoie, никак без макросов.
Поэтому логичнее поступать иначе: создавать отдельные столбцы, в которые заносить формулы критериев, а их уже как считать через count\countif\countifs, так и использовать для условного форматирования.
Дополнительный бонус: интерфейс подсистемы условного форматирования excel дико устарел и крайне неудобен в работе, сложные правила там смотреть\менять нелегко, когда логика вынесена в саму таблицу, а форматирование только по ее результатам - работать гораздо удобнее

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

Допустим, вы ранее выделяли некоторые ячейки на листе жирным шрифтом, а теперь вам нужно посчитать эти ячейки, выделенные жирным шрифтом. Есть идеи быстро решить эту проблему? В этой статье представлены некоторые приемы для подсчета ячеек по определенному формату, например полужирному, курсиву и т. Д.

Быстро подсчитайте или суммируйте жирные ячейки с помощью Kutools for Excel's functions

Kutools for Excel выпущен COUNTBYFONTBOLD функции и SUMBYFONTBOLD Функция для пользователей Excel позволяет быстро подсчитывать или суммировать более жирные ячейки в указанном диапазоне. Смотрите скриншот:

количество объявлений сумма жирным шрифтом 1

Вкладка Office позволяет редактировать и просматривать в Office с вкладками и значительно упрощает работу . Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%
  • Повторное использование чего угодно: Добавляйте наиболее часто используемые или сложные формулы, диаграммы и все остальное в избранное и быстро используйте их в будущем.
  • Более 20 текстовых функций: Извлечь число из текстовой строки; Извлечь или удалить часть текстов; Преобразование чисел и валют в английские слова.
  • Инструменты слияния : Несколько книг и листов в одну; Объединить несколько ячеек / строк / столбцов без потери данных; Объедините повторяющиеся строки и сумму.
  • Разделить инструменты : Разделение данных на несколько листов в зависимости от ценности; Из одной книги в несколько файлов Excel, PDF или CSV; От одного столбца к нескольким столбцам.
  • Вставить пропуск Скрытые / отфильтрованные строки; Подсчет и сумма по цвету фона ; Отправляйте персонализированные электронные письма нескольким получателям массово.
  • Суперфильтр: Создавайте расширенные схемы фильтров и применяйте их к любым листам; Сортировать по неделям, дням, периодичности и др .; Фильтр жирным шрифтом, формулы, комментарий .
  • Более 300 мощных функций; Работает с Office 2007-2019 и 365; Поддерживает все языки; Простое развертывание на вашем предприятии или в организации.

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

Удивительный! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Экономьте 50% своего времени и сокращайте тысячи щелчков мышью каждый день!

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

1. Выберите диапазон, в котором вы будете подсчитывать ячейки с помощью определенного форматирования, и откройте диалоговое окно «Найти и заменить», нажав кнопку Ctrl + F ключи одновременно.

Внимание: Вы также можете открыть диалоговое окно «Найти и заменить», нажав Главная > Найти и выбрать > Найдите.

2. В диалоговом окне «Найти и заменить» щелкните значок Параметры кнопку, чтобы развернуть параметры поиска, а затем нажмите кнопку Формат кнопку.

количество документов по определенному форматированию 1

3. В открывшемся диалоговом окне «Найти формат» укажите форматирование, по которому будет производиться подсчет ячеек, и щелкните значок OK кнопку.

Например, в нашем случае мы будем считать ячейки полужирным шрифтом, поэтому перейдем к шрифт и выберите Жирный в Стиль шрифта коробка. Смотрите скриншот:

количество документов по определенному форматированию 2

4. Теперь вы вернетесь в диалоговое окно «Найти и заменить» и нажмите Найти все кнопку.

Теперь вы увидите количество ячеек с определенным форматированием внизу этого диалогового окна. Смотрите скриншот:

количество документов по определенному форматированию 3

Подсчет ячеек по определенному форматированию с помощью Kutools for Excel

Если у вас установлен Kutools for Excel, его Выбрать ячейки с форматом Утилита может помочь вам быстро подсчитать все ячейки в диапазоне с помощью определенного форматирования. Пожалуйста, сделайте следующее:

Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Бесплатная пробная версия сейчас!

1. Выберите диапазон, который вы будете считать с помощью определенного форматирования, и нажмите Kutools > Выберите > Выбрать ячейки с форматом.

количество документов по определенному форматированию 01

2. В открывшемся диалоговом окне «Выбор ячеек с форматом» сделайте следующее (см. Снимок экрана выше):

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

(2) Снимите флажок со всех параметров форматирования, кроме конкретного форматирования в Тип .

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

(3) Щелкните значок Ok кнопку.

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

количество документов по определенному форматированию 6

Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Get It Now

С помощью статистической функции СЧЁТЕСЛИ можно подсчитать количество ячеек, отвечающих определенному условию (например, число клиентов в списке из определенного города).

Самая простая функция СЧЁТЕСЛИ означает следующее:

=СЧЁТЕСЛИ(где нужно искать;что нужно найти)

Браузер не поддерживает видео.

СЧЁТЕСЛИ(диапазон;критерий)

Имя аргумента

диапазон (обязательный)

Группа ячеек, для которых нужно выполнить подсчет. Диапазон может содержать числа, массивы, именованный диапазон или ссылки на числа. Пустые и текстовые значения игнорируются.

критерий (обязательный)

Число, выражение, ссылка на ячейку или текстовая строка, которая определяет, какие ячейки нужно подсчитать.

Например, критерий может быть выражен как 32, ">32", В4, "яблоки" или "32".

В функции СЧЁТЕСЛИ используется только один критерий. Чтобы провести подсчет по нескольким условиям, воспользуйтесь функцией СЧЁТЕСЛИМН.

Примеры

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

Количество ячеек, содержащих текст "яблоки" в ячейках А2–А5. Результат — 2.

Количество ячеек, содержащих текст "персики" (значение ячейки A4) в ячейках А2–А5. Результат — 1.

Количество ячеек, содержащих текст "яблоки" (значение ячейки A2) и "апельсины" (значение ячейки A3) в ячейках А2–А5. Результат — 3. В этой формуле для указания нескольких критериев, по одному критерию на выражение, функция СЧЁТЕСЛИ используется дважды. Также можно использовать функцию СЧЁТЕСЛИМН.

Количество ячеек со значением больше 55 в ячейках В2–В5. Результат — 2.

Количество ячеек со значением, не равным 75, в ячейках В2–В5. Знак амперсанда (&) объединяет оператор сравнения "<>" (не равно) и значение в ячейке B4, в результате чего получается формула =СЧЁТЕСЛИ(B2:B5;"<>75"). Результат — 3.

Количество ячеек со значением, большим или равным 32 и меньшим или равным 85, в ячейках В2–В5. Результат — 3.

Количество ячеек, содержащих любой текст, в ячейках А2–А5. Подстановочный знак "*" обозначает любое количество любых символов. Результат — 4.

Количество ячеек, строка в которых содержит ровно 7 знаков и заканчивается буквами "ки", в диапазоне A2–A5. Подставочный знак "?" обозначает отдельный символ. Результат — 2.

Распространенные неполадки

Возможная причина

Для длинных строк возвращается неправильное значение.

Функция СЧЁТЕСЛИ возвращает неправильные результаты, если она используется для сопоставления строк длиннее 255 символов.

Для работы с такими строками используйте функцию СЦЕПИТЬ или оператор сцепления &. Пример: =СЧЁТЕСЛИ(A2:A5;"длинная строка"&"еще одна длинная строка").

Функция должна вернуть значение, но ничего не возвращает.

Аргумент критерий должен быть заключен в кавычки.

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

Рекомендации

Помните о том, что функция СЧЁТЕСЛИ не учитывает регистр символов в текстовых строках.

Критерий не чувствителен к регистру. Например, строкам "яблоки" и "ЯБЛОКИ" будут соответствовать одни и те же ячейки.

Использование подстановочных знаков

В условиях отбора можно использовать поддикограммы: вопросии (?) и звездочки (*). Вопросительный знак соответствует любому отдельно взятому символу. Звездочка — любой последовательности символов. Если требуется найти именно вопросительный знак или звездочку, следует ввести значок тильды (

) перед искомым символом.

Например, =СЧЁТЕСЛИ(A2:A5;"яблок?") возвращает все вхождения слова "яблок" с любой буквой в конце.

Убедитесь, что данные не содержат ошибочных символов.

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

Для удобства используйте именованные диапазоны.

СЧЁТЕ ЕСЛИ поддерживает именные диапазоны в формуле (например, =СЧЁТЕЕСЛИ(фрукты ,">=32")-СЧЁТЕЕСЛИ(фрукты ,">85"). Именованный диапазон может располагаться на текущем листе, другом листе этой же книги или листе другой книги. Чтобы одна книга могла ссылаться на другую, они обе должны быть открыты.

Примечание: С помощью функции СЧЁТЕСЛИ нельзя подсчитать количество ячеек с определенным фоном или цветом шрифта. Однако Excel поддерживает пользовательские функции, в которых используются операции VBA (Visual Basic для приложений) над ячейками, выполняемые в зависимости от фона или цвета шрифта. Вот пример подсчета количества ячеек определенного цвета с использованием VBA.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

Читайте также: