2011-01-21 15 views
15

を失敗し、私は私が式を書いたこのExcelが文字列VLOOKUPで

B C 
43 XS 6 
44 S 11 
45 M 16 
46 L 21 
47 XL 26 
48 XXL 31 

のように見えるテーブルがあります。

`VLOOKUP("S",B43:C48,2)` 

それは21 WHYの値を返すだし!それは11を返す必要があります!

更新この正確なエラーは別のテーブルに再現されました。 VLOOKUPは、検索値が数値の場合に機能しますが、文字列を使用すると一貫して失敗します。

答えて

23

あなたがそうのように、第四引数を指定して "完全一致" を指定しない限り、VLOOKUPは奇妙なことを行います

=VLOOKUP("S",B43:C48,2,FALSE) 

をExcelのヘルプファイルから:

VLOOKUP(検索値、table_array、col_index_num、 range_lookup)

range_lookupがTRUEの場合、table_arrayの最初の列の値は、...、-2、-1、0、1、2、...、AZ、FALSE、 TRUE;さもなければVLOOKUPは正しい値を与えないかもしれません。 range_lookupがFALSEの場合、table_arrayはソートする必要はありません。

も:

range_lookupあなたはVLOOKUPが完全一致または近似マッチを見つけたいかどうかを指定する論理値です。 TRUEまたは省略すると、おおよその一致が返されます。つまり、完全一致が見つからない場合は、lookup_valueより小さい次の最大値が返されます。 FALSEの場合、VLOOKUPは完全一致を検出します。見つからない場合は、エラー値#N/Aが返されます。

+2

だけの推測:あなたは、リスト上で非常に多くの時間を反復しなければならないので、ソートされていないリストからラフな試合を決定するためには、infeasibly高価になります。 –

+2

@シーア派キーイング:あなたが正しいと思います。おそらく、Excelはデフォルトでバイナリ検索を使用します。それは、ヘルプファイルの言葉遣いとhatoradeの例の奇妙な結果を説明するでしょう。 –

3

また、フォーマットの種類が一致していないため、問題が発生しています。 (1つのセルは数字を含むようにフォーマットされ、もう1つのセルはテキストを含むようにフォーマットされます)。このページ上問題/溶液#2を参照してください:なぜ

Solutions to Three Common Problems when Using VLOOKUP()