• ベストアンサー

エクセルでの一括計算

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

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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

  • エクセルのマクロで作成した関数を他のエクセルのファイルから参照できるのですか?

    エクセルVBAに関して質問です。 a.xlsというファイルに複数のシートがあり すべてのシートにあるデータと「計算」ボタンがあります。 「計算」ボタンを押下すると、マクロが実行され 計算結果が同じシートに表示されます。 データの内容はシートごとに違いますが、 「計算」ボタンで呼び出したいマクロはすべて同じです。 この「計算」ボタンを押すと実行されるマクロを b.xlsに記述したいのですが、 (他のエクセルのファイルにも使いまわしたいので) そのようなことは可能なのでしょうか。 またどのようにマクロを記述すればこのマクロを 呼び出すことができるのでしょうか。 分かりにくい文章で申し訳ございませんが ご教授くださるとうれしいです。

  • エクセルファイルの一括変換・処理方法について

    エクセルファイルの一括変換・処理方法についてお聞きしたいことがあります。100行3列の数値データを持つエクセルファイルがあるとします。4列目に計算式例えば、D1=A1*B1をD列にフィルする作業を自動的に行い、かつ複数の、同様なデータを持つエクセルファイルにも一括して同一作業を行う方法を、どなたかご教授くださいませんでしょうか?おそらくマクロを使うこととなるかもしれませんが、もしそうでしたらそのマクロについてもお教えいただけるとありがたいです。よろしくお願いいたします

  • ★「フォルダ内の全エクセルシートを一括処理」★

    ★「フォルダ内の全エクセルシートを一括処理」★ エクセルのマクロのコードを教えていただけますでしょうか。 ★VBAの初心者です★ どなかた詳しい方、下記の内容を実行するためのコードを教えていただけませんでしょうか。 あるフォルダ内に入っている全エクセルシートの「sheet1」セルA1、B1、C1にある値を、デスクトップ上に保存されている別のエクセルシート”X” のF2、G2、H2、にそれぞれ貼り付けたい。 フォルダ内のエクセルシートは複数あるので、エクセルシートXのセルF2、G2、H2の次はF3、G3、H3、F4、G4、H4とそれぞれ1番ず つ下に貼り付けていきたい。 フォルダを検索するところから、全てのコピーが終了するところまで教えていただけると幸いです。 お忙しいところ恐れ入りますが、よろしくお願いいたします。

  • VBAのプログラムとシートでの計算の速度

     現在、エクセルVBAでマクロを組んでいます。 マクロで算出した値を、セルを指定して、シートに代入しています。シートの代入する理由は、途中の計算結果の確認とエクセル関数を利用し、マクロの簡便化を図りたいためです。  代入した値を基にして、エクセル関数を使った結果の値を、他のセルに表示(代入)していますが、VBAで、その結果の値を、利用しています。  お聞きしたいのは、最初にシートに代入してから、エクセル関数の結果を得られる前に、VBAが、値を取得しないかどうか心配です。  素人考えでは、同じエクセル上で動作しているので、エクセル関数の計算終了後に、VBAが動くと思いますが。どうでしょうか?

  • エクセル 繰り返し計算

    エクセルで毎月同じ計算をさせるときの方法を教えてください。 シートとしては、入力用、計算用、出力用とします。 入力用シートにA2セルに1月のデータ、B2セルに2月のデータ、C2・・・と12月まであります。 計算用シートのA2に入力されれば、G2、G3、G4のセルに計算結果が出ます。 出力用シートのA2、A3、A4に1月の結果、B2、B3、B4に2月の結果、・・ というように演算させたいのですが計算用シートの引用式、出力用シートの引用式は どの様に作成すればいいのでしょうか? 宜しくお願いします。

  • エクセル:複数シートの一括処理

    お世話になります。 エクセルで1つのブックに複数のシートがあります。 書式は同じですが行数がそれぞれ違います。 A列で、データが入力されている一番下のセルの次の行から、エクセルの最終行である65536行までの行を全て選択して「削除」をしたいのです。(行の削除)しかも全シート一括で。 A列でデータが入っている一番下のセルがA550だった場合、551行~65536行までを全て選択→削除を行う。 これらの作業をするためのマクロを教えてください。

  • Excel グラフ一括作成

    添付画像の通り、同じ様式の表があるシートが複数あります。 中身の値だけシートによって異なります。 各シートのグラフを一括作成する方法はありますか? 自分でVBAを書くことはできませんが、マクロの記録はできます。 なにかテクニックはありませんか?

  • ExcelからWordの複数文章の特定部分を一括処理

    ExcelからWordの複数文章の特定部分を一括処理 初めて質問をしますのでおかしな点があればご指摘いただけると幸いです。 Excelのマクロなどで文章の処理をしております 文章自体は定形なのですが文章内の名前部分のみを変更して一括処理したいと思っております  ExcelからWordを開く    Excelの名前一覧から名前を取得    Wordの定型文の名前部分を置換して印刷    一覧から取得した名前を含むファイル名で別名保存  Excelから次の名前へ、繰り返し処理 毎日同じ内容を行うので簡単に出来ればと思い調べているのですがわかりません こういった場合はVBAの方が良いのでしょうか 何かマクロソフトを入れればいいのでしょうか その方法でどうすればできるのか教えていただけませんでしょうか

  • VBA 別シートの計算表

    Excelについて。 シートAに、計算表があります。 セルa1に入力した値によって、いくつかのExcel関数を利用して、 セルb1に結果を出力しています。 いつも、手入力でセルa1に値を入力して結果を求めていますが。 今度、シートBに膨大な入力するための数値があるので、VBAで自動化できないかと考えています。 今回の質問は、VBAで記述する際に、シートAの入力セルa1に、シートBの入力値を1つずつ代入していき、結果のセルb1をシートBの入力値の隣に出力していこうと考えています。 シートAのa1に入力値を代入して、すぐに結果b1の値を結果出力セルに代入していいのでしょうか? 計算表(シートA)での計算を時間をおく必要があるのでしょうか?=一旦、他のセルを選択するなど。 よろしくお願いします。 ・計算表での計算時間は、1秒未満です。 ・計算表の計算過程もVBAで書けば済む話ですが、プログラミングには疎いので、計算表をそのまま利用したいと考えています。=入力の代入だけVBAで書いていきたいと思います。 ・その他、アドバイスなどいただければ幸いです。 よろしくお願いします。 Excel2010

  • VB6からEXCELマクロの終了を判断する方法を教えてください。

    VB6からEXCELマクロの終了を判断する方法を教えてください。 VB6とEXCEL(VBAも含む)を使って次のような流れの処理を行うソフトを作っています。 そこでどうしてもEXCELマクロの終了をVB6から判断する必要があり、方法を教えて頂けないでしょうか。 1)VB6でEXCELファイルを起動 2)VB6からセルA1に10,A2に20を代入 3)VB6からEXCELファイル内のマクロをコール 4)マクロはA1+A2の計算を行いA3に代入(30) 5)VB6からA3の値を読み込む (実際にはマクロは複雑な処理をします。) 1)~5)の処理を5000回程度行います。 VB6から送られるデータは毎回変わり、EXCELとマクロで計算させたデータを回収してテキストファイルに書き出します。 一通りのプログラムは完成したのですが、計算したデータを見ると10+20が1.99999とか15.51414とかおかしい結果になっています。 もしかしたらマクロの実行が終わっていない段階でVB6がデータを拾ってしまっている??と考え、マクロの終了をVB6で判断してからデータを回収するようにしたいと思っています。 何か方法はないでしょうか。(または他に間違っているところがあるのでしょうか。) 長文ですみません。よろしくご教示ねがいます。

専門家に質問してみよう