• ベストアンサー

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!エラーの原因を教えていただけないでしょうか。 よろしくお願いします。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.4

>目的は、A2セルにSheet2!B1:C20の範囲を示す文字列を入れて、=INDIRECT("VLOOKUP(A1,"&A2&",2,FALSE)”)としたいと思っています。 関数の使い方に誤りはあります。 A2には Sheet2!B1:C20 と言う文字列が入力されているとき =INDIRECT("VLOOKUP(A1,"&A2&",2,FALSE)”)      ↓ =VLOOKUP(A1,INDIRECT(A2),2,FALSE) INDIRECT関数の第1引数は単一セルまたは連続するセル範囲やデータ範囲の名前を示す文字列を指定します。 第2引数は省略可能でセルのアドレスの表記方法を指定します。 第1引数を数式で指定するときはその数式の結果が文字列でありデータの範囲を示すものでなければなりません。 従って、提示の数式はデータが格納された範囲(セル範囲)を示す文字列ではないので「#REF!」が返ります。

その他の回答 (3)

  • Chiquilin
  • ベストアンサー率30% (93/304)
回答No.3

> で囲むと#REF!エラーになります。 でしょうね。「"VLOOKUP(A1,B1:C20,2,FALSE)"」という文字列は セルの参照にはなっていません。単なる文字です。 どうしても INDIRECTを使いたいのなら =VLOOKUP(A1,INDIRECT(A2),2,FALSE)

  • msMike
  • ベストアンサー率20% (363/1769)
回答No.2

》 #REF!エラーの原因を教えていただけないでしょうか INDIRECT関数の書式は INDIRECT(参照文字列,[参照形式]) であることはご承知のとおり。 此処で、参照文字列は、A1 形式、R1C1 形式の参照、参照として定義されている名前が入力されているセルへの参照、または文字列としてのセルへの参照になっていなければなりません。 "VLOOKUP(A1,B1:C20,2,FALSE)”は、文字列ではあるが、INDIRECT関数の書式としての「参照文字列」に該当しないから、エラー値 #REF! が返されているのです。

  • Proof4
  • ベストアンサー率78% (151/192)
回答No.1

VLOOKUP関数の中にINDIRCET関数を入れれば良いのではないでしょうか。 =VLOOKUP(A1,INDIRECT("Sheet2!"&A2),2,FALSE)

