0

私は現在、この配列数式を使用しています..

 {=LARGE(IF(('Data Input'!$L$3:$L$15000=$B10)*('Data Input'!$H$3:$H$15000>$C10),'Data Input'!$O$3:$O$15000,0),1)}

B10 は 658A のようなテキスト ID で、L:L は ID の列です。C10 は日付で、H:H は日付の列です。O:O は、取得している # 値を持つ列です。

この数式は、ctrl、shift、enter で使用すると、私の目的でうまく機能します

使用しようとすると問題が発生します...

 {=IF('Data Input'!$L$3:$L$15000=$B10,1,0)}

最初の式では正しく機能しますが、常に FALSE の結果が返されます。

結果を変える 2 番目の式の違いは何ですか? これは私にとって非常に奇妙です。助けてくれてありがとう。

4

2 に答える 2

0

2 番目の式は、それ自体が配列を返します。その戻り配列の左上の要素のみを表示しています-たまたまFALSEです。

最初の数式はスカラー値を返します。それが違いです。

「1」の値を合計する場合は、2 番目の式を次のように修正できます。

{=SUM(IF('Data Input'!$L$3:$L$15000=$B10,1,0))}

これはスカラー戻り値でもあります。

于 2013-06-05T12:49:57.207 に答える
0

これIFは、返される配列の最初の値のみを比較しているため、最初の比較が真の場合にのみ真の値を返します。

説明する例:
ここに画像の説明を入力 数式

式: {=IF(A1:A3=B2,1,0)}意志; セル A1 が true に変更されない限り、0 を返します。値のいずれかが true の場合に true を返すように結果を変更するには、ちょっとしたトリックに頼る必要があります...

まず、 を使用--して True/False 値を 1/0 に変更し、次に を使用SUMしてそれらを加算します。IF はゼロ以外の結果を true として扱うため、1比較が true の場合に返されます。

新しい数式{=IF(SUM(--(A1:A3=B2)),1,0)}(まだ配列数式) を使用して例を処理すると、次の評価手順が得られます。

=IF(SUM(--(A1:A3=B2)),1,0)
=IF(SUM(--(A1:A3=2)),1,0)
=IF(SUM(--({1,2,2}=2)),1,0)
=IF(SUM(--({False,True,True})),1,0)
=IF(SUM(0,1,1),1,0)
=IF(2,1,0)
=1
于 2013-06-05T12:51:32.413 に答える