• ベストアンサー

INDIRECT関数 エラーになる

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

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

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

INDIRECT 関数の仕様では、参考 URL にあるとおり、文字列を引数とします。「セル参照」あるいは「セル範囲に付けられている名前」を表す文字列(参照文字列)を引数として指定しますが、代わりにセル参照を指定した場合は、参照元の文字列を関数が受け取ってきます。シート名のみを引数とする方法は、ありません。 ○ =a1 ○ =sheet1!a1 ○ =indirect(a1)       …… A1 セルに「a2」などの有効な参照文字列が記入されている場合のみ ○ =indirect("a1")      ……「=a1」と同じ意味 × =indirect(sheet1)     ……エラー「#NAME?」 × =indirect("sheet1")    ……シート名を含む参照文字列が未完成のため、エラー「#REF!」 ○ =indirect("sheet1!"&a1)  …… Sheet2 の A1 セルに「a2」などの有効な参照文字列が記入されている場合のみ ○ =indirect("sheet1!"&"a1") ……「=sheet1!a1」と同じ意味 ○ =indirect("sheet1!a1")   ……「=sheet1!a1」と同じ意味 ○ =a1!a1           …… Excel のサービス機能により「a1」が「'a1'」に自動変換されるため、「a1」という名前のシートが存在する場合のみオッケー △ =a1&"!"&a1         ……一応エラーにはならないが、期待とは全く異なる結果(結合された文字列)を返す △ =INDIRECT(A1)&"!"&A1    …… A1 セルに「a2」などの有効な参照文字列が記入されている場合のみ一応エラーにはならないが、期待とは全く異なる結果(結合された文字列)を返す △ =INDIRECT("A1")&"!"&A1   ……一応エラーにはならないが、期待とは全く異なる結果(結合された文字列)を返す × =INDIRECT("A1!")&A1    ……シート名を含む参照文字列が未完成のため、エラー「#REF!」 × =INDIRECT(A1)!A1      ……「&」と「"」がないため、数式の入力がそもそも受け付けられない × =sheet1!indirect("a1")   ……数式の入力がそもそも受け付けられない ○ =indirect(a1&"!"&a1)    …… A1 セルに「a2」などの有効な参照文字列が記入されており、かつ、「a2」などの名前のシートが存在する場合のみ ○ =indirect(b1&"!"&a1)    …… B1 セルに「sheet1」など、A1 セルに「a2」などの有効な参照文字列が記入されている場合のみ ○ =indirect(a1&"!a1")    …… A1 セルに「sheet1」などの有効な参照文字列が記入されている場合のみ × =indirect(合計)     ……エラー「#NAME?」または「#REF!」 ○ =indirect("合計")     ……「合計」という名前が付けられたセルが存在する場合のみ INDIRECT では、正しいセル参照になる文字列でありさえすれば、自由に文字列をつなげて作ることができます。 ●=indirect(c1&d1) ●=indirect("sheet1!"&c1&d1) ●=indirect(a1&b1&"!e1") ●=indirect(a1&"!"&c1) ●=indirect("合計")

参考URL:
http://office.microsoft.com/ja-jp/excel-help/HP005209139.aspx
tzennlfagx
質問者

お礼

ありがとうございました。

その他の回答 (2)

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

>何が間違っていますか? INDIRECT関数の引数の記述に誤りがあります。 =INDIRECT("Sheet1!A1") で試してください。 =INDIRECT(A1&"!A1") とすればエラーにならないはずです。

tzennlfagx
質問者

お礼

ありがとうございました。

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.1

「=INDIRECT(A1)!A1」  =INDIRECT(Sheet1)!Sheet1 これじゃエラーになるでしょ。  INDIRECT(A1&"!A1") これで解決します。

tzennlfagx
質問者

お礼

ありがとうございました。

関連するQ&A