|
▼うしねこ さん:
>検索値"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("あいう")
数値に変換できない文字を数値に変換するとエラーになるので、この辺りのチェックも必要になってきます。
|
|