• ベストアンサー

excel2007 vlookup関数 シート参照

次のような関数をつくって利用しています =VLOOKUP($B$3,'1101'!$1:$1048576,2) ここで利用しているのは、シート名「1101」なのですが アクティブシートのセルに入力した名前に対応して 参照するシートを変更したいのです 上の式の1101のところに、セルA4やindirect(A4)などを いれようとしましたがうまくいきません 調べてみましたがうまく調べられないので 質問することに決めました。 ご指導よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

A4セルに入力したシート名のA列とB列にあるデータから検索するなら、以下のようなセル範囲を文字列で結合したINDIRECT関数を利用してください。 =VLOOKUP($B$3,INDIRECT(A4&"!A:B"),2)

その他の回答 (2)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

「$1:$1048576」が微妙ですが、指定シートのA列とB列にデータがあるように想像できます。以下はA列~B列にデータがあり、A列で検索し、一致すればそのB列を出力するとします。   =VLOOKUP($B$3,INDIRECT("'"&A4&"'!"&"A:B"),2,0) 「$1:$1048576」より「A:B」の列名指定が一般的でしょうか。 Indirect関数はその引数に演算子があるとそれを評価(演算)するようです。 「1101」や「Sheet2」はいいはずですが、「Sheet 2」や「Sheet-2」のようにシート名に演算子があると評価されて、その結果そのようなシートがないために参照エラーになります。Excelでは「スペース」は演算子の機能もあります。 そのため、上式では「シングルクォーテーション(Shift+6)」で囲っています。安全のためです。 同一Bookはこれでいいんですが、他Bookを参照する場合、Indirect関数を使う場合、Book名でも同じような問題が発生します。 当方、Excel2000です。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

例えばA4セルに参照したいシート名を入力して該当するシートのA1セルの値を表示させるのでしたら次のような式にします。 =INDIRECT("'"&A4&"'!A1") ところでお示しのVLOOKUPの式ですが次のような形になっていることが必要です。 =VLOOKUP(検索値,INDIRECT(A4&"!セル範囲"),列番号,FALSE) セル範囲の指定が間違っていますね。

