Использование СЧЁТЕСЛИ с цветами (Microsoft Excel)
Роджер интересуется, можно ли использовать функцию СЧЁТЕСЛИ, используя цвет фона ячейки в качестве критерия «если». У него есть calendar, и он хочет иметь возможность подсчитывать количество дней, которые он выделяет фиолетовым или другим цветом.
Короткий ответ заключается в том, что COUNTIF нельзя использовать для проверки цвета фона или какого-либо форматирования; он может только проверять ценности. Если вам нужно вычислить количество фиолетовых ячеек только один или два раза, вы можете использовать функцию поиска и замены Excel, чтобы выяснить это. Выполните следующие действия:
-
Выделите ячейки, составляющие ваш календарь.
-
Нажмите Ctrl + F. Excel отображает вкладку «Найти» диалогового окна «Найти и заменить».
-
Нажмите кнопку «Параметры», если она доступна. Excel развернет диалоговое окно. (См. Рис. 1.)
-
Убедитесь, что поле «Найти» пусто.
-
Нажмите кнопку «Форматировать». Excel отображает диалоговое окно «Найти формат».
(См. Рис. 2.)
-
Нажмите кнопку «Выбрать формат из ячейки» в нижней части диалогового окна. Диалоговое окно «Найти формат» исчезнет, а указатель мыши изменится на знак «плюс» с пипеткой рядом с ним.
-
Щелкните ячейку, отформатированную как те, которые вы хотите найти. (Другими словами, щелкните фиолетовую ячейку.) Указатель мыши вернется в нормальное состояние.
-
Щелкните «Найти все». Диалоговое окно «Найти и заменить» развернется, и в нем будут перечислены все ячейки, соответствующие формату, а в нижней части диалогового окна будет указано количество ячеек.
-
Щелкните Закрыть, чтобы закрыть диалоговое окно «Найти и заменить».
Конечно, эти шаги могут быть утомительными, если вы хотите сосчитать больше одного или двух цветов. Или вам может понадобиться счетчик, чтобы вы могли использовать его в другом вычислении какого-либо типа. В этих случаях лучше создать определяемую пользователем функцию, которая проверяет ячейки и возвращает счетчик. Один из таких макросов — 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.