0

ここに私が持っている配列があります:

{=MIN(IF('APRIL 2011'!E3:E999<>"",'APRIL 2011'!E3:E999  
 *('APRIL 2011'!E3:E999*('APRIL 2011'!D3:D999='APRIL TOTALS'!A2))))}  

空のセルでもゼロを返します!

4

3 に答える 3

0

式の問題は、ブール積の配列の最小値を返すことです。これらはブール積であるため、乗数が FALSE の製品 (除外する製品) は 0 としてカウントされます。

列 E にゼロ値が含まれていない限り、これを回避する方法があります。元の式に 2 つの大きな変更を加えました。

  1. ブール乗数の問題を解決するために、IF ステートメントを使用して、TRUE と FALSE の乗数を 1 と 0 ではなく選択しました。TRUE は 1 のままですが、FALSE は大きな数になりました。列 E のどの値よりも大きくします。このようにして、空白のエントリが唯一の値である場合、最小値のみになります。
  2. 大きな数値が返される場合に対処するために、列 D の値 = A2 に対して列 E に空白以外の値がある場合にのみ最小値が計算されるようにしました。そのような値がない場合は、"" が返されます。

     {=IF(COUNT(IF('APRIL 2011'!D3:D999='APRIL TOTALS'!A2,  
       IF('APRIL2011'!E3:E999<>"",'APRIL2011'!D3:D999)))=0,""  
       MIN(IF('APRIL2011'!E3:E999<>"",'APRIL2011'!E3:E999,10000000000)  
       *IF('APRIL 2011'!D3:D999='APRIL TOTALS'!A2,1,1000000000000)))}
    
于 2011-04-08T16:56:21.647 に答える
0

条件をネストします。(VALUE)*(TRUE/FALSE) で IF 基準をマッシュアップしようとしており、TRUE/FALSE が FALSE の場合、ゼロを掛けています。このようにして、空白のセルを破棄しますが、列 D <> 'APRIL TOTALS'!A2 のすべての行に対して人為的に結果セットにゼロをシードします。

配列数式として、

=MIN(IF('APRIL 2011'!E3:E999<>"", IF('APRIL 2011'!D3:D999='APRIL TOTALS'!A2, 'APRIL 2011'!E3:E999)))

配列数式はCtrl+ Shift+で終了する必要がありますEnter↵</kbd> (but you already knew that!).

于 2015-07-26T02:46:10.423 に答える
0

ISBLANK() 関数を使用して、空白セルをテストできます。IF セル A1 が空白の場合=A1=""、true と評価され、true と評価されます。=A1=0

空白の値をセルに返す式がわからないので、代わりに次のように "" を使用します。

=IF(ISBLANK([expression]), "", [expression])
于 2011-04-08T14:05:48.610 に答える