VBAの数式の設定で質問がございます。
Sheet1の黄色に、枠を囲っているところにsheet2から、関数HLOOKUPで数値を引っ張って来たいと思っております。水平方向での処理なので、iを立てて処理することができないのでformulaのR1C1形式を使うのかと思いいろいろトライしましたがうまくいきません。どなたか具体的な処理を教えていただけないでしょうか。
添付しているJPEGの簡略図のように
sheet1の黄色部分(B6:E6)に,sheet1,2のa~d(B2:E2)を起点にして、sheet2の緑部分(B3:E3)をHlookup関数で
引っ張ってきたいのです。実際の場合はもう少しデータ量がcolumn数は変動があるので、column.countなどでiなどを立てて処理を行えたらと思っております。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんばんは!
横からお邪魔します。
>sheet1の黄色部分(B6:E6)に,sheet1,2のa~d(B2:E2)を起点にして、
>sheet2の緑部分(B3:E3)をHlookup関数で引っ張ってきたいのです
結局、Sheet2の最終行データをSheet1の最終行の下に表示させたい!というコトですかね?
もしそうであればHLOOKUP関数でなくても対応できると思います。
一例です。
尚、Sheet1・Sheet2の列数はいくつあっても良いのですが、同じ列数だとします。
Sub Sample2()
Dim lastCol As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
With Worksheets("Sheet1")
lastCol = .Cells(1, Columns.Count).End(xlToLeft).Column '★Sheet1の1行目を最終列番号取得
.Cells(Rows.Count, "B").End(xlUp).Offset(1).Resize(, lastCol - 1).Value = _
wS.Cells(Rows.Count, "B").End(xlUp).Resize(, lastCol - 1).Value
End With
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.2
- 回答日時:
質問いただいたので、再回答いたします。
んー、英語ばっかりのプログラムって苦手なんですよね(苦笑
分かりやすい?プログラムを書いてみました。
---------------------------------------
Sub データ取得()
Dim 範囲 As Range
Dim 検索値 As Variant
Dim シート2最終行 As Long
Dim シート1最終行 As Long
Dim 行番号 As Long
Dim 値 As String
シート1最終行 = ThisWorkbook.Worksheets("Sheet1").Range("A1").End(xlDown).Row
シート2最終行 = ThisWorkbook.Worksheets("Sheet2").Range("A1").End(xlDown).Row
Set 範囲 = ThisWorkbook.Worksheets("Sheet2").Range("A1:E" & 最終行)
行番号 = 3 '結果を出したい部分?の行番号 '必ず最終行をつかうなら、シート2最終行を使うのもあり。
検索値 = Worksheets("Sheet1").Range("B1") '検索値
値 = Application.WorksheetFunction.HLookup(検索値, 範囲, 行番号, False)
Worksheets("Sheet1").Range("B6").Value = 値
End Sub
----------------------------------------------
必要に応じて、行番号、検索値…そして、値を記入する部分を変更頂ければと思います。
上記例では、aを検索しています。
bを検索する場合は、
検索値 = Worksheets("Sheet1").Range("C1") '検索値
Worksheets("Sheet1").Range("C6").Value = 値
に変えていただけると良いかと思います。
あとはループ掛けたり…色々と編集してください^^
分かりにくいところがあったらきいてください。そして、もしかしたらバグもあるかもしれません(苦笑
No.1
- 回答日時:
=HLOOKUP(B1,Sheet2!$A$1:$E$3,2,0)
こういう感じですか?
また、行番号はROWですよ。
=HLOOKUP(B1,Sheet2!$A$1:$E$3,ROW(C6)-3,0)
などとしても良いかもしれません。
HLOOKUPは、
HLOOKUP(検索値、範囲、行数、検索の型)です。
R1C1では良くわからないですが…
この回答への補足
satoronさま
ありがとうございます。
ちなみに他の方に質問をしたら、
Sub sample()
Dim xAdr As String, xFormula As String
Const cFormula As String = "=HLOOKUP(B1,Sheet2!#Adr,#2,FALSE)"
With Worksheets("Sheet2")
With .Cells(1).CurrentRegion
xAdr = .Offset(, 1).Resize(, .Columns.Count - 1).Address
xFormula = Replace(Replace(cFormula, "#Adr", xAdr), "#2", .Rows.Count)
End With
End With
With Worksheets("Sheet1").Cells(1).CurrentRegion
.Resize(1, .Columns.Count - 1).Offset(.Rows.Count, 1).Formula = xFormula
End With
End Sub
と教えて頂いてなんとか動くのですが、もう少し簡潔に行かないものかと悩んでます。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- Visual Basic(VBA) VBA For Each 〜 複数条件について 3 2022/10/20 20:05
- Excel(エクセル) 【Excel質問】別シートにある複数の同型の表から、同じ行項目にある数字を集計する 4 2023/02/16 00:14
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- その他(Microsoft Office) オフィス365のエクセル 3 2023/06/29 13:10
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/09 14:54
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Excel(エクセル) Excelの関数についての質問です。(vlookup関数) A列 B列. C 1 大阪 50. 検索 6 2023/08/11 13:35
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ITに関して無知で少し気になる...
-
動画クリエイターからシステム...
-
情報技術系の23歳の専門1年です...
-
データサイエンティストとwebエ...
-
(SIer志望)入社後の「研修」に...
-
映像製作エンジニアからシステ...
-
データサイエンティストは高学...
-
システムエンジニアの仕事でSES...
-
(長文・工学部)院進か就職か
-
ヨーロッパ社会は、なんでGAFA...
-
なぜシステムエンジニアたちは...
-
4月から入社5年目なのですが、...
-
システムでエンジニアの仕事を...
-
「テザリング」の意味を素人に...
-
システム開発やDX推進を前職で...
-
IT素人が全然関係ない部署から...
-
職業が フリーランスIT系(顧客...
-
営業職からIT業界に転職
-
エンジニアの方に質問です。 自...
-
何で素晴らしくコーディング能...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
システムエンジニアの仕事でSES...
-
現在、夜中の3時。俺が働いてい...
-
なんでこんな事も知らないの攻...
-
「テザリング」の意味を素人に...
-
業務知識どうやって吸収してい...
-
エンジニアの方に質問です。 自...
-
情報技術系の23歳の専門1年です...
-
なぜ誰でもできるプログラマー...
-
フロントエンドエンジニアが評...
-
営業職からIT業界に転職
-
未経験エンジニアの年収
-
何で素晴らしくコーディング能...
-
なぜシステムエンジニアたちは...
-
SES企業の面談について
-
IT素人が全然関係ない部署から...
-
日東駒専レベルの大卒で 25歳、...
-
for文すら一年前に書けなかった...
-
AWSへの就職難易度は高いですか...
-
システムエンジニアとして期待...
-
システム開発やDX推進を前職で...
おすすめ情報