VLOOKUP がすべてのセルを補間しないのはなぜですか?

VLOOKUP がすべてのセルを補間しないのはなぜですか?

VLOOKUP 式がすべてのセルを補間しない

    AD           AE   AF
11-6-2014 15:20 90,4 #N/A
11-6-2014 15:21 89,1 #N/A
11-6-2014 15:22 90,4 Good
11-6-2014 15:23 89,1 Good

AF 列は私の数式です: (オランダ語) =AE4-(VERT.ZOEKEN(AD4;$AL$3:$AM$39714;2;WAAR)-1000) (英語に翻訳してみました) =AE4-(VLOOKUP(AD4;$AL$3:$AM$39714;2;True)-1000)

これはマトリックス列の一部です:

        AL        AM
11-6-2014 15:22 1026,9
11-6-2014 15:23 1027,3
11-6-2014 15:24 1027,2
11-6-2014 15:25 1026,9

2014 年 11 月 6 日 15:22 のデータ (1026.9) が見つかりました。しかし、この値を 2014 年 11 月 6 日 15:20 と 2014 年 11 月 6 日 15:21 にも補間したいのです。私の知る限り、最も近い日付を検索してマトリックスに値を出力するはずですが、そうではありません。

何か案は?

答え1

これは、パラメータが に設定されているVLOOKUP場合に動作するように設計されています。検索値以下の最も近い値を返します。その基準を満たす値がない場合、エラーが返されます。Range LookupTRUE

いくつかのオプションがあります:

  1. 下限値を下回る値に対して例外を設定し、VLOOKUP残りを処理させます。これを行うには、関数を関数内にラップするだけですIFERROR

    =IFERROR(AE4-(VLOOKUP(AD4;$AL$3:$AM$39714;2;True)-1000);AE4-$AM$3)
    

    これにより、エラーを生成するすべてのルックアップが列の最初の値にデフォルト設定されますAM

  2. 代わりに、検索値以下の最も近い日付だけでなく、最も近い日付のデータを返す場合は、 以外のものを使用できますVLOOKUP。以下の配列数式は、AM最も近い日付の からの値を返します。日付の中間点は、後の日付にマッピングされます。

    =AE4-INDEX($AM$3:$AM$39714,MAX(IF(ABS($AL$3:$AL$39714-AD4)=MIN(ABS($AL$3:$AL$39714-AD4)),ROW($AL$3:$AL$39714)-2,-1)))
    

    これは配列数式なので、正しく機能させるにはCtrl+ Shift+ を押して入力する必要がありますEnter。正しく入力すると、数式バーに中括弧で囲まれて表示されます。

    あなたのような長い配列では(= 39,712) の場合、配列数式は計算速度が遅くなり、スプレッドシートの処理が遅くなる可能性があります。そのため、どの方法を使用するかを決めるときは、この点を考慮してください。

関連情報