2016-09-02 13 views
2

配列の数式を合計しても正しい結果が返されないのはわかりません。式は次のとおりです。excel formula over array

=SUM(INDEX($C$4:$C$12,TRANSPOSE(OFFSET(K17,0,0,1,COUNT(K17:S17))))) 

私は何をしたいことはK17:S17の値に基づいて$C$4:$C$12から複数の値を選択し、それを合計です。行K17:S17では、選択する行をC4:C12から決定する1〜9の正の整数(1〜9)があります。

INDEX($C$4:$C$12,TRANSPOSE(OFFSET(K17,0,0,1,COUNT(K17:S17))))を配列関数として使用すると、正しく集計したい値が返されます。 frotにsumを追加すると、このセットの最初の値が返されます。少し強制が必要とされ、INDEXROW_NUMまたはcol_numパラメータとして配列を渡すために

+0

なぜ '{= SUM(Nは((オフセットしません$ C $ 4、K17:S17-1、)))} '?参照:http://stackoverflow.com/questions/38342495/sum-values-using-arrays-and-index/38343185#38343185 –

答えて

0

https://excelxor.com/2014/09/05/index-returning-an-array-of-values/

また、それが可能であれば揮発性OFFSET構造を避ける方が良いでしょう。ちなみに、CSEを必要としません

=SUM(INDEX($C$4:$C$12,N(IF({1},K17:INDEX(K17:S17,MATCH(9.9E+307,K17:S17))))))

編集は:範囲K17:S17の最大値は、我々が109.9E+307を置き換えることができ、9である場合:

=SUM(INDEX($C$4:$C$12,N(IF({1},K17:INDEX(K17:S17,MATCH(10,K17:S17))))))

よろしく