• ベストアンサー

エクセルでの一括計算

エクセルでの一括処理の方法についての質問です。 複数のデータについて同じ処理を繰り返して、それを別のシートに吐き出させたいのですが、どのようにすればいいの分かりません。 具体的には シート1のA1のデータを使って計算します。その結果をシート2のA1に表示したいのですが・・・ マクロやVBAなどは利用経験がないため、詳しく解説いただけると幸いです。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

>マクロやVBAなどは利用経験がないため (1)何となく敬遠したい気はわかります。しかしこの部分だけに限って理解すれば良いのでそんなに難しくないと思います。 (2)自家製関数Functionを使います。 Function enzan(a1) x = a1 y = x ^ 2 + x + 1 enzan = y End Function のy=・・・の右辺にA1セルの値Xを使った複雑な演算を 式にして入れてください。三角関数cos,指数関数exp対数 logなどVBで使える数学関数は何を使っても良いです。 (3)さてワークシート上で     ALTを押しながらF11キーでVBE画面になります。    ALTキーを押しながらI次ぎにALTキーを押したまで,M   で、標準モジュールを挿入する。    その画面に上記をコピーして貼りつける。    Y=・・・の右辺は本番の内容により変えてくださ    い。 (4)ワークシートに戻ってSheet2のA1に =enzan(Sheet1!A1) と入れます。Sheet2のA1の式をA2以下に複写します。 (5)やっていることは、いまの質問者の演算式の複写方式と変りませんが、見通しが良くなって、「(A)実は計算式自体が大変複雑な上に、(B)データ自体が10万件ほどあるため、単純に複写するとエクセルデータの容量がバカみたいに大きくなってしまいました」と言う現象に少しでも改善されないかと思いますので、やって見てください。 エクセルは縦には65000行程度しか使えないはずで、 残りはどうされているのかな。相互関連性がないなら、別ブックに分割されては。例えば上例の式だと Sheet1にデータを 2 3 4 0 1 と入れるとSheet2に結果 7 13 21 1 3 が出ました

CATV95II
質問者

お礼

御礼が遅くなってすいません。 細かい解説をいただきました。 どうもありがとうございました。

その他の回答 (4)

  • hiyoruki
  • ベストアンサー率7% (7/90)
回答No.4

=Sheet1!A1*Sheet2!$D$1*Sheet2!$E$1 ではどうですか? Sheet2!$D$1*Sheet2!$E$1 が計算の部分です。

CATV95II
質問者

お礼

御礼が遅くなってすいません。 2度も回答いただき助かりました。 ありがとうございました。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

こんにちは。 > 具体的には もっと具体的でないと解りませんよ。。(^^; 下記はシート1のA1に10を入れ、シート2のA1以降に1~100まで乗算した結果を入れてます。 Sub aa() Dim i As Long Worksheets("Sheet1").Range("A1") = 10 For i = 1 To 100   Worksheets("Sheet2").Range("A" & i) = _   Worksheets("Sheet1").Range("A1") * i Next i End Sub

CATV95II
質問者

お礼

御礼が遅くなってすいません。 ありがとうございました。

  • comv
  • ベストアンサー率52% (322/612)
回答No.2

こんばんは 例えば、A1のデータを使った計算が A1*100  A1の100倍 なら シ-ト2のA1に =Sheet1!A1*100 A2以降も同様の参照なら単純に入力した式を複写 するだけです。

CATV95II
質問者

お礼

御礼が遅くなってすいません。 ありがとうございました。

CATV95II
質問者

補足

質問がよくないようで、、、(汗 実は計算式自体が大変複雑な上に、データ自体が10万件ほどあるため、単純に複写するとエクセルデータの容量がバカみたいに大きくなってしまいました。 (実際全体の3分の1ほどやった時点で、55MB超えましたw) アドバイスいただいたのに説明不足ですみません。

  • hiyoruki
  • ベストアンサー率7% (7/90)
回答No.1

=Sheet1!A1 ではダメですか?

CATV95II
質問者

補足

そのままコピーじゃなくて、sheet1のA1の数値を代入して計算→計算結果をsheet2のA1に出力→sheet1のA2の数値を代入して計算→計算結果をsheet2のA2に出力→以下同じ操作を繰り返す という感じです。

関連するQ&A