- ベストアンサー
EXCELが重すぎて困っています。
EXCELファイルが重すぎて、 作業が出来ない状態になってしまいました。 下記のような場合の対処方をご存知の方 ご教授ください。 <状況> 再計算をすると5%ぐらいで固まってしまい、 CPU使用率は50%ぐらいになります。 ファイルサイズは30MB程度。 VLOOKUP関数は多用していますが、 それ以外はたいした事はやっていません。 なお、ツール-オプションの 計算方法は「手動」 「保存前に再計算」はNULLは実装しております。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
mgkgさまの仰られるようにアクセスに乗り換えるのが本筋でしょう ただアクセススキル取得者の絶対数不足や教育コスト・導入コストを考えると… お察しします ではアクセスに乗り換えるまでの場つなぎ的にですが これは如何でしょう? VLOOKUP系の参照関数や配列数式はかなりのマシンパワーを浪費しますので これを見直し 可能な限り他の軽快な関数やVBAに置き換える 例えばですが =if(isna(vllokup(a1,c:c,2,0)),"",vllokup(a1,c:c,2,0)) は、恐らく =if(countif(c:c,a1)>0,vllokup(a1,c:c,2,0),"") の方が軽快だと思われますし やっぱり =if(countif($c$1:$c$250,a1)>0,vllokup(a1,$c$1:$c$250,2,0),"") の方が断然高速だと思います また、手作業で行っている編集を極力マクロ化しVBAで汎用化を図れば これもかなりの時間短縮になると思います 計算コストはセル数に対し、 指数関数的に増大する可能性がありますので 変化する割合が少ないセルについては 定数を入力規則でリストにして割り当て、計算を省く 参照関係のないセルグループを拾い起こして 1ブック中に完結できる最小セル数を選り出し 計算時は幾つかのブックに切り離しておき 最後にマージするように変更する (選分けは確かに大変ですが、その後はマクロなどを使えば簡単ですよね) 等も有効でしょう あと、 ブック間参照を極力しない VBA稼動時も含め、 編集中は自動計算を切り、手動計算にしておき 必要最小限の再計算回数に止める できればハイパワーマシンシステムに乗り換えさせてもらう (高性能PCや計算用共有サーバー等) などの対策が挙げられると思います そもそも、与えられたマシンリソースに対する 計算を要するセル総数と使用関数の類、 再計算の頻度等の兼ね合いに問題があると思われますので これらの個々の側面からアプローチを加えるということです 実は私もまったく同様の窮地に陥ってしまった経験があり 決して他人事とは思えません 質問者様は私が引き継いだあの方では? と思うくらいです 一応私は引き継ぎ間際にマクロからVBAを作り処理の高速化を図ったので まあ問題は残っていますが使えない範囲ではないように思います p.s. いっその事、 オフィス2007に期待するか 数式演算ソフトというのがありますので そもそも表計算から脱却してこれに乗り換えるとか… ? 情報処理の世界での4~5年は実社会における10~20年に相当するらしいですから それ相応の高速化の可能性が望めますし (現にエクセル2007では飛躍的にセル数が増えるようです) 数式演算ソフトというのは 流体シュミレーション時などの 粒子1つ1つの挙動を計算するときにも使われるような 凄くて早くて直感的なソフトで 今回のような大量ノード数の平行演算に適してますから こちらの方が俄然早いらしいです 幾つか挙げさせて頂きましたが 1つでもお役に立てる内容がありましたら幸いです 如何でしょうか?
その他の回答 (2)
- shinkami
- ベストアンサー率43% (179/411)
RAMメモリーを増設するのも一法ではないでしょうか
お礼
それもひとつの手ですね。 ありがとうございます。
- mgkg
- ベストアンサー率37% (79/212)
ファイルサイズの30MBは大きすぎます。 たいしたことをやってなくても、そのサイズではExcelで何かしようと思っても重たくて動きません。 方法は、CSV形式にしてファイルサイズを小さくするか、もしくはAccessにデータを移して今後はAccessで編集とかをするようにします。 もともと、Excelは表計算ソフトであって、データベースソフトではないです。 そのファイルサイズから想像すると、相当の量のデータベースだと思います。 Excelで再計算処理できるデータ量ではありません。
お礼
確かにそうですね・・・。 Access化検討します。
お礼
ご回答ありがとうございます。 なるほどですね。 関数の書き方工夫すれば処理減らせますね。 大変参考になりました。 今回いろいろと試してみましたが、 「excelの保存形式を2003⇒2000に変更。」 が一番効果高かったように思いました。 マイクロソフトの罠だったのですね。。。 いずれにしてもたくさんのアイデアを頂き、 今後の事も含めて勉強になりました。 ありがとうございました。