
Excel独習者です。
次の3つのシートがあります。
「入力窓口」「M1組」「M2組」「M3組」
シート「M1組」「M2組」「M3組」には各クラスの生徒の出席番号(B列)と氏名(C列)が名票としてあります。
シート「入力窓口」のcells(C,6)にクラス名を入力します。
シート「入力窓口」のcells(H,7)に出席番号を入力するとcells(I,7)に該当クラスの該当番号の氏名が
表示されるようにcells(I,7)に次の式を入力しましたがエラー表示でうまくいきません。
=IF(H7="","",IF(C6="M11",VLOOKUP(H7,'M11'!$B$4:$C$11,2,IF(C6="M12",VLOOKUP(H7,'M12'!$B$4:$C$11,2,
IF(C6="M13",VLOOKUP(H7,'M13'!$B$4:$C$11,2,)))))))
どのような式を入力すべきかご助言いただけたら幸いです。
なお、OSはVISTA、Excelは2007です。
よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
こんばんは!
一例です。
M1~M3組のSheetそれぞれの範囲を名前定義します。
当方使用のExcel2003での場合になりますが、
メニュー → 挿入 → 名前 → 定義
アルファベットや数値を名前欄に当てはめられないと思いますので
アンダーバーを付けて
_M1 のようにそれぞれのSheet別にVLOOKUPの範囲を名前定義します。
そして、↓の画像のI7セルに
=IF(OR(C7="",H7=""),"",VLOOKUP(H7,INDIRECT("_"&C7,0),2,0))
という数式を入れています。
これでクラス名欄と出席番号欄にそれぞれ入力すれば
希望の表示ができると思います。
お使いのExcel2007にも同様の操作方法ができるはずですので
お試しください。
以上、参考になれば幸いです。m(__)m

tom04様
画像までついた丁寧なアドバイスを頂いて感謝しております。
Excel2007にも「数式」というところに「名前の定義」がありました。
「範囲」で「M1」、「参照範囲」でvlookupの選択範囲、「名前」で
「_M1」とすればいいのかと思ってやってみましたが「参照範囲」をはじめ間違って別のところを指定して「_M1」と名前をつけてしまいました。正しい範囲に「_M1」をつけようとすると、「もう使われているのでその名前は使えない」とメッセージがでます。
書いてくださった式をみると、「_○○」という形が必要のように思えます。
無知のためせっかく教えてくださったことがなかなか使えない状態ですが、もうすこしやってみます。
とりあえず、御礼の言葉を述べさせていただきます。
No.5
- 回答日時:
質問の書き方が適当でなく判りにくい。
シートの簡単な実例を挙げて何をしたいのか説明すること。
どんな検索表があるのか書かないとよくわからない。
cells(C,6)はVBAで似たような書き方をするので、ここでは不適。
VBAのCellsなら順序が逆だ。
セルI7などとすべき。
>出席番号
生徒に付けた生徒番号ではないのか。
>名票としてあります
何の意味?クラスでそういう語句を使うの?業界用語は使わないで。
>複数条件を満たすVLOOKUP関数
これと本文の関係が良くわからない。
2列にわたる条件で、VLOOKUP関数を使えないはず。
だから2列の値を各行で結合した列を作り、そこを検索表として使うのだが、そんな質問ですか。そのとき単純に2列を&で結合してはダメなのはわかるかな。
imogasi様
いろいろ不備な点をご指摘いただき感謝いたします。
ご指摘いただいたすべての点がおっしゃる通りだと納得しました。
>2列にわたる条件で、VLOOKUP関数を使えないはず。
だから2列の値を各行で結合した列を作り、そこを検索表として使うのだが、そんな質問ですか。
複数ののシートを統合するシート上でVLOOKUP関数を適用し、それら複数のシート(すべてのシートは同じ形式の表でクラスごとの生徒の番号と氏名が書いてあります)から一つのシートを選んで該当クラスの入力した生徒番号の氏名を表示させたいというのが私の意図でしたが書き方が分かりにくく、大変ご迷惑をおかけしました。
これも十分わかりにくいと思いますが、お礼には画像が添付できないのですみません。
統合シート上には該当クラス名を入力するセルがあります。
該当クラス名を入力した後で、同じ統合シート上の生徒名簿の表に生徒番号を入れると該当クラスの生徒氏名が表示されるようにしたいのです。
このようなことができるのでしょうか。
何回も申し訳ありませんがアドバイスをいただけたら大変助かります。
よろしくお願いいたします。
No.4
- 回答日時:
No.3です!
たびたびごめんなさい。
名前定義の変更ですが、簡単にできると思います。
Excel2007の場合はどのような画面が出るか判りませんが、
2003ですとメニュー → 挿入 → 名前 → 定義
で↓の画像のような画面が出ますので
名前定義したものが並んでいるところでクリックすると
その名前定義のものが選択されますので、「削除」を選べば
間違って範囲指定したものは解除できます。
Excel2007も同じような感じでできないでしょうか?
どうも何度も失礼しました。m(__)m

tom04様
再度のていねいなご回答感謝いたします。
添付してくださった画像とExcel2007は若干異なりますが、やってみます。ありがとうございました。
No.2
- 回答日時:
シート名は 「M1組」「M2組」「M3組」?
「M1」「M2」「M3」?
シート名が「M1組」「M2組」「M3組」で
C6セルに「M1組」「M2組」「M3組」とシート名を入力するのであれば
INDIRECT関数を使って
=VLOOKUP(C8,INDIRECT(H7&"!A:B"),2,FALSE)
M1とか組だけを省略して入力するのであれば
=VLOOKUP(C8,INDIRECT(H7&"組!A:B"),2,FALSE)
hallo-2007様
ご回答感謝いたします。
シート名は「M1」等で、組はついていません。
失礼いたしました。INDIRECT関数についてすこし勉強してみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】実行時エラー '424':...
-
【マクロ】数式を入力したい。...
-
Office2021のエクセルで米国株...
-
エクセルのVBAで集計をしたい
-
vba テキストボックスとリフト...
-
【マクロ】【配列】3つのシー...
-
【マクロ】元データと同じお客...
-
【マクロ】【相談】Excelブック...
-
他のシートの検索
-
【画像あり】オートフィルター...
-
【マクロ】左のブックと右のブ...
-
空白のはずがSUBTOTAL関数でカ...
-
エクセルシートの見出しの文字...
-
【関数】3つのセルの中で最新...
-
Excelに貼ったXのURLのリンク...
-
【マクロ】excelファイルを開く...
-
LibreOffice Clalc(またはエク...
-
【マクロ】【画像あり】❶ブック...
-
エクセルの複雑なシフト表から...
-
Excelで4択問題を作成したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】元データと同じお客...
-
エクセルの関数について
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
エクセルの複雑なシフト表から...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
【関数】同じ関数なのに、エラ...
-
Amazonでマイクロソフトオフィ...
-
ページが変なふうに切れる
おすすめ情報