dポイントプレゼントキャンペーン実施中!

たくさんの計算式が入ったシートを保存しようとすると、再計算に入ってとても時間がかかることがあります。
設定で、手動で再計算にしちえるのですが少しでも計算を短くする方法があれば教えてください。

A 回答 (5件)

計算式を(もちろん結果は同じになるよう)変える、配列数式を使わない、代入で出来るところは同じような式は入れない、などは出来ても、実際問題として、式を組み変えることは、質問とは別問題でしょうね。


だから式を今のままにして、計算だけ、エクセルの設定などで、早めることは、できるはずが無い。シートの式が決まれば、エクセルの同じプログラムが一気に走るはず。
ーー
ただその瞬間のそのパソコンの内部メモリやディスクの空き状態が影響するかもしれないというのは、ミクロで考えられるが、その場に即してのことを、我々がはっきりいえるだけの知識も持ってないでしょう。
ーー
VBAでプログラムをやれるなら、関数ーー>プログラムに組み替えて、早くなるケースはあるように思う。
計算速度ではないが、このコーナーの質問で、関数では式が長く思いつきにくい式だが、VBAでやると素直なロジックでやれるものも多いと思う。これも計算速度に影響すると思う。
ただ関数とVBAで実行速度はどちらが速いかは前もって、計算できるようなものではないとおもう。
やってみるしかない。
ーーー
VBAでは、ScreenUpdating=Falseという、画面更新について、計算の都度は、毎セルについて表示を行わないセルの設定も出来る。
    • good
    • 0
この回答へのお礼

わかりやすいご回答ありがとうございました。
大変参考になりました。
やっと、希望する結果ができるシートができましたが、徐々にスピードアップを図るにはどうすればよいか、考えていきます。

お礼日時:2008/10/17 06:19

こんばんは。



まず、配列数式は、Excel2000より、論理的な限界はなくなりましたが、Excel2003 までは、参照セル約6500個までで、それ以上は、スワップが働いてしまいます。Excel 2007 は、そういう問題がなくなったといいますが、私個人は試験はしていません。

参照セルの内容は分かりませんが、7000行×15項目では、すでに限界値は越えているのだと思います。掲示板でよく書かれている配列数式は、小規模なものに限ります。

それと、通常、一般数式は、参照セル一つの変更に対して、その数式だけの値を返し、メモリの保護をしますが、配列数式は、一つのセルの変更が、すべての参照セルを読み直します。これでは、一気に、メモリを使ってしまいます。

一旦、補助列を使って、フラグを取るか、SUMIF やデータベース関数を使うことです。
    • good
    • 2
この回答へのお礼

ご回答ありがとうございました。どうしても、複数列を参照したいと思いましたが、投射したシートを作って配列数式を使わないように努力してみます。

お礼日時:2008/10/17 06:17

データのシートの構成を教えてください


>一つの番号をキーに合計額を求める表を7000行×15項目作りました。
キー番号は昇順にならんでいるのかどうかなど
データシートが
 A  B
 001 100
 002 200
 001 300
・・・・・
集計シート
 001 400
 002 200
とかでしたら、ピボットテーブルを試してみてください。
集計が必要なときだけ、更新かけて再計算させます。

この回答への補足

データを別のシステムから出力していて頻繁に更新(引用先を置換)しているため、キー番号などすべて法則性がありません。そのためSumproductでデータを拾っていっているのですが、めちゃくちゃ計算に時間かかります。(CoreDuo2の1.5Ghzで5分くらい)

補足日時:2008/10/17 06:13
    • good
    • 2

こんばんは。



ツール>オプション>計算方法>○手動の下の
□保存前に再計算を外すと保存前に再計算をしないので
時間がかかりません。(ただし、再計算はされません)

「手動」設定の場合、「F9」を押すと再計算が可能なので
任意のタイミングで更新できます。いかがでしょうか。

#もし、質問の意図を取り違えた回答だったらすみません。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございました。
大変参考になりました。

お礼日時:2008/10/15 09:46

>たくさんの計算式が入ったシート


シートの構成と計算式を記述してもらわないと何とも回答が出来ないと思います。

この回答への補足

別の表からsumproduct関数を使って一つの番号をキーに合計額を求める表を7000行×15項目作りました。
毎回、データが変更になるわけではないので変更になったところだけ更新をかけられれば良いと思うのですが、そのような方法があればご教示ください。

補足日時:2008/10/15 09:46
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!