1

これはかなり長い間私たちを悩ませていました。正しい結果を得る方法を見つけたとしても、同じ条件を使用したときに正確な結果が得られるのに、なぜSUMIF間違った結果が得られるのかを知りたいのです。SUMPRODUCT

両方の式は次のとおりです。

=SUMPRODUCT((Calcul!$J$2:$J$15000=Sommaire!J2)*(Calcul!$K$2:$K$15000))
=SUMIF(Calcul!$J$2:$J$15000,Sommaire!J2, Calcul!$K$2:$K$15000)

ご覧のとおり、まったく同じ範囲、まったく同じ比較、まったく同じ合計範囲。

データについてもう少し説明します。両方のシート(「Sommaire」と「Calcul」)のセルには、数字のみを含むがテキストとして扱われるシリアル番号に類似したデータが含まれています。この数値は、列A、B、C、D、E、およびIのデータを連結して作成され、式は次のようになります。

=IFERROR(A2&B2&C2&D2&E2&I2, "ERREUR")

2つの異なる方法(キーまたは「シリアル番号」を直接フィルタリングする方法と、キーの各コンポーネントを直接フィルタリングする方法)でフィルターを使用すると、まったく同じデータセットが得られます。これは、手動で計算すると、同じデータセットになります。SUMPRODUCT戻ってきた。

何か案は ?返される結果が異なる理由を私たちは本当に思い付くことができません。

ありがとう。

4

1 に答える 1

0

最終的に解決策を見つけました。とにかく何らかの理由SUMIFで、文字の数値列を数値として扱うことを強制しているようです。私たちのキーはかなり大きいので、ある種の整数容量に達してオーバーフローすることは不可能ではありません。その前に文字を追加するだけで、 を使用した場合と同じ結果が得られSUMPRODUCTます。

オーバーフローしたキーの例:

01003046014910111616
01000145950198116308

そして、これらのキーは、まったく同じ式 (前に C が追加されているだけ) で、期待される結果を返します。

C01003046014910111616
C01000145950198116308
于 2012-09-06T18:40:19.780 に答える