Роджер интересуется, можно ли использовать функцию СЧЁТЕСЛИ, используя цвет фона ячейки в качестве критерия «если». У него есть calendar, и он хочет иметь возможность подсчитывать количество дней, которые он выделяет фиолетовым или другим цветом.

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

  1. Выделите ячейки, составляющие ваш календарь.

  2. Нажмите Ctrl + F. Excel отображает вкладку «Найти» диалогового окна «Найти и заменить».

  3. Нажмите кнопку «Параметры», если она доступна. Excel развернет диалоговое окно. (См. Рис. 1.)

  4. Убедитесь, что поле «Найти» пусто.

  5. Нажмите кнопку «Форматировать». Excel отображает диалоговое окно «Найти формат».

(См. Рис. 2.)

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

  2. Щелкните ячейку, отформатированную как те, которые вы хотите найти. (Другими словами, щелкните фиолетовую ячейку.) Указатель мыши вернется в нормальное состояние.

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

  4. Щелкните Закрыть, чтобы закрыть диалоговое окно «Найти и заменить».

Конечно, эти шаги могут быть утомительными, если вы хотите сосчитать больше одного или двух цветов. Или вам может понадобиться счетчик, чтобы вы могли использовать его в другом вычислении какого-либо типа. В этих случаях лучше создать определяемую пользователем функцию, которая проверяет ячейки и возвращает счетчик. Один из таких макросов — CountColorIf:

Function CountColorIf(rSample As Range, rArea As Range) As Long     Dim rAreaCell As Range     Dim lMatchColor As Long     Dim lCounter As Long

lMatchColor = rSample.Interior.Color     For Each rAreaCell In rArea         If rAreaCell.Interior.Color = lMatchColor Then             lCounter = lCounter + 1         End If     Next rAreaCell     CountColorIf = lCounter End Function

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

=CountColorIf(A57, A1:G6)

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

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

http://www.cpearson.com/excel/colors.aspx https://www.ozgrid.com/VBA/sum-count-cells-by-color.htm http://xldynamic.com/source/xld.ColourCounter.html

Также доступны некоторые сторонние надстройки, которые вы можете использовать.

Одним из таких дополнений, предложенных читателями, является Kutools for Excel. Вы можете найти больше информации о дополнении здесь:

https://www.extendoffice.com/product/kutools-for-excel.html

И последнее замечание: идеи, изложенные в этом совете, отлично работают, если вы работаете с ячейками, явно заполненными цветами. Они не будут работать с ячейками, окрашенными с помощью условного форматирования. Это совсем другой чайник, потому что условное форматирование не дает вам ничего, что вы могли бы легко зафиксировать.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (11725) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365.