
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
No.1・2です。
>Log計算している検索範囲だと
>検索してくれません。
とありますが、具体的にどのセルにどうのような計算結果が表示されていて
どの範囲を「VLOOKUP関数」の範囲にしたいのでしょうか?
その辺が判れば具体的なアドバイスができると思うのですが・・・
※ 当然のことながら範囲内に重複データはない!という前提です。m(_ _)m
No.3
- 回答日時:
こんばんは
VLookUpを使用して結果を得たいのは1回だけなのでしょうか?
もし何度も繰り返し処理をするのであれば、DictionaryオブジェクトやADODBなどを使うのもアリかもしれません…
ちなみにですがシート上で使う場合はIF関数とIsNA関数も併用すれば組めますョ
画像の数式、文字判別できますでしょうか?

No.2
- 回答日時:
No.1です。
投稿後もう一度質問文を読み返してみると
VLOOKUP関数に関する質問で、他の方法はご希望ではなかったみたいですね。
VLOOKUP関数でやってみました。
配置は前回同様とします。
Sub Sample2()
Dim i As Long, c As Range, myRng As Range
Set myRng = Range("F1:F10,I1:I10,L1:L10")
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
Set c = myRng.Find(what:=Cells(i, "A"), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
Cells(i, "B") = WorksheetFunction.VLookup(Cells(i, "A"), Cells(1, c.Column).Resize(10, 2), 2, False)
End If
Next i
End Sub
※ いずれにしてもVLOOKUP関数の範囲を指定するために
FINDメソッドを使ってしまいました。m(_ _)m
No.1
- 回答日時:
こんばんは!
VBAでVLOOKUP関数を使用したい訳ですね?
使い方はワークシート関数と同じですが、「範囲」を特定してやる必要がありますね。
その「範囲」が特定できる条件がある場合は
各範囲の左上のセル番地が判れば、
Resizeプロパティで「範囲指定」が可能です。
わざわざVBAでやるのでれば、当方だと別方法(Findメソッド)でやります。
仮に↓の画像のようにVLOOKUP関数の各範囲が F1:G10・I1:J10・L1:M10 のように飛び飛びになっているとし、
B列にA列データを検索値として、完全一致する右隣りのデータを表示させたい場合は
Sub Sample1()
Dim i As Long, c As Range, myRng As Range
Set myRng = Range("F1:F10,I1:I10,L1:L10")
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
Set c = myRng.Find(what:=Cells(i, "A"), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
Cells(i, "B") = c.Offset(, 1)
End If
Next i
End Sub
としてもVLOOKUP関数と同様の結果が求められると思います。
※ 飛び飛びの範囲に重複データがない場合は
>Set myRng = Range("F1:F10,I1:I10,L1:L10")
をいっきに
>Set myRng = Range("F1:M10")
のようにしても大丈夫だと思います。m(_ _)m

この回答へのお礼
お礼日時:2015/03/18 10:19
Findメソッドを使う場合ですが、
検索範囲の数値がLog計算していて桁数が多いとダメでしょうか?
セルA1に1、セルA2に2を入れて2を検索すると
正しく検索できるのですが、Log計算している検索範囲だと
検索してくれません。
LookAtを部分一致にしてもダメでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで隣のセルと同じ内容に列...
-
SUMIFで数値が入力されているセ...
-
エクセルに入力された日付「S40...
-
Excel関数:「0」を除いた標準...
-
値の入っているセルのうち、一...
-
Excel関数で、範囲内の最後のセ...
-
エクセルVBAを使ってセルに日付...
-
EXCELデータのCSV変換の限界
-
ピボットテーブル 0個の行を...
-
correl関数の範囲指定
-
更新前と更新後の差分をVBAを使...
-
入力するとかってにセルの色が...
-
【エクセル】区切り位置で分割...
-
複数の候補列から、検索値と一...
-
エクセル 8ケタの数字から日数...
-
Excelで順番を逆に
-
Excelで複数列かつ複数行分の一...
-
ExcelVBAのご質問(sumifs)
-
エクセル2000で〇×の並び替えを...
-
Excel:合計が一番上になる形で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで隣のセルと同じ内容に列...
-
【エクセル】区切り位置で分割...
-
更新前と更新後の差分をVBAを使...
-
値の入っているセルのうち、一...
-
Excel関数:「0」を除いた標準...
-
エクセルに入力された日付「S40...
-
エクセル、正数のみの集計[(負...
-
SUMIFで数値が入力されているセ...
-
Excelで複数列かつ複数行分の一...
-
ピボットテーブル 0個の行を...
-
correl関数の範囲指定
-
【Excel】歯抜けデータの集約
-
複数の候補列から、検索値と一...
-
Excel関数で、範囲内の最後のセ...
-
エクセル 8ケタの数字から日数...
-
EXCEL 階段状のグラフ
-
あるexcel表からチェックボック...
-
エクセルで何種類のデータがあ...
-
Excelで順番を逆に
-
エクセル 別のファイルにデータ...
おすすめ情報