関数式内で参照するシート名をセルで代用したい

このQ&Aのポイント
  • 関数式内でシート名をセルで代用し、個々人の目標達成状況をまとめたシートを作成する方法について説明します。
  • シート名に個々人の名前を代入するためのユーザー関数についても考えましたが、実装方法がわかりません。
  • 代わりに、名簿表から個々人の名前を取得して目標達成状況を引っ張る方法を提案します。
回答を見る
  • ベストアンサー

関数式内で参照するシート名をセルで代用したい

失礼します。 最終ゴールは、シート名にもなっている、バラバラに記入された個々人の目標達成状況を 班ごとに1つのシートにまとめて一目瞭然としたいのです。 この時に、参照するシートからデータを引っ張ることになりますが、 そこで困っていることが、シート名にもなっている個々人の名前の代わりに、 あらかじめ名前を順番に入力したセルを用いたいのです。 しかし、この希望に合致する関数の存在を知りません。 また、どのようなユーザー関数を作ればいいかもわかりません。 そこで、私なりにVLOOKUP関数を用いてサンプルを作り、画像添付いたしましたので、 このサンプルを通して妙案を教えていただけましたら幸いです。 ちなみに第一希望は上述の通りなのですが、第二希望もあります。  (1)一方で、名簿表を作り、番号を割り振る  (2)この番号をVLOOKUP関数の検索値とし、個々人名を名簿表から、    個々人の目標達成状況をその個々人のシートから引っ張ってくる  (3)他方で、そのシートの名を個人名にできるようなユーザー関数を作って入力する    (それぞれの表の特定のセルに番号を入力すれば、その番号を振った個々人の名前を引っ張ってそれをシート名にするような関数) という方法も考えたのですが、(3)がどうしても作れません。

noname#138471
noname#138471

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

C5=VLOOKUP($C5,INDIRECT($B5&"!$B$2:$I$2"),C$4,FALSE) で下方にコピー またはシート名"ボブ"の$B$2:$I$2の範囲に「挿入」「名前」「定義」で"ボブ1"と名前をつけて C5=VLOOKUP($C5,INDIRECT($B5&1),C$4,FALSE) でも可能

noname#138471
質問者

お礼

再びお答えいただくには時機を逸しておりました。申し訳ございません。 今回の質問に対してのお答えでありますから、100点満点でございます。ありがとうございました。 関連して質問したい内容は、急を要する際に別に質問させていただくことにいたします。

noname#138471
質問者

補足

ご回答、誠にありがとうございました。 そして、返事が遅くなりまして申し訳ありませんでした。 遅くなりました理由ですが(言い訳になってしまうのですが)、大きく2つあります。 1つ目は、どうしてダブルクオーテーションマークや&を用いるのか等、INDIRECT関数について分からないことが多く、十分に理解したうえで今後使っていきたい、ということがあります。 2つ目は、他のエクセル表とリンクができることを知った今、最終ゴールを、いっそのこと「ボブ」とか「トム」と名づけたリンク先ファイル名を作り、そのデータを1つのシートで見られるようなエクセルファイルを作成するところに設定しなおそうか、と考えているからです。 ただ2つ目は、INDIRECT関数でリンク先ファイルを参照するような関数式の作り方が分かりませんので、中継用のシートを作り、そのシート名を「ボブ」「トム」などにして、教えていただいたINDIRECT関数を用いるという代替的な方法もあるわけですが、エクセルファイルの容量がただでさえ1.5MBを超えるものが1.8MBくらいになり、重たくなるので困っています。

