• ベストアンサー
  • 困ってます

EXCELのINDIRECT関数について

こんにちは。 現在仕事で他の方が昔作ったEXCELを見ているのですが、シートが2枚(sheet1, sheet2)あって次のような関数が使われてます。 -- <sheet1> 【セルD15】SGP (←入力) 【セルD16】150 (←入力) 【セルD17】=VLOOKUP(D16,INDIRECT(D15),2) (←関数) (セルD17には、165.2という計算結果が表示されています) <sheet2> SGP 呼径 外径 A mm 6 10.5 8 13.5 10 17.2 15 21.7 20 27.2 25 34.0 32 42.7 40 48.6 50 60.5 65 76.3 80 89.1 90 101.6 100 114.3 125 139.8 150 165.2 175 190.7 200 216.3 (sheet2には、同様の表が上下左右に並んでいます) -- ここで、セルD17に入力されている関数について、VLOOKUPはたまに使うんですが、INDIRECTがサッパリ謎で困っております。 何故こんな簡単な式で、別シートの表の一部を参照できるのか?(しかもシート名の指定もないし・・)という点、どなたか教えていただけないでしょうか? よろしくお願いします!

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数327
  • ありがとう数1

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

  • ベストアンサー
  • 回答No.2

No.1です。補足です。 「挿入」→「名前」→「定義」です。 すみません。 そして、回答してから気が付きました。 「SGP」が何を表すかわかりませんが、 例えばsheet2には他にも「ABC」の表とか「DEF」の表とかありませんか? で、「ABC」の表を参照させたい時に【セルD15】に 「ABC」と入力するのではないでしょうか??

共感・感謝の気持ちを伝えよう!

質問者からのお礼

さっそくのご回答ありがとうございました! ありましたありました、名前の定義に! こういう使い方もあるんですね! 助かりました! ありがとうございます!!

