2016-07-28 5 views
-1

の値のリストから最大値nの値を得たいと考えています。nは可変です。ここでnは = 5の一例は以下のとおりです。 Explanation: it starts at A6 when it have 5 values and enough data to compute the max of the 5 previous values, so it looks backwardsnの最大値は、

説明:それは5つの値と5つの以前の値の最大値を計算するための十分なデータがある場合には、A6から始まるので、それは後方に見えます。

N = 10を有するもう一つの例:

The range is always looking backwards the number of values that the constant is, so if constant =10 then it looks the 10 previous values.何が必要とする最大値が一定値の変化を探すために範囲を変更列Bの式または配列式です。

質問がありましたら、私にお尋ねください。 ありがとうございます。セルB2に、あなたの2つの提供されている例を使用し、ダウンコピー

答えて

0

は下記無視します。それは彼の現在のソリューションよりも、きれいだからここで私は残しています@tigeravatarが提供する別の解決策があります:

=IF(ROW()<=$C$2,"",MAX(OFFSET(A2,0,0,-$C$2,1))) 

しかし、より複雑な別のオプションは、。 B2に入れ、下にコピー:

=IF(ROW()=$C$2+1,MAX(OFFSET($A$2,0,0,$C$2,1)),IF(ROW()>$C$2+1,MAX(OFFSET(A2,0,0,$C$2,1)),"")) 

+0

B7はA3の正しい範囲の代わりにA7:A11の範囲を評価するため、Constant = 5の場合の最初の例を使用すると、セルB7は10の誤った結果を返します。A7 – tigeravatar

+0

これを修正するには、 2番目のオフセット関数で$ C $ 2'を返す – tigeravatar

+0

実際、式を単純に単純化すると、 '= IF(ROW()<= $ C $ 2、" "、MAX(OFFSET(A2,0,0、 - $ C $ 2,1))) ' – tigeravatar

2

=IF(OR($C$2="",ROW(B1)<$C$2),"",MAX(INDEX(A:A,ROW(A2)-$C$2+1):A2)) 
+0

はい、私の作品!ありがとうございました。 –

+1

あなたの実際の設定は、あなたが提供した例と異なっていますか?それはあなたにどんなエラーをもたらしますか?実際のデータのより代表的な例を表示できますか?私はこれをテストし、それが正常に動作することを確認することができます – tigeravatar

+0

試験に同上! –