2011-10-12 10 views
1

「ユニーク」IDを含むスプレッドシートがあります。問題は、それらが大文字と小文字を区別するだけであることです。すなわち、私は次のことを意味します。a06D000000QO5uW & a06D000000QO5uw。excel vlookupsと正確に一致するケース

これらのIDでvlookupを実行して、関連する値を取り戻したいとします。それは私が見つけたこの記事を使用して大文字と小文字を区別する照合を行うことが可能です:

http://support.microsoft.com/kb/214264

私が発見した問題は、VLOOKUPが正確な関数内にネストされているので、それはないかもしれない、最初に見つかったマッチを返すということです私は後になる者である。問題は、「ジョー」をテストするためのVLOOKUPは全体の来ることのようです

=IF(EXACT(C1,VLOOKUP(C1,A1:B6,1,FALSE))=TRUE,VLOOKUP(C1,A1:B6,2,FALSE),"No exact match") 

Name Age  Joe 
Mary 32 
joe  48 
Bob  53 
Sue  27 
Joe  30 

など見上げるルックス:私は記事からのデータサンプルを使用する場合のように、それが見えます「ジョー」はまず最初であり、大文字と小文字を区別しないため、マッチとして返されます。つまり、「ジョー」には決して行きません。正確な関数は "ジョー"に対して "ジョー"をテストしようとしているため失敗します。

これを回避する手段はありますか?私は本当にVBAルートを避けたいと思っていました.MacとWindowのユーザーが混在しているので、これを数式に保存したかったのです。

答えて

4

(この正確な例で)あなたの問題はhere

  • を覆われている一致が見つからない場合は、配列数式は(プレスはCtrlシフト を入力してください)一緒に(ジョーに対してNAを30を返します。 )。同資料に記載=INDEX(B1:B6,MATCH(1,--EXACT(A1:A6,C1),0))
  • より簡単式は、私はそれが配列数式を使用しないようわずかに良い方法があると思います=LOOKUP(1,1/EXACT(A1:A6,C1),B1:B6)

enter image description here

+0

が魅力的でした。 Microsoftの記事とそれが間違っている方法については、記事の人でさえ参照してください。あなたの助けを歓迎 – GrahamJRoy

2

です。

=INDEX($B$2:$B$6,MATCH(TRUE,INDEX(EXACT(C1,$A$2:$A$6),0),0)) 
+0

この数式は、配列の数式、FYIよりはるかに遅いようです。 – wardw123

関連する問題