関連するQ&A

  • excelで文字列を検索する関数を教えてください。

    いつもお世話になります。 エクセルの関数で、シートAのセルA1に入っている文字列をシートBのC列から探し出し、同じ文字列があればTrueをなければFalseを返す関数を教えてください。 わからないながらも色々調べてみたのですが、検索にはVLOOKUPがよく使われているようですが、シートBのC列は、データの並べ替えができないので、VLOOKUPは、使えないのです。 よろしくお願いします。

  • エクセルの関数

    =VLOOKUP(A1,B10:C100,2,FALSE) の関数において条件により参照するセル、セルの範囲を変更したいです。 参照するセル A1 や B10:C100 を変数に置き換えることはできますか? つまり A1を参照する場合やその他のセル(例えばA2)を参照したり B10:C100の範囲を例えばB101:C200に変更させたいです。

  • ExcelでのVLOOKUP関数について

    キー1を1000倍したうえで完全一致のVLOOKUP関数を使うと#N/Aエラーが発生します。 表示上は同じように見えますが内部的に異なる値となっているのでしょうか? 試しにエラー行に対して、キーとターゲットとなる当該セルを「=」でつないで確認しても「TRUE」となります。 添付画像は、 検索先としてA列に基準キーを130.168~130.192(step 0.001)で各行へ入力し、B列はA列を1000倍、C列はB列をROUND関数で整数値に丸めたものをキーとしました。 D列にVLOOKUPで参照する値を入力し、E列以降で以下の異なるパターンで値を参照しています。 (1)【E・F列】 ・E列に整数値をキーとして130168~130192(step 1)で入力。 ・E列をキーとしてB~D列のVLOOKUP関数としています。   『=VLOOKUP(E3,B:D,3,FALSE)』 (2)【G・H列】 ・G列にE列/100をキーとして計算。 ・G列をキーとしてA~D列のVLOOKUP関数としています。   『=VLOOKUP(G3,A:D,4,FALSE)』 (3)【I列】 ・E列をキーとしてC~D列のVLOOKUP関数としています。   『=VLOOKUP(E3,C:D,2,FALSE)』 シートを複製し、キーの入力範囲を0.001~0.025(E列は1~25)にした場合はエラーがでませんでした。 その他の確認としてはTEXT、JIS、ASCなどを組み合わせて文字列としたキー同士のVLOOKUPではエラーにならず値を参照できています。

  • 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

    すみませんが教えてください! E列に下のような関数を入れたところ正しく表示されませんでした・・・ どうぞよろしくお願いします。 A列(数字・空白を含む)が 1 の場合”◎” A列が1以外の場合は B列(別シートから参照のVLOOKUP関数が入っている)と C列(別シートから参照ののVLOOKUP関数が入っている) を足した数字が D列(別シートから参照ののVLOOKUP関数が入っている) が同じなら ”OK” 違うなら ”NG" と表示させたいので =IF(A1=1,"◎",IF(D181=(B181+C181),"OK","NG")) としてみましたが"◎"が表示される表示は正しいのですが "OK" "NG"が正しく表示されません。 これに加えていずれのセルにも空白が存在するのでエラーを出さないようにしたいです。 よろしくおねがいします!!

  • こんにちは。VLOOKUP関数の引数で「範囲」を選択するとき、他のパス

    こんにちは。VLOOKUP関数の引数で「範囲」を選択するとき、他のパスにあるファイルの参照の仕方についてお尋ねします。 例えば、VLOOKUP関数を使って以下のパスにあるファイルを参照するとします。 ▼パス        :C:\作業 ▼フォルダ名     :作業 ▼ファイル名     :参照先.xls ▼参照するシート名:シート1 関数を入力して保存して再び開くと、このようになります。 =VLOOKUP(A1,'C:\作業\ [参照先.xls]シート1'!$A$2:$F$10,3,FALSE) このパス・ファイル名・シート名をどこかのセルに入力しておき、参照先のフォルダが変わったとしても「パス」を入力するセルの値を変えることで、可変的に参照できるようにしたいと思っています。 例えばA10のセルで、範囲の引数である文字列を <A10のセルの値>'C:\作業\ [参照先.xls]シート1'!$A$2:$F$10 というようにつなげて作成し、 =VLOOKUP(A1,A10,3,FALSE) とやってみましたが参照できるわけもなく、うまい方法はないかなと悩み中です。 わかる方からの回答をお待ちしています。

  • エクセル 画像をVLOOKUPみたいに出したいです

    https://www.forguncy.com/blog/20170818_vlookup_picture を参考に INDEXとMATCH関数を使用し作成しているのですが、、どうもうまくいきません。 シート2に、 A列・・品名1 B列・・品名2 C列・・画像 D列・・金額 シート4にVLOOKUPで、セルA2に品名1、セルB2に品名2、セルD2に金額、は完璧に出るのですが、セルC3に画像だけどうも出ません。 名前の定義で”写真”と名前を付け、参照範囲に以下をやりました。 =INDEX(Sheet2!$A$2:$A$10,MATCH(Sheet4!$A$2,Sheet2!$C$2:$C$10,0)) セルC3には、#N/Aとでます。 初心者です。難しいことはできません。 ご教授お願いします。

  • エクセル VLOOKUP について

    エクセルのVLOOKUP関数について質問です。 VLOOKUPでは文字列検索で、指定の値(文字列)を含むという検索値はできないのでしょうか? 現在A列に検索したいワードを含む文章が入っており、ワードを含む列の2番目のセル(Bの列)を 別シートへ呼び出そうとしたのですが、エラーになってしまします。 例えば、「りんご」という言葉を含む文章、含まない文章がある列で、検索値を「りんご」にして VLOOKUP関数を使用する事はできないのでしょうか? エラーになってしまうので、別シートにりんごと入力したセルを作成し、セル番号で指定してみたり、 書式設定を確認したりとしたのですが、成功しません。 もちろんFALSE(0)でもTRUE(1)でも試したのですが、できませんでした。 無理ですか?どこか自分が間違っていそうな点をご指摘いただけませんでしょうか?

  • エクセル Vlookup 範囲指定について

    よろしくお願いします Vlookupの範囲指定を, パスや,ファイル名,シート名により作成した文字列で指定したいと思っています。 これにより,年度末の処理が, シート内のセルを一部変更するだけで毎年対応可能になると思っています。 例えば, 平成24年の4月のツヨさんのB2セルの数字を参照したいときに, セルC3 c:\test\  (ディレクトリ1) セルC4 H24      (ディレクトリ2)←年度で変わります セルC5 \kaikei\   (ディレクトリ3) セルC6 04月.xlsx  (ファイル名)←月で変わります セルC7 ツヨ      (シート名)←人で変わります セルC8 !$A$1:$B$5 (検索範囲) という前提の元, セルC9 ="'" & C3 & C4 & C5 &"["&C6&"]'" & C7& C8 (表示は 'c:\test\H24\kaikei\[04月.xlsx]'ツヨ!$A$1:$B$5) とします。 ここで次の2式を記述します。 セルC20 =VLOOKUP(2,'C:\test\H24\kaikei\[04月.xlsx]ツヨ'!$A$1:$B$5,2,FALSE) セルC21 =VLOOKUP(2,C9,2,FALSE) セルC20は,正しく参照されます。 セルC21は,#N/Aエラーです。 なんとか セルC21のように指定したいと思っているのですが, 良い方法が無いでしょうか? ご教授, よろしくお願いします

  • 【エクセル】 行番号を変数とする方法について

    下表のようなデータがあったとします。 A B C D 1 2 TEST 3 4 5 合計 100 6 <目的>ある文字列が含まれる行番号以下の範囲を指定して、VLOOKUP関数を使用。       ある文字列が含まれるセル行番号は、毎回異なる。 <具体例> 1) MATCH関数で、「TEST」という文字が含まれる行番号を取得     この場合「2」 2) VLOOKUP関数で VLOOKUP("合計",A2:D5,2false) というように   MATCH関数で得た行番号を他の関数に組み込みたいです。     どなたか、良い方法を教えて頂けないでしょうか? よろしくお願い致します。

専門家に質問してみよう