Страницы: 1
RSS
Сумма произведений из одного столбца по условиям
 
Здравствуйте, есть таблица где нужно посчитать сумму произведений по условиям. Данные находятся в одном столбце. Количество суммированных произведений может быть разное. Математический вид формулы имеет вид А1*А2+б1*б2+в1*в2+г1*г2+…..n1*n2. Вручную понятно как прописать формулу. при удалении ненужных строк формула вида (J7*J27+J10*J28+J16*J29+J21*J30) ломается. А вот сделать так чтобы она работала при разном количестве произведений не могу понять.
 
Сделайте доп.столбец
Код
=ЕСЛИОШИБКА(ВПР(H7;$H$27:$J$30;2;0)*J7;0)
Изменено: Msi2102 - 25.05.2022 08:51:54
 
спасибо, а без дополнительных столбцов никак не получится сделать? мне нужно эту формулу вправо протянуть, это для каждого следующего столбца создавать еще дополнительный столбец нужно(
 
Можно конечно
Код
=СУММПРОИЗВ(СУММЕСЛИ(H7:H25;H27:H30;J7:J25)*J27:J30)
Скажи мне, кудесник, любимец ба’гов...
 
Вариант через UDF
Код
=СУММПРОИЗВ(НЕПУСТЫЕ(H7:J25;1;3);J27:J30)
Код
Function НЕПУСТЫЕ(массив1 As Variant, столбец_непустой As Long, столбец_значение As Long) As Variant
    Dim ar1 As Variant
    Dim ar2 As Variant
    ar1 = массив1
    
    Dim y1 As Long
    Dim y2 As Long
    Dim x1 As Long
    For y1 = 1 To UBound(ar1, 1)
        If Not IsEmpty(ar1(y1, столбец_непустой)) Then
            y2 = y2 + 1
        End If
    Next
    ReDim ar2(1 To y2, 1 To 1)
    y2 = 0
    
    For y1 = 1 To UBound(ar1, 1)
        If Not IsEmpty(ar1(y1, столбец_непустой)) Then
            y2 = y2 + 1
            ar2(y2, 1) = ar1(y1, столбец_значение)
        End If
    Next
    НЕПУСТЫЕ = ar2
End Function
 
Если условия единицы то как вариант:
Код
=SUM(IFNA(LARGE(($I$7:$I$25=1)*$J$7:$J$25;ROW($A$1:INDEX(A:A;COUNTA($I$7:$I$25))))*$J$27:$J$30;))
Страницы: 1
Наверх