2

このトピックに関連するすべての質問を確認しましたが、どれも役に立ちませんでした。

私はこの式を持っています

=SUMPRODUCT((INDIRECT("Ap"&ROW()&":"&"Ap"&(ROW()+$T4-1)));(INDIRECT("Ap"&ROW()&":"&"Ap"&(ROW()+$T4-1))))

これは - 0 になります。

=SUMPRODUCT((INDIRECT("Ap"&ROW()&":"&"Ap"&(ROW()+$T4-1)))*(INDIRECT("Ap"&ROW()&":"&"Ap"&(ROW()+$T4-1))))

これにより、「値!

SUM コマンドを使用すると、すべてが正常に機能しましたが、今はこれにこだわっています。私は Microsoft Office 2013 を使用していますが、このINDIRECT関数は他のコマンドとうまく連携しているため、この関数の問題点を見つけることができないようです。

たとえばA、最初の 5 行に 1 から 5 までの列番号があり、列に同じものがBある場合、式をC1

=SUMPRODUCT((INDIRECT("A"&ROW()&":"&"A"&(ROW()+4)))*(INDIRECT("B"&ROW()&":"&"B"&(ROW()+4))))

元の例と同じ結果になります。

4

2 に答える 2

3

正直なところ、あなたが使用している構造はかなり貧弱です。修飾されていない ROW() は非常に厳格でない選択であるだけでなく、揮発性の INDIRECT 構造は、このタイプのセットアップではほとんどの場合回避できます。

はるかに優れているのは次のとおりです。

=SUMPRODUCT(INDEX(A:A,ROWS($1:1)):INDEX(A:A,ROWS($1:1)+4),INDEX(B:B,ROWS($1:1)):INDEX(B:B,ROWS($1:1)+4))

ROW の代わりに ROWS を使用する利点については、こちらを参照してください。

http://excelxor.com/2014/08/25/row-vs-rows-for-consecutive-integer-generation/

よろしく

于 2015-04-18T12:29:28.040 に答える
1

列 A と B のデータを使用した例と、同様の質問に対するこの回答を使用すると、ROW()関数は単一の値ではなく配列を返します。ラップすることでsum()解決します。

=SUMPRODUCT(INDIRECT("A"&SUM(ROW())&":"&"A"&SUM((ROW()+4))),INDIRECT("B"&SUM(ROW())&":"&"B"&SUM((ROW()+4))))
于 2015-04-18T12:13:05.143 に答える