2016-06-16 5 views
0

次のような式をbulidしようとしています。カップル条件を満たす変数の平均を計算します。このケースの問題は、特定の年と種類の投資の合計が高い(K4)と低い(J4)の値にあるときに平均を計算したいと思うことです。 この例では、予想結果は変数a = 15%、条件は2015年、タイプ-b &c(範囲H8:H10、a、b、cの順番は異なる場合があります)、 400と600の前の基準。ここでは、投資の合計が900であるため、タイプCは基準を満たさないため、前に指定した範囲外です。タイプbは500に等しい投資を有するので、平均が計算される。 どのように私はこれを処理できますか?ありがとう。配列の代わりにsumを含む複数の基準を持つ平均

enter image description here

+0

bの結果は100ですか? – Sun

+0

それにもかかわらず、 'countifs 'で分けられた' sumifs'はあなたが探しているものでなければなりません。あるいはまた、「塊状物」を用いてもよい。 – Sun

+0

いいえ、結果は15%、私は変数ではなく、投資を探しています。投資は条件の一つです。私はcountifによって分けられたsumifsを試しましたが、投資条件が配列ではないので、この場合は動作しません。 – 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、分:セルj4、最大:セルk4、pcg:f4:f21)。 (年フィルタ付きの場合)、配列数式としてH8でこれを貼り付けて、このセルの名称「スマ」

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

(B用)、配列数式としてH9でこれを貼り付け、それが

=SUMIFS(invst,type,H9) 
をSUMB名前

配列数式として(タイプAの回答)J8でこれを貼り付け

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

配列数式

このJ9で(タイプbの回答)を貼り付け
=IFERROR(AVERAGE(IF(AND(sumb>min,sumb<max),IF(type=H9,pcg,""),"")),"") 
関連する問題