Я пытаюсь написать формулу, используя SUMPRODUCT, SUMIF, INDIRECT и именованный диапазон. Моя формула:
=SUMPRODUCT(SUMIF(INDIRECT("'"&INDIRECT("EightiesNames")&"'!G8:HI8"),$A$2,INDEX(INDIRECT("'"&INDIRECT("EightiesNames")&"'!G9:HI300"),MATCH($A$1,INDIRECT("'"&INDIRECT("EightiesNames")&"'!E9:E300"),0),0)))
Формула проходит через каждый рабочий лист в именованном диапазоне и ищет оба столбца (ища $ A $ 2 в G8: HI8. Обратите внимание, что $ A $ 2 может встречаться несколько раз). раз в одном листе) и строк (ища $ A $ 1 до E9: E300) перед суммированием всех возвращаемых значений с помощью SUMIF / SUMPRODUCT.
Формула была основана на упрощенной версии ниже, но с SUMPRODUCT и INDIRECT. слой, позволяющий ему выполнять одну и ту же функцию на нескольких вкладках.
=SUMIF(G8:HI8, $A$2, INDEX(G9:HI300, MATCH($A$1, E9:E300,0), 0))
Более подробное описание рабочей книги см. ниже.
Рабочие таблицы:
Sheet1 - содержит именованный диапазон в ячейках B2: B7 {Name1, Name2, Name3, Name4, Name5, Name6}
. Именованный диапазон называется « EightiesNames »
Name1 - где находится формула. Формула ссылается на рабочие листы Имя1, Имя2, Имя3, Имя4, Имя5, Имя6 , в основном на все таблицы в указанном диапазоне.
Существует три вхождения "INDIRECT("'"&INDIRECT("EightiesNames")"
- после SUMIF, один после ИНДЕКСА и после МАТЧА. Первое вхождение двух НЕПРЯМОГО работает так, как я хочу (когда я оцениваю формулу). Он расширяет INDIRECT("EightiesNames")
в массив {"Name1"; "Name2"; "Name3"; "Name4"; "Name5"; "Name6"} . Затем формула переходит в диапазон "'! G8: HI8" после каждого "Имени" - "'Name1'!G8:HI8";...;"'Name6'!G8:HI8"
. Однако для INDIRECT, которые появляются после INDEX и MATCH, он не возвращает массив, подобный первому. На моем компьютере он возвращает « Name2 » (возвращает « Name1 » на друга моего друга), не уверен, почему он отличается и почему он возвращает эти значения вместо всего массива.
Я не совсем уверен, как это исправить, поскольку три НЕПРАВИЛЬНЫЕ формулы идентичны, но не дают одинакового результата. Я также знаю, что НЕПРАВИЛЬНЫЕ формулы занимают много вычислительной мощности, поэтому я с удовольствием воспользуюсь альтернативами. Любая помощь / понимание будет принята с благодарностью! Спасибо!