У меня есть диапазон с различным текстом и цифрами в них. Я хотел бы суммировать числа на основе определения первого столбца.

Я пытался

=SUMIF(A1:A20,"John",B1:E20)

Который возвращает только номер первого столбца. Я также пытался

=SUMPRODUCT((A1:A20="John")*(B1:E20))

Но поскольку в столбце C есть текст, он возвращает #VALUE !.

A | Б | C | D | Е

Джон | 5 | Вина | 2 | 7

Шон | 6 | Пиво | 5 | 2

Я хочу, чтобы все числовые значения в столбцах B-E были суммированы вместе, когда "John" находится в столбце A

1
wadey 3 Май 2019 в 12:45

3 ответа

Лучший ответ

Вот решение формулы массива - используйте Ctrl, Shift и Enter для подтверждения:

=SUM(IF(A1:A20="John",IF(ISNUMBER(B1:E20),B1:E20)))

Если вы просто хотите исключить столбец C, вы можете использовать эту формулу без массивов:

=SUMPRODUCT((A1:A20="John")*(B1:B20))+SUMPRODUCT((A1:A20="John")*(D1:E20))

В качестве альтернативы, возможно, переместите C, чтобы он не был в середине ваших чисел.

3
SJR 3 Май 2019 в 10:09

Просто еще один интересный подход:

  • Выберите всю матрицу и назовите ее (например, «TestRange»)

  • Используйте OFFSET() для суммирования всех значений во всех столбцах таблицы

enter image description here

  • Формула используется в H2:

    {=SUM(OFFSET(TestRange,MATCH(H1,A1:A2,0)-1,0,1,COLUMNS(TestRange)))}
    

Обратите внимание, что это формула массива.

0
JvdV 3 Май 2019 в 10:29

Попробуйте эту формулу:

=IF(A1="John", SUMPRODUCT(--(ISNUMBER(B1:E1)),B1:E1), "")

И потяните вниз, чтобы получить сумму в каждом ряду.

0
al1en 3 Май 2019 в 10:11