Роджер интересуется, есть ли способ использовать функцию СЧЁТЕСЛИ, используя цвет фона ячейки в качестве критерия «если». У него есть календарь, и он хочет иметь возможность подсчитывать количество дней, которые он выделяет фиолетовым или другим цветом.
Короткий ответ заключается в том, что COUNTIF нельзя использовать для проверки цвета фона или какого-либо форматирования. ; он может только проверять ценности. Если вам нужно вычислить количество фиолетовых ячеек только один или два раза, вы можете использовать функцию Excel «Найти и заменить», чтобы выяснить это. Выполните следующие действия:
- Выделите ячейки, составляющие ваш календарь.
- Нажмите Ctrl + F . Excel отображает вкладку «Найти» в диалоговом окне «Найти и заменить».
- Нажмите кнопку «Параметры», если она доступна. Excel развернет диалоговое окно. (См. Рис. 1.)
- Убедитесь, что поле «Найти» пусто.
- Нажмите кнопку «Формат». Excel отображает диалоговое окно «Найти формат». (См. Рис. 2.)
- Нажмите кнопку «Выбрать формат из ячейки» в нижней части диалогового окна. Диалоговое окно «Найти формат» исчезнет, а указатель мыши изменится на знак «плюс» с пипеткой рядом с ним.
- Щелкните ячейку, отформатированную как те, которые вы хотите найти. (Другими словами, щелкните фиолетовую ячейку.) Указатель мыши вернется в нормальное состояние.
- Щелкните «Найти все». Диалоговое окно «Найти и заменить» развернется, и в нем будут перечислены все ячейки, соответствующие формату, и в нижней части диалогового окна будет указано количество ячеек.
- Нажмите «Закрыть», чтобы закрыть диалоговое окно «Найти и заменить». .
Рис. 1. Вкладка «Найти» диалогового окна «Найти и заменить».
Рис. 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 Если rAreaCell.Interior.Color = lMatchColor Then lCounter = lCounter + 1 End If Next rAreaCell CountColorIf = lCounterEnd Function
Чтобы использовать макрос, все, что вам нужно сделать, это предоставить ячейку, имеет цвет фона, который вы хотите протестировать, и диапазон для тестирования. Например, предположим, что ячейка A57 отформатирована с тем же фиолетовым цветом фона, который вы используете в ячейках календаря.. Если календарь расположен в ячейках A1: G6, вы можете использовать следующее, чтобы получить количество фиолетовых ячеек:
= CountColorIf (A57, A1: G6)
Следует отметить, что если вы измените цвет в ячейке в календаре, вам нужно будет что-то сделать, чтобы принудительно выполнить пересчет рабочего листа. Кажется, что Excel не выполняет автоматический пересчет после изменения цвета фона.
Есть, конечно, много разных способов решения проблемы и разработки пользовательских функций, таких как CountColorIf. Вот еще несколько веб-сайтов, которые содержат информацию, которая может быть полезной в этом отношении:
http://www.cpearson.com/excel/colors.aspxhttps://www.ozgrid.com/ VBA/sum-count-cells-by-color.htmhttp://xldynamic.com/source/xld.ColourCounter.html
Также доступны некоторые сторонние надстройки, которые вы можете использовать. Одним из таких дополнений, предложенных читателями, является Kutools for Excel. Вы можете найти дополнительную информацию о надстройке здесь:
https://www.extendoffice.com/product/kutools-for-excel.html
One заключительное замечание – идеи, изложенные в этом совете, отлично работают, если вы работаете с ячейками, которые явно заполнены цветами. Они не будут работать с ячейками, окрашенными с помощью условного форматирования. Это совсем другое дело, потому что условное форматирование не дает вам ничего, что можно было бы легко зафиксировать.
Источник: