Страницы: 1
RSS
Применение функции SumByColor (суммирование по цвету) в качестве счетчика непустых ячеек
 
Во вложении файл. В нем через макрос записана Функция, которая суммирует ячейки из заданного диапазона по цвету SumByColor (Диапазон суммирования;Цвет). Подскажите, пожалуйста, формулу для красной ячейки Е4, чтобы она по желтому цвету (ячейка D5) сосчитала количество ячеек с любым текстом в столбце HZ с привязкой к желтому цвету в ячейке D.
Уточнение: в функции заложено смещение по столбцам и строкам, прошу его не менять.
Заранее спасибо за Ваши ответы
Изменено: Евгений И. - 15.07.2019 12:59:19
 
Цитата
Евгений И. написал: Уточнение: в функции заложено смещение по столбцам и строкам, прошу его не менять.
Вот это зря. Лучше введите еще один аргумент
Код
Public Function CountByColor(DataRange As Range, ColorSample As Range, TextRange As Range) As Double
     Dim iCount As Double
     Application.Volatile True
     For Each cell In DataRange
         If cell.Interior.Color = ColorSample.Interior.Color Then
            If Application.IsText(Cells(cell.Row, TextRange.Column)) = True Then
                iCount = iCount + 1
            End If
        End If
     Next cell
     CountByColor = iCount
 End Function
Согласие есть продукт при полном непротивлении сторон
 
Большое спасибо за решение, у меня просто в большом отчете уже используется функция с учетом смещения и там уже очень много макросов, что отчет, наверное, скоро лопнет))) Поэтому не хотелось бы плодить еще и несколько видов функций)) Но вариант все равно хороший, спасибо еще раз!)))
Изменено: Евгений И. - 15.07.2019 13:23:25
 
Я так понимаю под смещением вы имеете ввиду эту строку?

Sum = Sum + cell(1, 3).Value

Как по Вашему на какую ячейку будет смещение? Какой у нее будет адрес?
Думаете на HZ7 относительно D7?
Если Вы скрыли столбцы, то это не значит, что они исчезли
       
Согласие есть продукт при полном непротивлении сторон
 
Да, наверное запрос был некорректен, при этом Ваше решение, повторюсь, подходит, еще раз спасибо))
Страницы: 1
Наверх