Страницы: 1
RSS
суммирование по нескольким критериям-диапазонам
 
Добрый день!
Помогите, пожалуйста, написать формулу массива, т.е. желательно без VBA и БДСУММ, - которая суммировала бы данные таблицы из столбца N, при условии, что в соответствующих записях
- данные в столбце A удовлетворяют (содержатся) критериям из диапазона с критериями №1,
- данные в столбце B удовлетворяют (содержатся)критериям из диапазона с критериями №2,
- данные в столбце C удовлетворяют критериям из диапазона с критериями №3
- и т.д.

пример прикрепил.

заранее благодарен за любые идеи.
 
Не совсем поняла условий, но банальная "СУММЕСЛИМН" не подойдет?
 
нет, критерий - это диапазон значений, и критериев несколько
 
futurama3000, осторожнее с кнопой "цитировать", она приносит неприятности :)
 
А можно поконкретней куда суммируем и суммируем ли все вместе или для А отдельно, для В отдельно и т.д.?
 
Так?
 
Цитата
Атлика пишет: А можно поконкретней...
В примере - если данные в первых трех полях соответствуют критериям, то суммируются данные всех полей строки, имхо...  ;)
ps В Access'e?!
Изменено: Z - 02.07.2013 18:12:17
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
An d`Rew в своем примере получил список значений, которые должны суммироваться. Очень нужно, чтобы одна формула одна формула выполняла все эти манипуляции и суммировала все "правильные" ячейки из столбца N....
 
формула должна выглядеть как-то так
={СУММ(D2 :D 15*(A2:A15=I1:R1)*(B2:B15=I2:R2)*(C2:C15=I3:R3))}

но только так она не работает  :)  
может, есть варианты доработать ее?

кстати, если диапазон с критериями всего один (т.е.={СУММ(D2 :D 15*(A2:A15=I1:R1))}), то формула работает отлично и конструкция (*(A2:A15=I1:R1)) "прокатывает". А при большем кол-ве диапазонов - "облом".
еще раз перевыложил пример - добавил эти свои формулы для наглядности)
прошу вас еще немного подумать, решение может быть очень полезным для всех)) имхо
 
Формула массива, второй вариант лучше:
=СУММ(ЕЧИСЛО(ПОИСКПОЗ(A2:A15;I1:R1;))*ЕЧИСЛО(ПОИСКПОЗ(B2:B15;I2:R2;))*ЕЧИСЛО(ПОИСКПОЗ(C2:C15;I3:R3;))*D2:D15)
=СУММ(ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ(A2:A15;I1:R1;);ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ(B2:B15;I2:R2;);ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ(C2:C15;I3:R3;));D2:D 15))))


Но зачем так издеваться?
 
vikttur, огромное вам спасибо!
а если так не издеваться, то как?
в формах отчетности неудобно достраивать доп.столбцы, макросы писать не умею...

Прошу прощения за беспокойство: а чем ваш 2-й вариант лучше вашего 1-го?
 
Не издеваться - использовать доп. вычисления, которые безболезненно можно скрыть.
Во втором варианте функции ЕСЛИ() обрезают лишние вычисления, формула работает быстрее.
 
Вариант, немассивно:
Код
=СУММПРОИЗВ(((СЧЁТЕСЛИ(I1:R1;A2:A15)+СЧЁТЕСЛИ(I2:R2;B2:B15)+СЧЁТЕСЛИ(I3:R3;C2:C15))=3)*D2:D15)


Если в диапазонах 1,2,3 числа уникальны, т.е числа из одного дапазона не встречаются в других, то можно так:
Код
=СУММПРОИЗВ((МУМНОЖ(СЧЁТЕСЛИ(I1:R3;A2:C15);{1:1:1})=3)*D2:D15)
 
Оно. О СЧЕТЕСЛИ() даже не думал.
Страницы: 1
Наверх