| 
    
     |  | ▼うしねこ さん: >検索値"c": セル"d"を参照して同ファイル内の別シートリストから、検索結果を表示
 >検索値"b": セル"e"の最初の2文字を参照して同じく検索結果を表示
 >
 >何度もお手数をお掛けしますが、宜しくお願いします。
 これだけ言われてもよく解りません。
 シートレイアウトやデータがどうなっているのかもわからないので...。
 
 1つだけ、注意点。
 これもデータ等がどうなっているのか解らないので、よくやりそうな物を。
 
 例えばデータがこんな風になっているとして、
 A列は、数値です。
 
 A   B
 11   あ
 12   い
 13   う
 14   え
 15   お
 16   か
 17   き
 18   く
 19   け
 20   こ
 
 検査値データ、「15AB」の左から2文字を取り出して検索する場合の注意点。
 これ↓で検索できるだろうと思ったら大間違い。
 検索するデータが数値なのに文字の「11」を検査値としてしているのでエラーになります。
 
 =VLOOKUP(LEFT("15AB",2),A1:B10,2,0)
 
 数値の場合もLeft、Right、Mid等で抜き出した場合、数値でなく文字になります。
 エクセルは、文字と数値を厳格に区別します。
 また、エクセルが自動で数値に変換して処理する場合があるので、この辺りが思い違いをされる原因かもしれません。
 
 エラーにならず抜き出すには、文字の数字を数値に変換してやればいいです。
 例えばこんな風に。
 
 =VLOOKUP(--LEFT("15AB",2),A1:B10,2,0)
 
 ↑をVBA上で計算させたい場合は、
 
 Dim st As String, ans As Variant
 st = "15AB"
 ans = Application.VLookup(CLng(Left(st, 2)), Range("A1:B10"), 2, 0)
 If IsError(ans) Then
 MsgBox "見つからない"
 Else
 MsgBox ans
 End If
 
 でまた、上の注意点。
 CLng("あいう")
 数値に変換できない文字を数値に変換するとエラーになるので、この辺りのチェックも必要になってきます。
 
 |  |