Суммировать несколько строк по одному условию

Суммировать несколько строк по одному условию

Предположим, у меня есть следующая таблица на листемесяц:

Пример таблицы

И следующая таблица на листе__данные:

Пример таблицы 2

В листе__данныеЯ хотел бы просуммировать все значения из столбцов P, R, T, V и X для указанного названия категории.

Для одной строки я могу использовать следующую формулу: (например, cat6)

=IF(
    SUMIF(month!$O$5:$O$34;__data!$A7;month!$P$5:$P$34)<>0;
    SUMIF(month!$O$5:$O$34;__data!$A7;month!$P$5:$P$34);
    "")

Теперь я считаю, что это должно быть возможно с помощью SUMPRODUCT. Но я не могу понять, как это должно быть закодировано.

У меня есть формула СУММПРОИЗВ, но она приводит к #VALUE!ошибке;

=SUMPRODUCT(
    --(month!$O$5:month!$O$34=__data!$A7);
    (
        month!$P$5:month!$P$34 +
        month!$R$5:month!$R$34 + 
        month!$T$5:month!$T$34 + 
        month!$V$5:month!$V$34 + 
        month!$X$5:month!$X$34)
)

Я полагаю, что это как-то связано со способом заполнения значений в P, R, T, V и X. Это делается с помощью следующей формулы;

=IF(SUMIF($B$5:$B$123;O8;$D$5:$D$123)<>0;SUMIF($B$5:$B$123;O8;$D$5:$D$123);"")

решение1

Вы можете легко сделать это с помощью одной формулы. Но вам нужен метод для возврата прерывистых столбцов.

  • Я назвал таблицу данных catTblтак, чтобы на нее было легче ссылаться.
  • Найдите строку, используя MATCHфункцию:
    • =MATCH(A2,INDEX(catTbl,0,1),0)
      • Категория находится в ячейке A2, и INDEXфункция возвращает все строки в первом столбце.
    • Функция построения N(IF(1,{2,4,6,8,10})) will return the relevant columns to theИНДЕКС`.
    • Тогда просто SUMмассив

Итак, вся формула:

=SUM(INDEX(catTbl,MATCH(A2,INDEX(catTbl,0,1),0),N(IF(1,{2,4,6,8,10}))))

введите описание изображения здесь

введите описание изображения здесь

решение2

Обычно сложно работать с прерывистыми формулами Excel.

Я предлагаю добавить вспомогательную строку, в которой вы указываете, какие столбцы вы хотите суммировать, затем вы можете использовать эту относительно простую формулу:

=SUMIF($Q$4:$Y$4,1, INDEX($Q$6:$Y$19,MATCH(M6,$P$6:$P$19,0),0))

введите описание изображения здесь

Связанный контент