• ベストアンサー

ブック名を引きずらない数式のコピー

日付け毎にファイルされた実験データを整理していますが、数式の入ったセルをコピーすると、ブック名がついてコピーされてしまいます。 1)他のブックから数式の入った表をコピーしたとき、コピー元ブック名なしのシート名と関数のみをコピーする方法はありませんか。 2)指定した表内の参照シート名を一括して変える方法はありませんか。 3)実験を実施した毎にシートができています。 例えば、2月1日の3回目の実験データ: 070201(3) 集計表で、070201(x)のxを自動的に更新するセルコピー方法はありませんか。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

(1) >ブック名がついてコピーされてしまいます どのような数式でしょうか??? 通常は「=SUM(A3:A4)」のような式が入力されているセルを「編集」→「コピー」して、別のブックの適当なシートに貼り付けてもブック名はつきません。これはセル参照が絶対参照でも一緒です。 考えられるとすれば「=SUM(Sheet1!A3:A4)」のように、シート名をセル範囲に付加している場合でしょうか。 元のシートでシート名を書く必要がないのであれば、これを外してしまうのが良いと思います。(同じシート内の参照ならシート名をつける必要はありません) (2)Ctrl+Hで置換ウィザードを開き一括して置換が可能です (3)少々意味不明です >自動的に更新する とはシート名を数式に自動的に取り込みたいということでしょうか。 =CELL("filename") で「Z:\[Book3.xls]Sheet1」のようなブック名+シート名を取り出し、例えば =SUM(INDIRECT(MID(CELL("filename"),FIND("]",CELL("filename"))+1,100)&"!A3:A4")) ような関数式を作ることは可能ですが、(1)でも回答したように、そもそも数式に不必要なシート名参照を入れていること自体が問題を複雑にしています。不要なシート名参照は外しましょう 余計ですが一つの質問で複数の答えを要求すると回答率はグッと下がります。 1質問につき1つの回答要求にする方が回答は得られやすいと思いますよ

excel555
質問者

お礼

早速の回答ありがとうございます。 ブック名:070129、シート名:0129(1)のL列の2~4000までの値の内最小値を求め、実験回数順にブック名:070129のシート名:0129集計表を作成しています。このセルを新たな”ブック名:070130のシート名:0130集計表”にコピーすると、セルはこんな感じになります。 =MIN('[070129.xls]0129(1)'!$L$2:$L$4000) (1)[070129.xls]をとりたい (2)0129(1)を0130(1)に変換したい  なお、Ctrl+Hの置換ウィザードでは変換できませんでした (3)連続するセルに順番に以下を作成したい(カッコ内だけ更新したい) =MIN('0130(1)'!$L$2:$L$4000) =MIN('0130(2)'!$L$2:$L$4000) =MIN('0130(3)'!$L$2:$L$4000) =MIN('0130(4)'!$L$2:$L$4000) 今は1個1個手で変えて集計していますので、たいへん。

その他の回答 (2)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

#01です '0129(1)'!$L$2:$M$4000 をINDIRECT関数で置き換えればよいのです =VLOOKUP(E2,INDIRECT("'0129"&"("&row(a1)&")'!$L$2:$M$4000"),2,FALSE)

excel555
質問者

お礼

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

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

>=MIN('[070129.xls]0129(1)'!$L$2:$L$4000) ならば#01にも書いたようにINDIRECT関数を使うのがよいでしょう 集計シートのA1に「'0129」を入力して(先頭の「'」は文字列にするため) =MIN(INDIRECT("'"&$A$1&"("&row(a1)&")'!$L$2:$L$4000") と入力して下方向にコピー

excel555
質問者

お礼

できました。すごいです。 もうひとつおしえてください。 最小値の右隣の値が欲しいのですが。 E2に最小値が入っています。(=MIN(INDIRECT("'"&$A$1&"("&row(a1)&")'!$L$2:$L$4000")) =VLOOKUP(E2,'0129(1)'!$L$2:$M$4000,2,FALSE) をINDIRECT関数を使うとどのように書きますか? トライしてみましたが、うまくできません。

関連するQ&A