Использование SUMIF для диапазона столбцов или SUMPRODUCT для игнорирования текстовых элементов - PullRequest
1 голос
/ 03 мая 2019

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

Я пытался

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

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

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

но поскольку в столбце C есть текст, он возвращает # ЗНАЧЕНИЕ!.

А | Б | C | D | E

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

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

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

Ответы [ 3 ]

3 голосов
/ 03 мая 2019

Вот решение формулы массива - используйте 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, чтобы оно не было в середине ваших чисел.

0 голосов
/ 03 мая 2019

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

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

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

enter image description here

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

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

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

0 голосов
/ 03 мая 2019

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...