重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

エクセルでリストに対応するデータを別シートの表に参照したいです。

「表シート」のB2にリストを作って、
(リストは「一覧表シート」のA,B,Cが入力されているセルを参照しています。)
Aを選択すると101の下の段(B11)に、
「一覧表シート」のAの列101の111が入力されるようにしたいです。
Bを選択すると222、Cを選択すると333が入力できるようにしたいです。

この「表シート」の表がややこしいのですが、
建物の部屋番号に対応しているため、3階2階1階という順になっています。

関数で対応できるものでしょうか?
分かりにくい表ですが、よろしくお願いします。

「エクセルでリストに対応するデータを別シー」の質問画像

A 回答 (3件)

単純に規則的に並んでいるだけなので、順番に取ってくる数式でもできますが。


とりあえずエクセルの基本の練習として、VLOOKUP関数を使ってみましょう。


表シートのB7には
=IF($B$2="","",VLOOKUP(B6,一覧表!$B$3:$E$11,MATCH($B$2,一覧表!$B$2:$E$2,0),FALSE))
と記入、各セルにコピー貼り付けます。





#補足
表一覧の各室ABC欄には、とりあえずすべてデータが記入されているとします。
ご相談の言葉足らずで実際には空欄があったりするときは、状況に応じて上述の関数式を
=IF($B$2="","",VLOOKUP(B6,一覧表!$B$3:$E$11,MATCH($B$2,一覧表!$B$2:$E$2,0),FALSE)&"")
なんて具合にしてみたりなど、応用します。

この回答への補足

回答ありがとうございます。今、補足に書いて下さったの数式をコピーして試してみたところ、思った通りに動いていました。
それぞれの関数は使ったことがあるのですが、合わせ技まで持ち合わせていませんで、大変勉強になりました。
書いて下さった下記の数式の
=IF($B$2="","",VLOOKUP(B6,一覧表!$B$3:$E$11,MATCH($B$2,一覧表!$B$2:$E$2,0),FALSE)&"")
関数の引用で1つ1つの意味を確認したのですが、
まず、IF関数で、論理式が$B$2=""
        真の場合""
        偽の場合VLOOKUP(B6,一覧表!$B$3:$E$11,MATCH($B$2,一覧表!$B$2:$E$2,0),FALSE)&"")

偽の場合のVLOOKUP(B6,一覧表!$B$3:$E$11,MATCH($B$2,一覧表!$B$2:$E$2,0),FALSE)&"")
     VLOOKUP(B6,一覧表!$B$3:$E$11,MATCH($B$2,一覧表!$B$2:$E$2,0),FALSE)
までは理解ができたのですが、
最後の&""の部分が理解ができませんでした。
もしよろしければ、教えて頂ければ嬉しいです。

補足日時:2012/12/27 23:18
    • good
    • 0

あなたのやりたいことが見えません。


1)"参照したい"・"入力できるようにしたい"のどちら?
入力できるようにしたい"のならマクロしかないが、
入力する気はさらさらなさそうなので、
参照をつかって表示したいのでしょう。
2)Aを選択すると101の下の段に111、Bを選択すると222…
選択するものは A・B・C のどれか 1つ……
チョッと待ってください!!
102号室・103号室はどうなるのですか?
3階2階の各部屋はどうなりますか?
◎「表シート」をコピーしてSheetA・SheetB・SheetC
を作るほうが簡単だと思います。
面倒な数式も必要ないし、
何か変更が必要なときは、入力できるし。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
お礼が遅くなり申し訳ございません。

1)についてですが、入力したものを参照したいという事だったのですが、伝わらなかったようで、申し訳ないです。

2)についてですが、各部屋すべてにデータが入るわけではありませんが(例101、203、302のようにです)なんとなくですが、数式を組み合わせたら入力できることは分かっていましたので、他の列はコピーすれば分かるだろうと思い省略しました。

文章で質問するのは難しいですね。
反省します。

時間を割いて回答して下さりありがとうございました。

お礼日時:2013/01/05 19:04

お示しの表シートがシート1に有って一覧表シートがシート2にあるとしたらシート1のB11セルには次の式を入力します。



=IF($B$2="","",IF(INDEX(Sheet2!$C$3:$E$11,MATCH(B10,Sheet2!$B$3:$B$11,0),MATCH($B$2,Sheet2!$C$2:$E$2,0))="","",INDEX(Sheet2!$C$3:$E$11,MATCH(B10,Sheet2!$B$3:$B$11,0),MATCH($B$2,Sheet2!$C$2:$E$2,0))))

その後にB11セルを選択してからD11セルまで右横方向にドラッグコピーします。
また、B11セルを選択してからコピーし、B9セルに貼り付けを行い、その後にD9セルまでドラッグコピーします。
同様にB11セルを選択してからコピーし、B7セルに貼り付けを行い、その後にD7セルまでドラッグコピーします。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
お礼が遅くなりまして申し訳ございません。

コピーして、シート名を変えて試したところ、やりたいことができました。
No.1で回答して下さった方と少し数式は違いましたが、同じように作業出来て、とても勉強になりました。

時間を割いて回答してくださってありがとうございました。

お礼日時:2013/01/05 18:59

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