- ベストアンサー
他のシートのセルの値を引用したい
- EXCEL2007でマクロ作成中の初心者です。他のシートのセルの値を引用したい方法について教えてください。
- シートのA列に名前が書いてあり、その名前の横のB列に他のシートの番号を入れたいです。
- 他のシートに可変の表があり、名前のあるセルのみ上の番号を表示したいです。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
シート「名前」のA列に名字、シート「数字」の1行目に数字、2行目に名字が入っているとすると シート「名前」のB1セルに以下のセルを貼り付け、下方向に引っ張っていくとご希望の通りに出来ると思います。 =INDEX(数字!$1:$2,1,(MATCH(A1,数字!$2:$2,0))) 参照範囲が異なっていれば適時修正して下さい。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
質問が判りにくい。課題が2個あるのか? それを分けて、箇条書きにでもして、はっきりさせて質問文を書くこと。 (1)1つは名前の同行横列に番号を入れたい。 VBAでやるなら、Findメソッドを勉強せよ。 あるいはマクロの記録で編集ー検索の操作をして、コードがどうなるかを勉強せよ。 佐藤は他シートでは2度出ないとする。 VBAでせずとも、VLOOKUP関数で出来るはず。#N/Aが出るのは式の組み立てが悪いから。実例をWEBででも探せ。 Googleででも「エクセル VLOOKUP関数」で照会せよ。第2引数では絶対番地指定にせよ。 (2)Sheet2(他のシートのこと。仮にてなずけて名付けて質問に書け)で表の名前から番号を引いて、名前の上の行に番号を表示したいのか これもVLOOKUP関数デモできるだろう。VBAならFindメソッドで出来る。 ーー (2)のみ 例データ Sheet2 A1:B5 佐藤 1 木村 9 加藤 5 田中 7 伊東 3 Sheet3 第3行目(-は空白セル) ー 佐藤 ー 伊東 ー 加藤 ー 田中 ー 木村 コード Msgboxは納得後に削除する。 Sub test01() r = Worksheets("Sheet3").Cells(3, 256).End(xlToLeft).Column MsgBox r For j = 2 To r Step 2 nm = Worksheets("Sheet3").Cells(3, j) MsgBox nm Worksheets("Sheet2").Select Worksheets("Sheet2").Range("A:A").Find(what:=nm).Select Worksheets("Sheet3").Cells(2, j) = Selection.Offset(0, 1) Next j End Sub ーーー 実行後 Sheet3 ー 1 ー 3 ー 5 ー 7 ー 9 ー 佐藤 ー 伊東 ー 加藤 ー 田中 ー 木村
補足
申し訳ございません。伏してお詫び申し上げます。無能をおゆるしください。 もう一度整理いたしました。よろしくお願いします。 あ)シート名「名前」のセルA1に佐藤の文字 い)シート名「数字」のセルA1からE1にそれぞれ 3、8,9,10,15の数字 う)シート名「数字」のセルA2からE2にそれぞれ 伊東,加藤,田中,佐藤,中川の文字 え)シート名「名前」のセルB1に 関数を入れ10という数字を表示させる。
- hallo-2007
- ベストアンサー率41% (888/2115)
マクロでなくて Vlookup関数ではだめだったのでしょうか。 番号を表示したいシートのB列に =Vlookup(A2,番号が入っているシート!A:B,2,FALSE) と入れて下へコピーすればOKと思います。 もう一つのシートも同様で =IF(B2="","",=Vlookup(B2,番号が入っているシート!$A:$B,2,FALSE)) と入れて右へコピーです。 どうしてもマクロが必要な状況なのか とりあえず、マクロを勉強してみたい など補足していただければ、それに合った回答が付くと思います。
補足
B列に番号を入れたいのです。Vlookup関数でもいいです。 A B 1 佐藤 =Vlookup(A2,番号が入っているシート!A:B,2,FALSE) 2 伊東 3 加藤 4 以下つづく 教えていただいた式をいれると、#N/A となってしまいます。 番号が入っているのシートの表は可変の表です。名前は次の列は空白です。 名前のあるセルのみ上の番号を表示したいです。 、 A B C D E F G →以下つづく 1 2 番号 1 2 3 4 5 6 7 →以下つづく 3 名前 佐藤 伊東 加藤 田中 →以下つづく
お礼
今やってみました。完璧にできました。ありがとうございます。感謝感激です。