• ベストアンサー

エクセル シート 関数

エクセル2003にて、シート番号の関数についてです。 現在sheet1(0)をコピーして必要分だけsheet1(1)、sheet1(2)としています、 日によってsheet1(50)ぐらいまで作成することがあります、これを利用して=IF(ISERROR(INDIRECT("'Sheet1 (1)'!c3")),"-----",INDIRECT("'Sheet1 (1)'!c3"))このような関数を管理シートで使用しています。 問題として関数内のsheet1(1)が連番なので表作成時(1)の部分の1を連番として2、3・・51、52と関数内でsheet1(51)自動で入力するための関数を教えください。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

解答No4です。 お示しの式はおそらくはたくさんのシートでC3セルのデータを取得し、最終的には合計したいのでしょう。そのようなことでしたら次のようにしてはどうでしょう。 A2セルから下方にはシート名を表示するとして例えばA2セルにはSheet1(0)と入力し、A3セルにはSheet1(1)と入力します。その後にA2セルとA3セルを同時に選択し下方にオートフィルドラッグを行います。このような操作でSheet1(55)までも表示させることができるでしょう。 次にB1セルには例えばC3と入力します。他にも取り出したいセル番地があるのでしたらC1セルにその番地を入力します。 その後にB2セルには次の式を入力し、右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(ISERROR(INDIRECT("'"&$A2&"'!"&B$1)),"",INDIRECT("'"&$A2&"'!"&B$1)) すべてのシートの集計はB60セルに=SUM(B2:B59)と入力すればよいでしょう。

sontonsan
質問者

お礼

大変参項になりました。

その他の回答 (4)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

データの統合のテクニックを使われてはどうでしょう。 エクセルの「ヘルプ」で「データの統合」で検索すればよいでしょう。

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.3

行番号を利用できるようでしたら =IF(ISERROR(INDIRECT("'Sheet1(" & ROW() & ")'!c3")),"-----",INDIRECT("'Sheet1(" & ROW() & ")'!c3")) としてみてはいかがでしょう。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

No1です。無視してください。失礼しました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

Sheet1(1):Sheet1(51)!C3といった使い方ではどうでしょう。

関連するQ&A