2016-05-28 6 views
0

この例を単純にしておきましょう。私はCSEとして数式を入力するときに数が正しく表示されている理由を把握しようとしていますが、数式全体がちょっとしたものではないときは間違っています。なぜ私はsumproductを動作させるために配列式を作る必要がありますか

例1

B  |  C  |  D   |   E  |  F 
condtion 1 | condition 2 | strings Jan 2016 | strings Feb 2016 | strings Mar 2016 
15/06/01 | 17/06/01 |  2   |   4  |  6 

例Iは、第一行中のそれらの日付は条件1と条件の日付の間に概ねた場合に値を追加するための式でいじった2

condtion 1 | condition 2 | strings Jan 2016 | strings ONLY | strings Mar 2016 
15/06/01 | 17/06/01 |  2   |  4  |  6 

2は、日付シリアルを優れています。私が思い付いた:

=SUMPRODUCT((DATE(RIGHT($D$1:$F$1,4),MONTH(MID($D$1:$F$1,9,3)&"-1"),1)>=$B2)*(DATE(RIGHT($D$1:$F$1,4),MONTH(MID($D$1:$F$1,9,3)&"-1"),1)<$C2)*(LEFT($D$1:$F$1,7)="strings")*$D$2:$F$2) 

そして、私は日付が文字列ではありませんので、それは、式が#VALUEを生成させる際には、実施例2の場合は、例1のために正常に動作します。だから私はダウンの部分に式を壊し始めると、それだけで次のように(0、...)> =条件1ヶ月をカウントし、IFERRORで物事をラップしている:私は通常、それを入力すると

=SUMPRODUCT(IFERROR(--(DATE(RIGHT($D$1:$F$1,4),MONTH(MID($D$1:$F$1,9,3)&"-1"),1)>=$B2),0)) 

を私は0を取得します私はCSEとしてそれを入力すると、私は例1の場合は3、例2の場合は2になります。これは、予想される答えです。

塊状物の中には、サンプの産物が計算のような配列を作ったのは私の理解であった。上記の数式をすでに実行しているときにCSEとして入力する必要があるのはなぜですか?

この場合、sumproductを配列にすることなく使用する方法はありますか?

答えて

1

SUMPRODUCT()内でIF()関数またはIFERROR()関数またはIFx()関数を使用する場合は、CSEを使用する必要があります。

+1

そこに私が読むことができるいくつかの文書がありますか? –

+0

IFERROR()をSUMPRODUCT()の外側に使用する場合は、de CSEを使用する必要はありません。 '= IFERROR(SUMPRODUCT( - (日付(右$($ D $ 1:$ F $ 1,4)、月($ D $ 1:$ F $ 1,9,3)&1) > = $ B2))、0) ' –

関連する問題