dポイントプレゼントキャンペーン実施中!

EXCEL2007でマクロ作成中の初心者です。今困っています。お助けください。
シートのA列に名前が書いてあります。 その名前の横B列に番号を入れたいのです。
     A       B  
  1 佐藤
  2 伊東
  3 加藤
  4 以下つづく

横B列の番号は他のシートにあります。現状では以下の番号になります。
    A          B  
  1 佐藤        1
  2 伊東        3
  3 加藤        5
  4 以下つづく


他のシートに以下の表があります。これは可変の表で、名前は次の列は空白です。
名前のあるセルのみ上の番号を表示したいです。

      A    B    C    D    E     F   G  →以下つづく
   1 
   2 番号    1     2    3     4    5    6   7   →以下つづく
   3 名前   佐藤        伊東       加藤      田中  →以下つづく

わかりにくいかもしれませんがよろしくお願いします。

A 回答 (3件)

シート「名前」のA列に名字、シート「数字」の1行目に数字、2行目に名字が入っているとすると


シート「名前」のB1セルに以下のセルを貼り付け、下方向に引っ張っていくとご希望の通りに出来ると思います。

=INDEX(数字!$1:$2,1,(MATCH(A1,数字!$2:$2,0)))

参照範囲が異なっていれば適時修正して下さい。
    • good
    • 0
この回答へのお礼

今やってみました。完璧にできました。ありがとうございます。感謝感激です。

お礼日時:2011/11/13 07:25

質問が判りにくい。

課題が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という数字を表示させる。

補足日時:2011/11/12 21:09
    • good
    • 0

マクロでなくて 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 名前   佐藤        伊東       加藤      田中  →以下つづく

補足日時:2011/11/12 17:53
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!