• ベストアンサー

エクセルの複数シート間の計算について

エクセルについてです。複数のシート間でVLOOKUP関数やSUMPRODUCT関数を使用しています。データ量が大きくなるにつれて、あるセルの数字を変更しただけで、全体の自動計算にとても時間がかかってしまいます。メニュー→ツール→オプションの計算方法タグにて、手動計算にすればいちいち全体の自動計算をさせずに済むのですが、これだと作業シート内の計算も更新されません。作業シート内の計算だけ自動にして、他のシートへの計算は後で行うような方法ってあるのでしょうか?]

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

  • ベストアンサー
noname#52504
noname#52504
回答No.2

データが増えると再計算の負担が大きくなるのは数式処理の宿命ですね。 残念ながら作業中のシートのみ自動計算させる設定というのは難しいと思います。 それ以外の対策としては… ●数式を見直す 数式をネストさせて同じ計算を複数回行う代わりに、 中途の値を作業列に書き出して参照した方が軽くなる場合があります。 複数行・列のセル範囲をVLOOKUPで埋める代わりに、 作業列にMATCHで行位置を書き出しておいてINDEXで引く方が軽くなる場合があります。 ISERRORやISNAを使って数式内でエラー処理する代わりに、 条件付書式でフォント色を制御したり、 ページ設定で印刷しないようにした方が軽くなる場合があります。 SUMPRODUCTの代わりに配列数式のSUM(IF())を使った方が軽くなる場合があります。 ※これらは理論上あるいは経験則からの意見で、  厳密に検証したわけではありません。ご容赦ください。 ●ブックを分ける 多くの関数は閉じたブックの値を参照することができますが、 閉じたブックの値そのものは当然再計算されませんから、 シートを独立のブックにして作業すれば、 作業中のシートのみ再計算されることになります。 ただし、INDIRECTやOFFSETなど閉じたブックを参照できない関数もあります。 COUNTIFも、Excelのバージョンによっては閉じたブックを参照できません。 また、ブックがネットワーク上にある場合(ローカルにない場合)は、 閉じたブックを参照する際の負担でかえって重くなる可能性もあります。 ●マクロ化する 身も蓋もない提案ですが…。 数式で処理している部分について、 適当なタイミングで、マクロで直接値を書き込むようにすれば、 格段に軽くなると思います。 以上ご参考まで。

その他の回答 (1)

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

>作業シート内の計算だけ自動にして、他のシートへの計算は後で行うような方法 VLOOKUP関数やSUMPRODUCT関数のようなワークシート関数ではそのような方法はありません これらの関数は参照しているセルの値が変わったら、自動的に再計算されるからです どうしてもというならマクロでそのシートだけの計算をさせるしかないでしょう

関連するQ&A

専門家に質問してみよう