関連するQ&A

  • VLOOKUPで他のシートを参照する場合

    シートが(1)「値表示」と(2)「データ」の2種類があります。 (2)にはB1:D4、B5:D8、B9:D12というように、セル12個分にそれぞれ独立したデータ表があり、このデータが全部で10個あります。 そして、このデータから任意の値を(1)「値表示」シートに表示したいので、(1)のセルA1に「=VLOOKUP(A2,データ!,B1:D4,2,FALSE)という式を入れます。 これで、(1)のA1(2)のシートのデータ表から任意の値が表示されるのですが、このA1に入力した式をコピーして、A10までそれぞれの表に対応したVLOOKUPの数式を入れたいのですが、普通にコピーするとA2以降に入力される式はデータの参照範囲がA1の範囲から1セル分だけずれたB2:D5となっています。A2が参照する範囲は本来はB5:D8にしたいので、一つずつデータの参照範囲を修正しないとならないのですが、このような場合は、やはり一つずつ修正するしか方法がないのでしょうか。 もっと、素早く参照先を変更できる方法がありましたら教えてください。

  • EXCEL:引数のシート参照を動的に変更したい

    EXCELでこのようなことができるでしょうか? (1)シート1~シート10まで同じフォーマットの入力表があります。 (2)シート11に印刷帳票が作ってあります。帳票の各セルはvlookup関数でシート1~10のそれぞれの該当セルを参照するようになっています。 このとき、出力帳票シートのどこかにリスト型の入力規則で、1~10までのシート番号を入力できる項目を作っておき、それを使ってvlookup関数の引数にあるセル 参照を動的に変更できるでしょうか? たとえば、  VLOOKUP(C5,'シート1'!L10:N40,3) といった関数を、  VLOOKUP(C5,'シート1'!L10:N40,3)        ↓  VLOOKUP(C5,'シート3'!L10:N40,3) といったふうに変更できるとうれしいのです。 よろしくご教示ください。 おねがします。

  • VLOOKUPで他のシートを参照する場合

    数式に間違いがあったので、前回の質問をいったん締め切って、再度投稿いたします。 シートが(1)「値表示」と(2)「データ」の2種類があります。 (2)にはB1:D4、B5:D8、B9:D12というように、セル12個分にそれぞれ独立したデータ表があり、このデータが全部で10個あります。 そして、このデータから任意の値を(1)「値表示」シートに表示したいので、(1)のセルA1に「=VLOOKUP(B1,データ!,B1:D4,2,FALSE)という式を入れます。 これで、(1)のA1(2)のシートのデータ表から任意の値が表示されるのですが、このA1に入力した式をコピーして、A10までそれぞれの表に対応したVLOOKUPの数式を入れたいのですが、普通にコピーするとA2以降に入力される式はデータの参照範囲がA1の範囲から1セル分だけずれたB2:D5となっています。A2が参照する範囲は本来はB5:D8にしたいので、一つずつデータの参照範囲を修正しないとならないのですが、このような場合は、やはり一つずつ修正するしか方法がないのでしょうか。 もっと、素早く参照先を変更できる方法がありましたら教えてください。

  • ExcelのマクロによるVLOOKUPの参照シートの変更について

    ExcelのマクロによるVLOOKUPの参照シートの変更について ブックAのSheet1のセルA1にドロップダウンリストを作成し、アルファベットの"J"、"M"、"A"が選択できるようにしてあります。 ブックAのSheet2のセルB1には、以下の式が入力してあり、別のブック(ブックB)から情報を読み込んでいます。 =VLOOKUP(A1,'¥¥s_g¥欠席¥[ブックB.xls]国語'!$B$4:$V$30,4,FALSE) やりたい事は↓ ブックAのSheet1のセルA1にある、ドロップダウンリストを変更すると、ブックAのSheet2のセルB1にある式(上記式)の参照シート(上記式では「国語」の部分)が変更さえるマクロを作りたいのですが、うまくできません。 ちなみに、ドロップダウンリストの"J"を選択した場合は、ブックBのシート"国語"を参照し、リストの"M"を選択した場合は、ブックBのシート"数学"を参照し、リストの"A"を選択した場合は、ブックBのシート"美術"を参照するようにしたいです。 よろしくお願いします。 また、マクロを使わずして出来るようでしたら、その方法も合わせて教えて下さい。

  • VLOOKUP関数の範囲をセルで指定したいと思っています。

    VLOOKUP関数の範囲をセルで指定したいと思っています。 B1:参照シート名(VLOOKUP関数で使用する範囲があるシート) C2:範囲の開始位置 E2:範囲の終了位置 B3:G3:列番号(B3の値は、B6:B8の範囲で使用する列番号、 D3の値は、D6:D8の範囲で使用する列番号) これらのセルに入力された情報をもとにB6:G8の範囲にVLOOKUP関数を 反映させたいと思っています。 例えば、 B1に参照シート名「2ケタ」 C2にVLOOKUP関数の範囲の開始位置「A5」 E2にVLOOKUP関数の範囲の終了位置「G7」 B3に範囲の列番号「2」がある場合 B6に「=VLOOKUP(A6,'2ケタ'!A5:G7,2,0)の関数を入力。 B2に参照シート名「3ケタ」 C5にVLOOKUP関数の範囲の開始位置「B5」 E2にVLOOKUP関数の範囲の終了位置「H7」 C3に範囲の列番号「3」がある場合 C6に「=VLOOKUP(A6,'3ケタ'!B5:H7,3,0)の関数を入力。 といった感じです。 現在、B6に「=VLOOKUP($A6,INDIRECT($B$1&"!a5:g7"),INDIRECT("$b$3"),0)」と 関数を入力して、VLOOKUP関数の「範囲の参照シート名」と「列番号」の情報は セルから持ってくることができました。 しかし、「a5:g7」という範囲だけは、INDIRECT関数をうまく入れることができません。 どのように関数を入力したら、上手くいくのか、教えていただけないでしょうか。

  • Excel関数のデータ参照について教えて下さい。

    Excel関数のデータ参照について教えて下さい。 営業店の資料を作成していますが、次のような関数はどうするのでしょうか。 A1セルにID,B1に営業店と課を反映する場合で、別シートにあるIDをA1に入力するとB1に対応した 営業店と課が表示されるようには。 (例)  sheet1     A     B 1 100200 東京支店販売課 2 100201 新宿支店営業課   sheet2    A     B 1 ID 営業所担当課 2 100200 東京支店販売課 3 100201 新宿支店営業課 通常はVLOOKUP関数等使用すると思いますが、参照セルを表示せずに、ダイレクトに入力したいのですが。 sheet2のA2のIDをsheet1のA1に入力するとsheet2のB1の表示がsheet1のB1に反映させる方法です。    よろしくお願いします。

  • VLOOKUP関数についての質問です。

    VLOOKUP関数についての質問です。 例えば、シート1に、 A列    B列  C列 番号  品物  送り先 1   ばなな スーパー 2   ミカン 学校 3   イチゴ ケーキ店  あるとします。 VLOOKUP関数を用いて、 シート2に A列    B列 送り先  品物 ・   ・ ・   ・ ・   ・ とそれぞれ入力したいとして、以下のセルも同様の式を使い入力しますが いちいち式を立てて入力していくと大変です。 セルにVLOOKUP関数をコピーして使うにはどうしたらいいですか?? お願いします。

  • VLOOKUP関数を使いたいのですが

    エクセル2002です。  「出荷」という名前のシートと「金額」という名前のシート、2つのシートがあります。  金額シートのA列には、商品の名前(例:りんご)が300行ぐらい入力されていて、B列には、その商品の値段が入力されています。A1には「りんご」B1にはその値段「100円」と入力されているとします。  「出荷」シートには、お客様に渡す領収書を入力してあります。  出荷シートのE10のセルに商品名「りんご」と入力すると、その下のE11のセルに、「金額」シートのB列に入力してある値段「100円」が、VLOOKUP関数で表示されるようにしたいです。  よろしくお願いします。  もし出来ないようであれば、なぜ不可能なのかも教えていただけるとありがたいです。

  • VLOOKUP関数の応用版をご教示下さい。

    VLOOKUP関数において、参照するシートをフレキシブルに選択できる方法を探しております。 「参照」ファイルの「???」シートを参照したいのですが、???=A1セルなのです。(セルA1にシート名が記入されているのです。) A1の内容が変わるとVLOOKUP関数参照するシート名が自動的に変わるように設定したいのです。 下記のように演算式を組んだ場合に、「????」の部分にどのような関数を使用すれば良いのでしょうか? VLOOKUP(F36,[参照.xls]????!$A$1:$X$227,4,FALSE) 補足として、参照ブックは別ファイルですが、常に開いた状態と練っております。(元ファイルと連動してファイルが開かれます。) どなたか宜しくお願い致します。

  • VLOOKUP関数:別シートにある参照範囲が変動する場合

    スポーツクラブで学童会員の名簿を作成しています。 【目的】 VLOOKUP関数を利用して、シート1「名簿」のA列に会員番号を 手入力すると B列に学年、C列に氏名が各々自動入力されるようにしたい。 【設定】 ・シート1を「名簿」とし、  A列を会員番号、B列を学年、C列とD列を結合して氏名としました。 ・シート2を「参照データ」とし、  A列を会員番号、B列を学年、C列とD列(結合を解除)を氏名と  しました。 ・シート2の1行目はタイトル行とし、データが入力されているのは  2行目からです。 ・別シートのデータを参照するため、シート2のデータが入力されて  いる範囲に「参照範囲1」という範囲名をつけました。 【状況】 現在設定している数式は B2=VLOOKUP(A2,参照範囲1,2,FALSE) なのですが、以下の場合は「参照範囲1」で設定した範囲とは 異なる範囲のデータを参照しなければなりません。 ・入会者がいる場合:データを追加するため、行が増える ・退会者がいる場合:データを削除しブランクを解消するため、  行が減る 【質問】 上記状況の場合、VLOOKUP関数に加えてどのような関数を使用すれば 別シートにある参照範囲の変動に対応できるのでしょうか? 会員が増減するたびに、新たに参照範囲を設定し範囲名をつけ直す という作業は避けたいのですが・・・ ご教示いただけますよう、何卒宜しくお願い申し上げます。

専門家に質問してみよう