Excelには、30,000行を超えるワークシートがあります。サンプルデータを下の画像に示します。約12の列に数式があり、セルを更新するたびに作業が非常に遅くなります。 VBAコードを使用して、5列のみの自動数式計算をオフにします(例の赤い列を参照)。黄色の列の数式は常に実行されます。次に、押すたびに赤い列の数式を計算するマクロを作成したいと思います。
数式リボンでいくつかのオプションを探してみましたが、成功しませんでした。
いくつかの列の計算をオフにする代わりに、リソースを大量に消費する数式を計算して結果を値として保存するマクロを使用することをお勧めします。以前に結果を返さなかったものだけを処理する必要がある場合は、空白セルまたは#N/Aセルのみを処理するようにすることもできます。ちょうど今日、私が書いた計算コストの高いFuzzyMatchルーチンに対して同じことをしました。
ただし、数式がSUMPRODUCTを介してデータをクランチしたり、非常に大きな配列でルックアップを実行したりする場合は、それらを最適化して、わずかな時間で実行できるようにすることで、シートを選択的に再計算する必要を完全に回避できる可能性があります。 。また、これらの数式が揮発性である場合、または揮発性関数の下流にある場合は、不揮発性の数式を使用して、スプレッドシートの再計算をすぐに停止できる可能性があります。
より高速なSUMPRODUCTの代替案については、私の回答を参照してください Excelの数式の最適化-SUMPRODUCTとSUMIFS/COUNTIFS
はるかに高速なルックアップについては、私のブログ投稿を参照してください http://dailydoseofexcel.com/archives/2015/04/23/how-much-faster-is-the-double-vlookup-trick/
ボラティリティの詳細(回避方法を含む)については、私のブログ投稿を参照してください https://chandoo.org/wp/2014/03/03/handle-volatile-functions-like-they-are-dynamite/
その他の提案については、投稿を編集して、使用している数式に関する情報(数式の数、参照するサイズ範囲、数式で何を達成しようとしているのかなど)を含めてください。