2016-07-21 6 views
0

У меня есть формула массива, который выглядит следующим образом:Excel суммы массива с несколькими условиями на основе именованного диапазона

{=SUMIF(C11:C23,budgets,F11:F23)} 

То, что я хочу, чтобы это сделать клетки суммы F11:F23, где клетки C11:C23 являются значением в указанном диапазоне budgets ,

Прямо сейчас budgets имеет два значения: 10361 и 10300 (это коды транзакций). Однако формула работает только для первого кода 10361, но не для второго.

Я не хочу использовать SUMIFS, потому что у меня есть несколько рабочих листов, где я бы хотел, чтобы эта формула массива работала, и коды могут меняться, поэтому их изменение в одном месте (именованный диапазон budgets) упростит ситуацию.

Любые идеи? Я не знаю VBA, поэтому надеялся на решение формулы.

ответ

1

Использование SUMPRODUCT с COUNTIF():

=SUMPRODUCT((COUNTIF(budgets,$C$11:$C$23)>0)*$F$11:$F$23) 

enter image description here


Или вы можете использовать эту формулу массива:

=SUM(SUMIF(C11:C23,budgets,F11:F23)) 

Будучи массив, то он должен быть введен с Ctrl-Shift-Enter при выходе из режима редактирования вместо Enter. Если все сделано правильно, Excel поместит {} вокруг формулы.

enter image description here

+0

Ничего себе, спасибо! Второй ответ определенно работает для моих целей. Почему моя формула не работает? Почему необходим дополнительный «СУММ»? И как бы я сделал обратный (то есть, НЕ в диапазоне «бюджетов»?) – vashts85

+1

Дополнительная сумма - это сумма, суммирующая индивидуальный sumif при ее итерации, в этом случае она делает два отдельных sumif и добавляет их вместе. Для обратного, я считаю, вы захотите SUMPRODUCT() и измените '> 0' на' = 0' –

+0

ОК, вторая формула работает! Но я все еще смущен тем, почему это вторая «СУММА» была необходима --- есть ли способ объяснить это более подробно? Может быть, выпишите, что он оценивает на каждом шаге вашего ответа? – vashts85