こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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? とエラー表示が返ってきます。

どのように記述すれば実現できるか、どなたか教えていただけませんでしょうか?

投稿日時 - 2009-09-01 21:34:04

QNo.5255160

すぐに回答ほしいです

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

=INDIRECT("Sheet1!A" & A1)

でいかがでしょう。

投稿日時 - 2009-09-01 22:17:47

お礼

解決しました。
おかげざまで作業がはかどります。

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

投稿日時 - 2009-09-02 22:13:16

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

A2セルには次の式を入力してA5までオートフィルドラッグします。

=INDEX(Sheet1!A$1:D$1,1,ROW(A1))

投稿日時 - 2009-09-02 06:19:13

お礼

ありがとうございます。

INDEX と ROW 関数は馴染みが薄かったので勉強になりました。

投稿日時 - 2009-09-02 22:19:02

ANo.2

INDIRECT関数は揮発性があり、対象外のセルに入力/削除しても計算が働くので多く使う場合は注意が必要です
Sheet2!A2セルに
=INDEX(Sheet1!$A$1:$D$4,$A$1,ROW()-1)

投稿日時 - 2009-09-01 22:54:40

お礼

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

さまざまな実現方法があるのですね。
参考になりました。

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

投稿日時 - 2009-09-02 22:16:41

あなたにオススメの質問