関連するQ&A

  • EXCEL LOOKUP関数で別シートをセルから参照したい

    シート:集計表・4月・5月・6月・・・・3月 (4月~3月までは売上表が入っていて、表の形式はまったく同じです。) 集計表のシートにおいて、 A1にシート名を入力することによって、そのシートを使った範囲を取得したいと思ってます。 B2に =vlookup(B1,'A1'!A:B,2,0) この場合、'A1'! は有効しませんが、何かの関数を使ってこれと同じ結果を得たいと考えています。 いろいろ検索しましたが、(検索の仕方も悪いかもしれません。) VLOOKUP関数を使って複数列を範囲としたいので、よく出てくるINDIRECT関数はセル番地を指定する以上、無理だと判断しました・・・。 よろしくお願いします。

  • excel2007 vlookup関数 シート参照

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

  • 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) といったふうに変更できるとうれしいのです。 よろしくご教示ください。 おねがします。

  • エクセルで参照する別シート名をセルに入力したい

    エクセルで参照する別シート名をセルに入力したいです。 (1) sheet2とsheet3にそれぞれA1:B10の表があります。    A列には氏名がB列には数値が入力してあります。    (同じ表で月度が違います。) (2) vlookup関数を使ってsheet1のA列に氏名を入力して対応する数値を    B列に求めたいです。 (3) この時、sheet1のC1に「sheet2」「sheet3」と入力することで    参照するシートを変えたいのですが、方法が解りません。 そもそも可能かどうかも解らず、悩んでいます。 ご教授お願いいたします。   

  • EXCELの関数:2つの条件から1つの値をひっぱってきたいんですが・・・

    EXCELの関数の使い方を教えてください。 ・Sheet2に元になる名簿(名前、ニックネーム、登録番号)が一覧になったものがあります。 ・Sheet1に、名前かニックネームのどちらかを入力したら、その人の登録番号が自動的に表示されるようにしたいんです。 ・元の名簿にのってない人は、未登録だとわかるように空欄にするか、*マークをつけたいです。 例えば、Sheet2の名簿のセルB2「山田花子」セルC2「はな」セルD2「No.32」とあって、新しいリストを作るSheet1のセルB2に「山田花子」もしくは、「はな」のどちらかを入力すれば、C2に「No.32」とひっぱってくるようにしたいんです。。。 VLOOKUP関数を使って頑張ってみてるんですけど、 2つの条件のうちのどちらかに一致すれば・・・ ってゆうのを作るにはどうしたらいいのかで固まってしまいました。 何かほかの関数と組み合わせたらいいんだろうと思うのですが、まったくわからないので、助けていただけませんか? よろしくおねがいします。

  • 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関数をうまく入れることができません。 どのように関数を入力したら、上手くいくのか、教えていただけないでしょうか。

  • エクセルでシート名をセルに入力しておき、そのセルの内容を使ってシートを参照したいのですが

    タイトルのとおりです。 シートは1~31日で1ヶ月分作りました。 まとめ表は、32枚目のシートに作ります。 32枚目のシートのセルに SUM('1日'!A1:A5) SUM('2日'!A1:A5) ・ ・ ・ と入力するよりも、1日、2日というシート名の 部分を32枚目のシートのA1~A31までに見出し?としてセルに文字を入力しておき、 それを関数に利用したいのですが、どのようにしたらいいのでしょうか?

  • エクセル シート名を参照する関数は?

    エクセルで、売上を管理しているファイルがあります。 4~3月までの各月ごとのシートに、取引先ごとの売上額・仕入額・原価率・担当者名etcが1行ずつ入力されてあります。 そして、担当者別シートで担当者ごとの取引先データをLOOKUP関数やINDEX関数を使って抽出・合計し、グラフ化して管理しています。 ↓こんな状態です。(合計額の表)    A   B  C  D  E F G 4月 50000 40000 80% ・・・・・ 5月 6月 今の状態では、5月になればA~Gまでの4月の列をコピペして LOOOKUP関数等で参照しているシート名「4月」を「5月」にひとつずつ入力しなおしています。 これが結構面倒なので、 セルに「5月」と入力したら、5月のシートを参照しにいく、 セルに「6月」と入力したら、6月のシートを参照しにいく・・・ というように作り直したいのですが、 このような、シート名を参照する関数はあるのでしょうか?

  • シート名をセルに入力しこれを使って別ブックを参照

    Excel2010を使用しています。 別のブックのあるシート内にある表からデータを取ってくる方法を教えて下さい。 ****前置き**** 例えば YYY.xlsx と ZZZ.xlsx という2つのブックがあるとします。 YYY.xlsxの内容 H1、H2、・・・、H9という名前の9つのシートがあるとします。 各シートには同じフォーマットの表があり、セルD10:P12に値が入っています。 ZZZ.xlsxの内容 1月 という名前のシートがあるとします。 シート1月の中に セルA1には H1 セルA2には H2  : セルA9には H9 という値が入っています。 ********本題******** ブック ZZZ.xlsx 内のシート 1月 のセルE1 に ブック YYY.xlsx 内のシートH1のセルD10の値を表示させる方法を教えて下さい。 ただし、シートの指定は、シート 1月 のセルA1内の値と一致するのシート名のセルD10の値を表示させたいと考えています。 ですので、例えば、セル A1 に H5 という値が入っていれば、セルE1には YYY.xlsx内のシートH5のセルD10を表示させるようにしたいです。 VLOOKUP関数とINDIRECT関数を使えばできるのでは?と思っていろいろ試しているのですが、上手くいかないのが現状です。 どうかよろしくお願いします。

  • エクセル関数 シート名をセルに反映させたい

    シート名をセルに反映させたいのですが,以下のようなことができるでしょうか。 =CELL("filename",A1)を使えば,シート名を反映させられるようであることは,ネットで調べて分かったのですが,たとえば,シート2を作成した時に,シート1のA2のセルのところに,自動でシート2の名前を入力できるような関数はありますか?その後,シート3を作成した時に,同様にシート1のA3のところに自動で入力したいのですが,そのようなことが可能でしょうか。 説明が下手で申し訳ないのですが…

専門家に質問してみよう