2016-10-12 3 views
-1

ExcelでOFFSETを使用する際に質問があります。 たとえば、年ごとに値が異なる表があります。 次に、年/月によって異なる値を持つ表があります。Excelの複数の行でSUMPRODUCTとOFFSETを使用する

!!Click here for the tables!!

Iは、例えば、式を書くことを希望します = SUMPRODUCT((E2:E37)* OFFSET(A1、C2:C37,1)、E2:E37) #VALUEを返します!

つまり、私はC2の値の配列を使用したいと思います:C37 ie {1,1,1,1,1,1,1,1,1,1,1,1,2,2、 2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3}であり、配列{0.03 、0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.05,0.05 、0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05}であり、この配列はSUMPRODUCT関数で使用されます。

誰かが#VALUEを解決する手助けをすることができますか?問題?

ありがとうございます!

+0

あなたの質問の数式は、あなたのイメージのテーブルから別の列を使用しているように見えますか? –

+0

これをあまりにも早くdownvoteしないでください。実際は非常に興味深い質問です。 http://www.pcreview.co.uk/threads/array-formula-use-of-offset-function-with-array-argument.1753122/を参照してください。 –

答えて

0

明らかに(これはわかりませんでした)オフセットは、2番目の引数として配列とともに使用すると範囲オブジェクトのセットを返すことができるため、珍しいことです。ほとんどの関数は、それを渡すとこれを処理できません。しかし、それをNの関数に置くと、正しい答えが得られます。

=SUMPRODUCT((E2:E37)*N(OFFSET(A1,C2:C37,1))) 

または

=SUMPRODUCT((E2:E37),N(OFFSET(A1,C2:C37,1))) 

enter image description here

これらは#VALUEの配列を与えるように見えることに注意してください!評価式でそれらを実行するとエラーが発生しますが、これらはN関数を通過した後に解決されます。

もちろん、これを簡単な方法で行い、IndexまたはVlookupをヘルパー列とともに使用するのが一般的です。私は、オフセットの方法は、より簡単に、より効率的であると思うだろう

=SUM(E2:E37*MMULT(N(C2:C37=TRANSPOSE((ROW(A2:A4)-1))),B2:B4)) 

- :オフセットを使用せずに、単一の配列数式でそれをやろうと私が最初に考えたのは、このでした。

しかし、あなたは、おそらく最も簡単な方法で、この配列数式を使用することができカテゴリの数が少ないだけである。この特定のケースでは

: -

=SUM(CHOOSE(C2:C37+1,0,B2,B3,B4)*E2:E37) 

上記の式は、特殊なケースのために働く場所'key'はルックアップ列の行番号と同じです。オフセット方法が簡単に検索を組み込むように適合させることができる: -

=SUM((E2:E37)*N(OFFSET(A1,IFERROR(MATCH(C2:C37,A2:A4,0),0),1))) 

See this reference

関連する問題