2016-06-16 2 views
0

Я пытаюсь запугать формулу, которая могла бы сделать следующее: вычислить среднее значение для переменной, которая соответствует условиям пары. Проблема в этом случае заключается в том, что я хочу, чтобы среднее значение рассчитывалось, когда сумма инвестиций в указанный год и типы находились в пределах высоких (K4) и низких (J4) значений. В этом примере ожидаемый результат будет переменным a = 15% - условия будут год-2015, тип - b & c (из диапазона H8: H10, порядок a, b, c может варьироваться), сумма инвестиций для предыдущие критерии в пределах 400 и 600. Здесь тип c не соответствует критериям, потому что сумма инвестиций составляет 900, поэтому вне диапазона, указанного ранее. Тип b имеет инвестиции, равные 500, поэтому вычисляется среднее значение. Любые идеи, как я могу справиться с этим? Благодарю.среднее значение с несколькими критериями, включая сумму вместо массива

enter image description here

+0

Результат для b будет 100? – Sun

+0

Независимо от того, что 'sumifs', деленное на' countifs', должно быть тем, что вы ищете. Альтернативно также с 'sumproduct'. – Sun

+0

Нет, результат будет 15%, я ищу переменную a, а не инвестиции. инвестиции являются одним из условий. Я пробовал sumifs, деленный на countif, но в этом случае он не работает, потому что условие инвестиций не является массивом, как должно быть. – micxid

ответ

0

Это первая попытка на него, но формула по-прежнему огромный монстр. Там может быть лучший, более элегантный способ. Но, по крайней мере, это работает.

=(IF(AND(SUMIF($D$4:$D$21,$H$8,$E$4:$E$21)>=$J$4, SUMIF($D$4:$D$21,$H$8,$E$4:$E$21)<=$K$4), SUMIFS($F$4:$F$21,$B$4:$B$21,$H$4,$C$4:$C$21,$I$4,$D$4:$D$21,$H$8), 0) + IF(AND(SUMIF($D$4:$D$21,$H$9,$E$4:$E$21)>=$J$4, SUMIF($D$4:$D$21,$H$9,$E$4:$E$21)<=$K$4), SUMIFS($F$4:$F$21,$B$4:$B$21,$H$4,$C$4:$C$21,$I$4,$D$4:$D$21,$H$9), 0) + IF(AND(SUMIF($D$4:$D$21,$H$10,$E$4:$E$21)>=$J$4, SUMIF($D$4:$D$21,$H$10,$E$4:$E$21)<=$K$4), SUMIFS($F$4:$F$21,$B$4:$B$21,$H$4,$C$4:$C$21,$I$4,$D$4:$D$21,$H$10), 0))/(COUNTIF($D$4:$D$21,$H$8)*--(IF(AND(SUMIF($D$4:$D$21,$H$8,$E$4:$E$21)>=$J$4, SUMIF($D$4:$D$21,$H$8,$E$4:$E$21)<=$K$4), SUMIFS($F$4:$F$21,$B$4:$B$21,$H$4,$C$4:$C$21,$I$4,$D$4:$D$21,$H$8), 0)<>0) + COUNTIF($D$4:$D$21,$H$9)*--(IF(AND(SUMIF($D$4:$D$21,$H$9,$E$4:$E$21)>=$J$4, SUMIF($D$4:$D$21,$H$9,$E$4:$E$21)<=$K$4), SUMIFS($F$4:$F$21,$B$4:$B$21,$H$4,$C$4:$C$21,$I$4,$D$4:$D$21,$H$9), 0)<>0) + COUNTIF($D$4:$D$21,$H$10)*--(IF(AND(SUMIF($D$4:$D$21,$H$10,$E$4:$E$21)>=$J$4, SUMIF($D$4:$D$21,$H$10,$E$4:$E$21)<=$K$4), SUMIFS($F$4:$F$21,$B$4:$B$21,$H$4,$C$4:$C$21,$I$4,$D$4:$D$21,$H$10), 0)<>0)) 

Вот скриншот:

enter image description here

0

Я назвал столбцы с диапазонами (тип данных для колонного типа D4: D21, invst: E4: E21, год: b4: b21, min: ячейка j4, max: ячейка k4, pcg: f4: f21) для удобства понимания. Paste это в h8 как формулу массива (для с год фильтром) и название этой ячейки «Suma»

=SUMIFS(invst,type,H8,year,2015) # for type a 

вставьте в h9 как формулу массива (для б) и назовите его SUMB

=SUMIFS(invst,type,H9) 

вставить эту информацию в J8 (ответ для типа а) в формуле массива

=IFERROR(AVERAGE(IF(AND(suma>min,suma<max),IF(type=H8,pcg,""),"")),"") 

вставьте этот в J9 (ответ для типа б) в качестве формулы массива

=IFERROR(AVERAGE(IF(AND(sumb>min,sumb<max),IF(type=H9,pcg,""),"")),"") 
Смежные вопросы