1

Поскольку название, вероятно, не так ясно, позвольте мне объяснить мою проблему. У меня есть набор данных со значениями, соответствующими именам:

Таблица 1

name      amount
adrian    1
alice     2
austin    3
bob       4
bruce     5
clarice   6
cathy     7
charles   8
adrian    9
alice     10
austin    11
bob       12
bruce     13
clarice   14
cathy     15
charles   16

Каждое из этих имен соответствует другому имени в таблице (для этого примера я использовал первую букву их имен, реальная проблема совершенно иная).

Таблица 2

name1  name2
a      adrian
a      alice
a      austin
b      bob
b      bruce
c      clarice
c      cathy
c      charles

У меня есть третья таблица, где я хотел бы суммировать все значения из таблицы 1, где имя соответствует правильному значению в третьей таблице:

Таблица 3

name    amount
a       this should be 36 (the sum of arian, alice and austin)
b       this should be 34 (the sum of bob and bruce)
c       this should be 66 (the sum of clarice, cathy and charles)

Я попытался использовать следующую функцию в таблице 3, но это всегда приводит к 0. Может кто-нибудь помочь мне определить, что я делаю не так?

=SUMIF(INDEX(Table1;;2);INDEX( <range name 1> ;MATCH(INDEX(Table1;;1); <range name 2> ;0)); <letter in table 3>)

1 ответ1

2

Это будет повторяться во второй таблице, и если совпадение с Name1 совпадает, то оно возвращает значение SUMIF() для Name2 из первой таблицы и суммирует их все вместе:

=SUMPRODUCT(SUMIF(A:A,$F$2:$F$9,B:B)*($E$2:$E$9=H2))

Обратите внимание, что ссылки на таблицу 2 ограничены фактическими данными, тогда как ссылки на таблицу 1 могут быть полными ссылками на столбцы. Это связано с тем, как формула будет повторяться. Поскольку он буквально перебирает вторую таблицу, мы хотим ограничить количество итераций самим набором данных. В то время как формула SUMIF() уже оптимизирована и не наносит ущерба полным ссылкам на столбцы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .