
私の Excel モデルでは、主要な要素は単一の大きな構造化テーブルで、約 2000 列と 200 行が含まれています。各列には、各行で同じ数式が含まれています。XLSB ファイルの場合、ワークブックは約 11 MB で、開くのに 45 秒かかります。数式自体は効率的で、ワークブックの完全な計算は 1 秒未満で完了します。
このモデルを 2 つに分割し、同じワークブック内の 2 つの別々のシート (シート間の参照あり) を使用すると、パフォーマンスは変わりません。ただし、リンクを外部参照としてこれらのシートを 2 つのワークブックに分割すると、両方のファイルを開いてリンクを更新するのにかかる時間が約 10 秒になります。
個別のワークブックによってパフォーマンスが向上するのはなぜですか? 単一のワークブック内で同じパフォーマンスを実現できますか?
編集: サニタイズされたワークブックはここにあります:https://drive.google.com/drive/folders/0Bz0YVEO1u0jOaGtpS1ZnR3kzRWc?usp=sharing Model1.xlsb と Model2.xlsb は分割されたファイルです。Model1and2.xlsb を作成するには、Model2 の 2 つのシートを Model1 に移動するだけです。
編集 2: 設定により、Workbook.ForceFullCalculation=TRUE
この問題は解決されます。これは、依存関係ツリーをロードする時間と間違いなく関係があります。デモ用に、Model1and2-ForceFullCalculation.xlsb を共有フォルダーに追加しました。