Подсчитайте количество ячеек с цветовой заливкой Excel 2013

Есть ли способ/функция для подсчета количества заполненных цветом ячеек в Excel 2013 без использования VBA? Что-то типа

COUNTxxx(A1:A20)

person lala_12    schedule 25.08.2016    source источник
comment
Насколько я знаю и что я недавно гуглил: нет. Но вы можете создать пользовательскую функцию с vba, которую вы используете как обычную формулу Excel.   -  person Andreas    schedule 25.08.2016
comment
Согласен с Андреасом. Я думаю, что лучший (и, насколько мне известно, единственный) способ - написать пользовательскую функцию в VBA. Альтернативой может быть добавление вспомогательного столбца, в котором вы ставите 1, если выполняется то же условие, что и цвет, и ноль во всех остальных случаях.   -  person Gabor    schedule 25.08.2016


Ответы (3)


Уверен, что вам нужно использовать VBA.

person David Andrei Ned    schedule 25.08.2016

К сожалению, выполнить эту задачу, используя только встроенные функции Excel, невозможно.

Есть 2 способа:

  1. Создайте одну или несколько определяемых пользователем функций с помощью VBA, которые будут подсчитывать/суммировать цветные ячейки, а затем вызывать их из рабочей книги. Вы также можете поместить эти пользовательские функции в файл personal.xlsb, тогда вам не нужно каждый раз копировать их в новую книгу. Однако правильно обрабатывать ячейки, окрашенные условным форматом, с помощью UDF невозможно.
  2. Воспользуйтесь специальной надстройкой, которая будет подсчитывать/суммировать нужные ячейки исходя из их цвета.

Более подробную информацию о способах подсчета/суммирования цветных ячеек, включая код VBA, можно найти в этом сообщении блога: Как считать и суммировать ячейки по цвету в Excel

person Alex Frolov    schedule 30.08.2016

Function CountColor(xRange As Range, xColor As Long) As Long
Dim xCell As Range
For Each xCell In xRange
    If xCell.Font.ColorIndex = xColor Then
        CountColor = CountColor + 1
    End If
Next
End Function

Используйте эту функцию в Excel

=CountColor(A1:E25;3)

3 = красный

person Mesut Akcan    schedule 28.01.2020