- ベストアンサー
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!エラーの原因を教えていただけないでしょうか。 よろしくお願いします。
- みんなの回答 (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% (94/306)
> で囲むと#REF!エラーになります。 でしょうね。「"VLOOKUP(A1,B1:C20,2,FALSE)"」という文字列は セルの参照にはなっていません。単なる文字です。 どうしても INDIRECTを使いたいのなら =VLOOKUP(A1,INDIRECT(A2),2,FALSE)
- msMike
- ベストアンサー率20% (364/1804)
》 #REF!エラーの原因を教えていただけないでしょうか INDIRECT関数の書式は INDIRECT(参照文字列,[参照形式]) であることはご承知のとおり。 此処で、参照文字列は、A1 形式、R1C1 形式の参照、参照として定義されている名前が入力されているセルへの参照、または文字列としてのセルへの参照になっていなければなりません。 "VLOOKUP(A1,B1:C20,2,FALSE)”は、文字列ではあるが、INDIRECT関数の書式としての「参照文字列」に該当しないから、エラー値 #REF! が返されているのです。
- Proof4
- ベストアンサー率78% (151/192)
VLOOKUP関数の中にINDIRCET関数を入れれば良いのではないでしょうか。 =VLOOKUP(A1,INDIRECT("Sheet2!"&A2),2,FALSE)