0

これは私が現在使用している式です:

=SUMPRODUCT((INDIRECT("A2"):INDIRECT("A"&(ROW()-1))=A359)*1)

それはうまく機能しますが、代わりにこれを使用したいと思います:

=SUMPRODUCT((INDIRECT("A2"):INDIRECT("A"&(ROW()-1))=INDIRECT("A"&(ROW())))*1)

残念ながら、私は#VALUE!. 私は何を間違っていますか?両方とも同じ値INDIRECT("A"&ROW(()))A359返すため、なぜこれが機能しないのかわかりません。

単純なCOUNTIF関数を使用しない理由は、式から不要なコンポーネントをすべて取り除き、問題のある部分だけを残したからです (つまり、SUMPRODUCT式を使用する必要があり、COUNTIF式が機能しません) 。

前もって感謝します!

4

2 に答える 2

4

INDIRECT通常のセル参照の代わりに必要な理由はわかりませんが、ここでの特定の問題は、ROW関数が単一の値を返す場合でも「配列」を返すことです。たとえば、単に「x」ではなく {"x"} を返します-状況によっては、Excel がそれを処理できないことがあります。

ROW2 番目の関数を関数でラップしてみてくださいSUM。値は変更されませんが、配列は取り除かれます。つまり、

=SUMPRODUCT((INDIRECT("A2"):INDIRECT("A"&(ROW()-1))=INDIRECT("A"&SUM(ROW())))*1)

これにより、#VALUE が削除されます。フォーミュラの本質的な構造を変更せずにエラー

于 2014-03-30T15:56:57.393 に答える
1

これを試してください:

=SUMPRODUCT((($A$2:INDEX($A:$A,ROW()-1))=INDEX($A:$A,ROW()))*1)

同じ結果が得られます。

しかし、上記の式は揮発性です。代わりに、次のものを使用しますB3

=SUMPRODUCT((($A$2:$A2)=$A3)*1)
于 2014-03-30T15:56:14.783 に答える