関連するQ&A

  • Excel INDIRECT関数の使い方が分からない

    表という名前のSheetがあります。  A 4 1 5 2  : のように、表SheetのA4から下に連番で、    1~400まで数字がふってあります。 式という名前のSheetが式~式(399)まで、400Sheetあります。 400Sheetある式というSheetには表があり、入力されて文字は違いますが、表の配置は全く同じです。 式  のD6セルには 1。Q9セルには「あいうえお」と入力、 式(1)のD6セルには 2 Q9セルには「かきくけこ」と入力されています。 式Sheetが400枚あるので、D6セルには、400まで数字が連番で入力されています。 表SheetのA4セルが、もし空という前提で、1と入力した場合、式~式(399)までのSheetの中から一致した数字が合った場合、そのSheetのQ9のセルの値を返しなさい‥と関数を入れたいと思い、 「INDIRECT」関数を使用しました。 =INDIRECT("式(" & A4 & ")'!D6"  しかし、何度入力しても、REFと出てしまいます。 この関数を使用するのは初めてで、戸惑っています。 どうかご教授ください。

  • エクセルのindirectの使い方について

    今、セルに「=VLOOKUP($C$3,'1A'!$A$6:$AA$103,C$4,FALSE)」 と入っているとします。 シート名が「1A」というところを見ています。 シートが1A~6Aまであるので上記「」と同じシートに A1~A6のセルに1,2,3,4,5,6と入力してindirect関数を使って =VLOOKUP($C$3,'1A'!$A$6:$AA$103,C$4,FALSE)の「'1A'!」の部分を 修正したく思っています。 どのようにしたら良いのですか?

  • Excel INDIRECT

    お世話になります。 INDIRECT関数で、 =INDIRECT("A1")は、=A1と同じように、A1セルを参照しますが、 =VLOOKUP(A1,B1:C19,2,FALSE)を、==INDIRECT("VLOOKUP(A1,B1:C20,2,FALSE)”)で囲むと#REF!エラーになります。 目的は、A2セルにSheet2!B1:C20の範囲を示す文字列を入れて、=INDIRECT("VLOOKUP(A1,"&A2&",2,FALSE)”)としたいと思っています。 #REF!エラーの原因を教えていただけないでしょうか。 よろしくお願いします。

その他の回答 (1)

  • 回答No.1

初めまして。 恐らくですが・・ 「挿入」→「名前」をクリックすると 「SGP」という名前で範囲が指定されているのではないでしょうか? ただ、それであれば =VLOOKUP(D16,SGP,2) でもOKですので・・作者の意図が今一つわかりませんね・・

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • vlookupに、Indirect と Match 関数を組み合わせる

    vlookup関数で、検索値にSheet1(Book1)から、範囲は、Sheet2(Book1)のセルにある名前のついているSheet1(Book2), そして、列番号は、指定した名前とマッチするSheet1(Book2)の列番号から、導き出そうとしています。 ところが、Matchで指定した範囲は、Indirect内の関数として認識されないようで、結果が得られません。 たとえば、 Book1のA1~E1にタイトルが入っています。(Index, Title, Book, Author, Frequency) Book2には、 シート1: InputName シート2: Output シート2に以下の関数を入れてみましたが、うまくいきません。 ちなみに、VLOOKUPの列番号を Match関数の代わりに、5 とすると、結果オーライですが、Book1 の列順が変わっていることがあるので、Matchを使ってエラーを避けたいのですが、以下の関数のどこを直すべきでしょうか? =IF(ISNA(VLOOKUP(C2,INDIRECT("'["&InputName!$A$2&"]"& InputName!$B$2&"'!"&"$A$2:$E$1400"),MATCH("Frequency",$A$2:$E$2,0),FALSE)),0,VLOOKUP(C2,INDIRECT("'["&InputName!$A$2&"]"& InputName!$B$2&"'!"&"$A$2:$E$1400"),MATCH("Frequency",$A$2:$E$2,0),FALSE)) よろしくお願いします。

  • エクセル関数INDIRECTについて

    エクセル関数 セルの参照についての質問です。 ひとつのBookの中に、AとBのシートがあります。 Aにデーターを入力し、Bに必要な部分だけセルの参照(INDIRECT)関数を使ってデーターを反映させていたのですが、Bのシートだけを別のBookとして保存した場合、INDIRECTの関数を使った部分がエラーの表示になってしまいます。(よく考えればAを参照しているので当たり前なのですが。。。) Bのシートを別のBookに保存しても参照しているデーターが消えない方法(関数)はあるのでしょうか? ご存知の方がいらっしゃいましたらご教授下さい。 (説明が下手ですみません)

  • INDIRECT関数とVLOOKUP関数について

    ざっくりとしたものに作り直しておりますが、図のようなExcelのシートを作成しています。 「科目」の欄にはINDIRECT関数を利用したリストを作成しており、 E列のセルに、科目で選択したシート分のドロップダウンリストが表示されるようになっています。 今回、頭を悩ませているのは、B列のセルに「業者名」を入力するのですが、 INDIRECT関数を利用している各シートには担当業者が入力されているので、 E列にリストから商品を選択したら、担当業者が自動的に入力されるような関数ができないものか、 というものです。 ちなみに、 =IF($M$1="生活用品",VLOOKUP($E5,生活用品一覧!$B$2:$D$255,2,FALSE),"") という関数を試しに入れてみたら、当たり前ですが、「科目」が”生活用品”となっているときだけ 対応できるのですが、科目が変わってしまったら使えません。 検索の仕方が悪いのか、そもそもそんなことはできないのか。 どなたか教えて頂けたら大変助かります。 宜しくお願い申し上げます。

  • INDIRECT関数 エラーになる

    Sheet1とSheet2があり、 Sheet1のA1には「tset」という値が入っています。 そこで、Sheet2の任意のセルに Sheet1のA1の値を入れたいのですが 「=Sheet1!A1」なら可能なのに Sheet2のA1に「Sheet1」と入力し Sheet2のA2に「=INDIRECT(A1)!A1」とするとエラーになります。 このような場合は、INDIRECT関数を使えばいいと知ったのですが 何が間違っていますか?

  • 【Excel 関数】 INDIRECT関数のオートフィルについて

    INDIRECT関数のオートフィルについて、昨日より色々調べましたが 解決できませんでしたので質問させて頂きます。 宜しくお願いします。 【状況】 ・Bookの構成は 一番左に「集計」シート、その横に「Sheet1」「Sheet2」・・・  と続いており、それぞれ数字のデータが入っています。 ・「集計」シートには、  「A1」セルに シート名を入力する欄、  「B1」セルに「=INDIRECT($A$1&"!B1")」  とデータを反映させる式が入っています。 この状態で、「B1」セルを、 横方向(横)にオートフィルすると ・・・ 「C1」「D1」「E1」 縦方向(下)にオートフィルすると ・・・ 「B2」「B3」「B4」 とそれぞれのデータを反映させるには、元の 「=INDIRECT($A$1&"!B1")」 をどのように変えればよろしいでしょうか? ご教示頂けましたら幸いです。 宜しくお願い致します。

  • INDIRECT関数の代入について

    Sheet 1 に下記のような表があるとします。 [ Sheet 1 ]   A   B   C   D 1 東京  南  OK  コーヒー 2 神奈川 北  NG  ジュース 3 埼玉  東  OK  ウーロン茶 4 千葉  東  NG  牛乳 Sheet 2 以降を個別帳票とし、Sheet 2 には Sheet 1 の行 1 を参照して表示し たいと思っています。 [ Sheet 2 ]     A 1  2 =Sheet1!A1 3 =Sheet1!B1 4 =Sheet1!C1 5 =Sheet1!D1 [ Sheet 2 ]     A 1 =RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND(" ",CELL("filename",A1)))-1 2 =Sheet1!A1 3 =Sheet1!B1 4 =Sheet1!C1 5 =Sheet1!D1 個別帳票が多いので、参照する行をシート名の末尾から取得した数値に1をマイ ナスしたものをセルA1に表示させ、 [ Sheet 2 ]     A 1 =RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND(" ",CELL("filename",A1)))-1 2 =Sheet1!A1 3 =Sheet1!B1 4 =Sheet1!C1 5 =Sheet1!D1 セル A2 の「=Sheet1!A1」の"1" を INDIRECT関数でセル A1 の数値である "1" を代入したくて、 =Sheet1!A(INDIRECT("A1") と記述してみましたが、案の定うまくいかず #NAME? とエラー表示が返ってきます。 どのように記述すれば実現できるか、どなたか教えていただけませんでしょうか?

  • エクセル関数(INDIRECT)について

    エクセル関数についてお教え下さい。 現在データ整理を行っているのですが、以下について少し困っています。 【現状認識レベルについて】 同じフォーマットで作成した複数シートについて、 「まとめ用のシート」上で、 上記複数シートの特定セル部分(例えば「C10」)を一覧整理する場合、 =INDIRECT(● &"!C10") ●→シート名  を使うことができるかと思います。 この場合、●については、複数シートの参照が可能なのですが、 「セル部分」については参照ができません。 ※用語が不適切かもしれません。つまり、複数シートの「C10」のみ整理できる・・・ 【質問事項】 ここで、おたずねしたいことですが、 特定セルのみではなく、複数のセルも簡単に纏めることができないか? ということです。 すなわち、 上記で言えば、「C10」だけではなく、 「D10」「E10」「F10」「G10」「H10」「I10」「J10」・・・ と一括して整理できると、すごく助かるのです。 データが結構貯まっていまして、 ちまちま、 INDIRECT(● &"!C10") INDIRECT(● &"!D10") INDIRECT(● &"!E10")・・・ と入力するのに苦労しています(汗) いろいろネットで検索していたのですが、 該当するものが見つかりません。探しが甘いのかもしれませんが。 お手数ですが、ご教示頂ければ幸いです。 該当するHP等でも構いません。 以上、よろしくお願い致します。

  • ExcelでのINDIRECT関数の使い方について

    Excelの関数についてお伺いしたいと思います。現在、図のような表があり、A2, C2, E2を合計したいと思っております。条件として; 1) 列を頻繁に挿入するものの、常にA2, C2, E2を合計したい(セルがずれてしまっては困る) 2) B列やD列には他の数値が入るため(列が連続しない)、A2:E2ということができない これを解決するためにA8に"A2,C2,E2"と入力し、A9に=SUM(INDIRECT(A8)と記入したのですが、#REF!というエラーになってしまいます。この場合、どのようにIndirect関数を使えばよいのでしょうか。またそもそもIndirect以外の有効な関数を使うべきなのでしょうか。教えていただきたく、よろしくお願い致します。

  • 関数について

    二つのシートがあります。 一つのシートには、二つの表があり名前を定義しています。 もう一方のシートでVlookupとindirectを使い検索できるようにしたいのです。 シート(1) A B C D 表1 101 名前 果物 表2 102 名前 野菜 ‥ シート(2) 表1           表2 A B C D E F 101 鈴木 バナナ 101 斉藤 トマト 102 佐藤 リンゴ 102 吉田 ピーマン 103 山口 ミカン 103 三浦 きゅうり 104 山田 マンゴー 104 加藤 大根 シート(2)には名前定義をしています。 名前、表1は=シート名!A1(101)~C4(マンゴー)です。 表2は=シート名!D1(101)~F4(大根)です。 シート(1)のA1、B1に入力をすると自動的にシート(2)の二つの表を切り替えてみにいくようにしたいのです。 シート(1)のC1には、=vlookup(B1,indirect(A1),2,0) D1には、=vlookup(B1,indirect(A1),3,0) と入力していますが、N#Aとなります。 困っています。どうか よろしくお願いします。

  • INDIRECT関数で返り値が0になるのですが。

    先程ここで丁寧なご回答のおかげで下記のINDIRECT関数でF5のファイルを開くと目的のセルA1、B5、・・・と複数のセルが参照(自動入力)できるようになったのですが、実際のファイルでやってみると全ての参照セルの返り値が0となってしまうのですが。 複数のファイル名の複数のセル参照がテストではうまく行ったのですが。 =INDIRECT("'[" & $F5 &"]Sheet1'!$A$1") 参照ファイル名とセルの指定は、ファイルの開くタイミングで#REF!が次々と0に変わっていくので、式は間違っていないと思うのですが。 参照が接合セルになっていたので、それを戻したり、数字、文字も試してみたのですが、どうしても0になってしまいます。 テストでうまくいったので既に質問を締め切ってしまいましたので、どなたかお助け下さい。

専門家に質問してみよう