Как использовать COUNTIF для подсчета цветов ячеек при условном форматировании? - PullRequest
0 голосов
/ 02 июля 2019

enter image description here Я пытаюсь выяснить, как структурировать формулу счета. У меня есть таблица данных вместе с (в широком смысле) двумя наборами условного форматирования: - для диапазона столбца от D до K данные представляют собой раскрывающийся список Да / Нет. Если какой-либо из этих элементов помечен как «Нет», а дата в столбце C находится в пределах 30 дней с сегодняшнего дня, вся строка становится красной. Я не мог понять, как сделать это в одном большом правиле, поэтому есть одно правило для каждого столбца между D и K. - столбец L автоматически делает отметку времени при редактировании строки. если какой-либо из этих дат будет более 30 дней, строка станет серой.

Вверху я хотел бы иметь количество строк для красных и серых клеток. Как бы я это сделал?

Ответы [ 2 ]

0 голосов
/ 03 июля 2019

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

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

Код VBA:

Function COUNTConditionColorCells(CellsRange As Range, ColorRng As Range)
Dim Bambo As Boolean
Dim dbw As String
Dim CFCELL As Range
Dim CF1 As Single
Dim CF2 As Double
Dim CF3 As Long
Bambo = False
For CF1 = 1 To CellsRange.FormatConditions.Count
If CellsRange.FormatConditions(CF1).Interior.ColorIndex = ColorRng.Interior.ColorIndex Then
Bambo = True
Exit For
End If
Next CF1
CF2 = 0
CF3 = 0
If Bambo = True Then
For Each CFCELL In CellsRange
dbw = CFCELL.FormatConditions(CF1).Formula1
dbw = Application.ConvertFormula(dbw, xlA1, xlR1C1)
dbw = Application.ConvertFormula(dbw, xlR1C1, xlA1, , ActiveCell.Resize(CellsRange.Rows.Count, CellsRange.Columns.Count).Cells(CF3 + 1))
If Evaluate(dbw) = True Then CF2 = CF2 + 1
CF3 = CF3 + 1
Next CFCELL
Else
COUNTConditionColorCells = "NO-COLOR"
Exit Function
End If
COUNTConditionColorCells = CF2
End Function

Ниже приведены следующие шаги:

enter image description here

enter image description here

enter image description here

Для суммы условного цвета:

Function SumConditionColorCells(CellsRange As Range, ColorRng As Range)
Dim Bambo As Boolean
Dim dbw As String
Dim CFCELL As Range
Dim CF1 As Single
Dim CF2 As Double
Dim CF3 As Long
Bambo = False
For CF1 = 1 To CellsRange.FormatConditions.Count
If CellsRange.FormatConditions(CF1).Interior.ColorIndex = ColorRng.Interior.ColorIndex Then
Bambo = True
Exit For
End If
Next CF1
CF2 = 0
CF3 = 0
If Bambo = True Then
For Each CFCELL In CellsRange
dbw = CFCELL.FormatConditions(CF1).Formula1
dbw = Application.ConvertFormula(dbw, xlA1, xlR1C1)
dbw = Application.ConvertFormula(dbw, xlR1C1, xlA1, , ActiveCell.Resize(CellsRange.Rows.Count, CellsRange.Columns.Count).Cells(CF3 + 1))
If Evaluate(dbw) = True Then CF2 = CF2 + CFCELL.Value
CF3 = CF3 + 1
Next CFCELL
Else
SumConditionColorCells = "NO-COLOR"
Exit Function
End If
SumConditionColorCells = CF2
End Function
0 голосов
/ 02 июля 2019

Шаг 1:

Существует возможность рассчитывать по цветам, но для этого вам нужно установить Kutools в вашем превосходстве Тогда вы можете легко использовать эти функции.

Ниже приведена ссылка для загрузки дополнения Kutools и необходимая формула с образцом.

Ссылка: https://www.extendoffice.com/download/kutools-for-excel.html

Формула: = COUNTBYCELLCOLOR ($ I $ 5: $ I $ 19, $ K6)

enter image description here

Шаг 2:

Если указанный выше вариант не соответствует вашим требованиям, перейдите по ссылке ниже для просмотра через VBA.

Ссылка 1: Нужно установить Kutools.

https://www.extendoffice.com/documents/excel/2651-excel-count-cells-by-color-conditional-formatting.html

Ссылка 2: Код VBA

https://excelribbon.tips.net/T011725_Using_COUNTIF_with_Colors.html

...