Страницы: 1
RSS
Подсчет отработанных смен по критериям
 
Здравствуйте.
Уважаемые форумчане, по возможности прошу помочь с формулой.

Нужно произвести подсчет отработанных смен (из диапазона E5:AF5) в ячейке AG5.
Критерий 1: ВСЕ значения из диапазона B3:B10
Критерий 2: подсчитывать, только если день месяца обозначен в диапазоне E2:AF2 как ИСТИНА.

Прошу прощения, если уже был такого рода вопрос.
Изменено: vikttur - 15.09.2021 22:20:57
 
Как-то так.
Код
=SUMPRODUCT(($E5:$AF5=$B$3:$B$10)*($E$2:$AF$2=TRUE))

Или так.
Код
=SUM(INDEX(COUNTIFS($E5:$AF5;$B$3:$B$10;$E$2:$AF$2;1=1);))
Изменено: memo - 15.09.2021 01:27:26
 
Цитата
Виталий Тяжин написал:
Прошу прощения, если уже был такого рода вопрос.
не нужно извинятся. нам по кайфу по 40 раз решать одну и туже задачу
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Спасибо большое! Про СУММПРОИЗВ не попадалась информация. Три дня безуспешно  ломал копья через СУММЕСЛИМН. :)
 
Цитата
Ігор Гончаренко написал:
не нужно извинятся. нам по кайфу по 40 раз решать одну и туже задачу
Игорь к чему столько негатива, добрее надо быть  :D
Вариант UDF
Код
Public Function RegSum(Rn As Range, Rn1 As Range)
Dim n As Long, i As Long, arr1 As Variant, arr2 As Variant
arr1 = Rn
arr2 = Rn1
s = 0
Set RegExp = CreateObject("VBScript.RegExp")
RegExp.Pattern = "\d+([\.|,]\d+)?"
RegExp.Global = True
For n = LBound(arr1, 2) To UBound(arr1, 2)
    If arr2(1, n) = True And RegExp.Test(arr1(1, n)) Then
        Set objMatches = RegExp.Execute(arr1(1, n))
        For i = 0 To objMatches.Count - 1
            s = s + CDbl(Replace(objMatches.Item(i).Value, ".", ","))
        Next i
    End If
Next n
RegSum = s
End Function
PS наверное не правильно понял, что нужно было
Изменено: Msi2102 - 15.09.2021 08:32:49
 
Спасибо! Но остановился на формуле. Работает.
Страницы: 1
Наверх