[]
What-If 分析は、1 つ以上の入力値の変更が数式の結果にどのように影響するかを評価するためのモデリング手法です。セルを手動で変更して再計算を繰り返す代わりに、What-If 分析を使用すると、さまざまなシナリオを体系的に検証し、前提条件の違いによって結果がどのように変化するかを確認できます。SpreadJSでは、What-If 分析を実行するために、次の 2 つのアプローチを提供しています。
データテーブル分析(SJS.TABLEワークシート関数を使用)
ゴールシーク分析(GC.Spread.Sheets.CalcEngine.goalSeekメソッドを使用)
どちらもシナリオベースの分析をサポートしますが、目的や動作が異なります。
SJS.TABLE は、複数の入力の組み合わせに対して結果セルまたは範囲を評価し、収集した結果を動的配列として返します。標準のワークシート数式として実装されているため、次の特性があります。
通常のワークシート再計算の対象になります
編集やコピーができ、ほかの関数内にネストできます
結果を隣接セルに自動的にスピル(展開)します
また、SJS.TABLE には次の特性があります。
動的配列とインライン配列をサポートします
1 つの数式で複数の入力変数を扱うことができます
シート間参照と名前付き範囲をサポートします
データテーブル分析は、事前に定義した入力値セットに対する結果を比較する用途に適しています。
goalSeek は、数式が目標値に到達するまで、変化させるセルの値を調整する命令型の計算メソッドです。SJS.TABLE と異なり、ゴールシークには次の特性があります。
変化させるセルを直接変更します
内部で数値解法アルゴリズムを使用します
boolean または Promise<boolean> を返します
ワークシート数式ではなく CalcEngine API を通じて動作します
ゴールシークは、特定の支払額になる金利を求めるなど、目標となる結果から必要な入力値を逆算する用途に適しています。
項目 | データ テーブル( | ゴール シーク( |
|---|---|---|
種類 | ワークシート数式 | CalcEngine API メソッド |
実行モデル | 宣言型 | 命令型 |
主な目的 | 複数の入力値の組み合わせを評価する | 目標結果に対応する入力値を求める |
戻り値 | 動的配列 |
|
ワークシートセルの変更 | いいえ | はい |
トピック | 説明 |
|---|---|
構文、パラメータ、および一般的な使用パターン | |
出力サイズと入力の対応動作に関する詳細なルール | |
再計算の制御と進捗状況の確認 | |
インポートとエクスポートの動作、および互換性の制限 | |
API リファレンスと求解時の動作 |
SpreadJS デザイナでは、What-If 分析ツールを[What-If 分析]メニューから利用できます。
ゴールシーク
データテーブル

SpreadJS デザイナ のインターフェイスと設定手順の詳細については、What-If 分析を参照してください。