エクセルで【シート1】の〇のところに、A1だったらaa、B1だったらbb、C1だったらccを表示させたいのですがやり方がわからず困っています。
よろしくお願いいたします。
【シート1】
001 A1 〇
002 B1 〇
003 A1 〇
004 B1 〇
005 C1 〇
006 A1 〇
007 A1 〇
008 B1 〇
009 A1 〇
010 C1 〇
【シート2】
A1 aa
B1 bb
C1 cc
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
vlookup関数は不要論がでてますね。最近ですと列番号(表の作りに)に左右されない、index+match関数の組み合わせ
が推奨されています。
C1セルに下記をコピーすると=INDEX(シート2!$A$1:$B$3,MATCH(B1,シート2!$A$1:$A$3,0),2)
今回のVlookupのような結果が得られます。
今回の事例では、Vlookupでいいのですが、その理由についてはネットで調べると
情報が得られると思います。
質問は関数だと思うので無視してください。
マクロで記述するとMatch関数を使ってこんな感じですかね(質問を勘違いして作成しただけなのですがUPしておきます)。
VBA
1Sub test() 2Dim data_maxrow As Double 3Dim master_maxrow As Double 4Dim mydata As Worksheet 5Dim mymaster As Worksheet 6 7Set mydata = Sheets("シート1") 8Set mymaster = Sheets("シート2") 9 10data_maxrow = mydata.Range("A1").End(xlDown).Row 'A列の最終列を取得 11master_maxrow = mymaster.Range("A1").End(xlDown).Row 'A列の最終列を取得 12 13For i = 1 To data_maxrow 14 15 mycellno = WorksheetFunction.Match(mydata.Range("B" & i).Value, mymaster.Range("A1:A" & master_maxrow), 0) 16 mydata.Range("C" & i).Value = mymaster.Range("B" & mycellno).Value 17 18Next 19 20Set mydata = Nothing 21Set mymaster = Nothing 22End Sub 23
投稿2020/08/02 08:38
編集2020/08/02 09:09総合スコア383
0
ベストアンサー
VLOOKUP関数を用いて実現できます。
【シート1】セルC1のVLOOKUP関数式は以下のようになります。
=VLOOKUP(B1,【シート2】!A:B,2,FALSE)
投稿2020/08/02 08:04
編集2020/08/02 08:15総合スコア1063
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/02 08:41 編集
2020/08/02 08:42
2020/08/02 12:55
2020/08/02 13:02
2020/08/02 13:13
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/02 08:59
2020/08/02 09:05
2020/08/02 12:50
2020/08/03 01:40
2020/08/03 02:30
2020/08/03 02:35 編集