ソルバーは、Microsoft Excel のアドイン プログラムで、What-If 分析に使えます。 ソルバーを使うことで、ワークシート上の他の数式セルの値に対する制約または制限に従って、1 つのセル (目的セルと呼ばれる) の数式に対する最適な (最大または最小の) 値を検出できます。 ソルバーは、目的セルや制約セルの中の数式を計算するのに使われる決定変数セルまたは単に変数セルと呼ばれるセルのグループと連動します。 ソルバーは決定変数セルの値を調整し、制約セル上の制限を満たし、目的セルに必要な結果を生成します。
簡単に言うと、他のセルを変更することで、1 つのセルの最大値または最小値を決定するのにソルバーを使用することができます。 たとえば、広告予算額を変更し、利益予想額に及ぼす影響を確認できます。
次の例では、四半期ごとの広告のレベルが販売個数に影響を与えており、売上高、関連費用、利益を間接的に決定していることが分かります。 ソルバーでは、四半期ごとの広告予算 (決定変数セル B5:C5) を、合計 $20,000 (セル F5) の予算の制約まで、利益の合計 (目的セル F7) が可能な限り最大の金額に変更できます。 各四半期の利益を計算するために変数セルの値が使われるので、それらのセルは、数式目的セル F7 である =SUM (第 1 四半期の利益:第 2 四半期の利益) に関連付けられています。
1. 変数セル
2. 制約条件セル
3. 目的セル
ソルバーの実行結果は次のようになります。
-
[データ] タブの [分析] で [ソルバー] をクリックします。
注: [ソルバー] コマンドや [分析] グループが表示されていない場合は、ソルバーアドインをアクティブにする必要があります。 「ソルバー アドインをアクティブにする方法」を参照してください。
-
[目的セルの設定] ボックスで、目的セルのセル参照または名前を入力します。 目的セルには数式が含まれている必要があります。
-
次のいずれかの操作を行います。
-
目的セルに設定可能な最大の値を入力するには、[最大値] をクリックします。
-
目的セルに設定可能な最小の値を入力するには、[最小値] をクリックします。
-
目的セルに特定の値を入力するには、[値] をクリックし、ボックスに値を入力します。
-
[変数セルの変更] ボックスで、決定変数セル範囲ごとの名前または参照を入力します。 隣接していない参照はコンマで区切ります。 変数セルは、直接的または間接的に目的セルに関連付けられている必要があります。 最大 200 個の変数セルを指定できます。
-
-
次の操作を行って、[制約条件の対象] ボックスに、適用する制約条件を入力します。
-
[ソルバー: パラメーター設定] ダイアログ ボックスの [追加] をクリックします。
-
[セル範囲] ボックスに、値の制約条件を設定するセル範囲へのセル参照または名前を入力します。
-
参照セルと制約の間で必要なリレーションシップ ( <=、=、 >=、int、bin、または dif) をクリックします。int をクリックすると、[制約] ボックスに整数が表示されます。 [bin] をクリックすると、[制約] ボックスにバイナリが表示されます。 [dif] をクリックすると、[制約] ボックスに alldifferent が表示されます。
-
[制約条件] ボックスの関係で <=、=、または >= を選んだ場合は、数値、セル参照、名前、または数式を入力します。
-
次のいずれかの操作を実行します。
-
制約条件を確定し、続けて他の制約条件を設定するには、[追加] をクリックします。
-
制約条件を確定し、[ソルバー: パラメーター設定] ダイアログ ボックスに戻るには、[OK] をクリックします。
メモ [int]、[bin]、[dif] は、決定変数セルの制約条件にのみ適用できます。次の操作で、既存の制約条件を変更または削除できます。
-
-
[ソルバー: パラメーター設定] ダイアログ ボックスで、変更または削除する制約条件をクリックします。
-
[変更] をクリックして条件を変更するか、[削除] をクリックして条件を削除します。
-
-
[実行] をクリックし、次のいずれかの操作を行います。
-
ワークシートで解を保存する場合は、[ソルバーの結果] ダイアログ ボックスの [ソルバーの解の保持] をクリックします。
-
[実行] をクリックする前のデータに戻す場合は、[元の値に戻す] をクリックします。
-
Esc キーを押すと、解のプロセスを中断できます。 Excel が決定変数セルで見つけた最終的な値を使ってワークシートを再計算します。
-
ソルバーが解を見つけた後に、独自の解に基づいてレポートを作成するには、[レポート] ボックスでレポート タイプをクリックし、[OK] をクリックします。 レポートはブック内の新しいワークシート上に作成されます。 ソルバーが解を見つけられない場合、特定のレポートのみ利用できるか、利用できるレポートはありません。
-
決定変数セルの値をシナリオとして保存して後で表示できるようにするには、[ソルバーの結果] ダイアログ ボックスの [シナリオの保存] をクリックし、[シナリオ名] ボックスにシナリオの名前を入力します。
-
-
問題を定義した後、[ソルバー: パラメーター設定] ダイアログ ボックスの [オプション] をクリックします。
-
各試行の解の値を表示するには、[オプション] ダイアログ ボックスの [反復結果の表示] チェック ボックスをオンにし、[OK] をクリックします。
-
[ソルバー: パラメーター設定] ダイアログ ボックスの [解決] をクリックします。
-
[試行状況の表示] ダイアログ ボックスで、次のいずれかの操作を行います。
-
解の解決を中断して [ソルバーの結果] ダイアログ ボックスを表示するには、[停止] をクリックします。
-
解の解決を続行して次の試行の解を表示するには、[継続] をクリックします。
-
-
[ソルバー: パラメーター設定] ダイアログ ボックスの [オプション] をクリックします。
-
ダイアログ ボックスの [すべてのメソッド]、[GRG 非線形]、[進化的] の各タブのオプションの値を選択または入力します。
-
[ソルバー: パラメーター設定] ダイアログ ボックスの [読み込み/保存] をクリックします。
-
モデル領域のセル範囲を入力し、[保存] または [読み込み] をクリックします。
モデルを保存する場合、問題モデルを配置する空のセルの縦方向の範囲の最初のセルに対する参照を入力します。 モデルを読み込む場合、問題モデルを含むセルの範囲全体に対する参照を入力します。
ヒント: ブックを保存すると、[ソルバーのパラメーター] ダイアログ ボックス内の最後の選択内容をワークシートと共に保存できます。 ブック内の各ワークシートには、独自のソルバーの選択内容が含まれている可能性があり、それらのすべてが保存されます。 [読み込み/保存] をクリックして問題を個別に保存することで、ワークシートに複数の問題を定義することもできます。
[ソルバー: パラメーターの設定] ダイアログ ボックスでは、次の 3 つのアルゴリズム、つまり解決メソッドを選べます。
-
一般化された縮小勾配 (GRG) 非線形 滑らかな非線形の問題に使用します。
-
LP Simplex 線形の問題に使用します。
-
エボリューショナル 滑らかではない非線形を示す問題に使います。
重要: 最初にソルバー アドインを有効にする必要があります。 詳細については、「ソルバー アドインを読み込む」を参照してください。
次の例では、四半期ごとの広告のレベルが販売個数に影響を与えており、売上高、関連費用、利益を間接的に決定していることが分かります。 ソルバーでは、四半期ごとの広告予算 (決定変数セル B5:C5) を、合計 $20,000 (セル D5) の予算の制約まで、利益の合計 (目的セル D7) が可能な限り最大の金額に変更できます。 各四半期の利益を計算するために変数セルの値が使われるので、それらのセルは、数式目的セル D7 である =SUM (第 1 四半期の利益:第 2 四半期の利益) に関連付けられています。
変数セル
制約付きセル
[ 目的] セル
ソルバーの実行結果は次のようになります。
-
[ データ > ソルバー] をクリック します。
-
[目標を設定する] で、セル参照 または目的セルの名前を入力します。
注: 目的セルには、数式を含める必要があります。
-
次のいずれかの操作を行います。
目的
操作
目的セルに設定可能な最大の値を入力します。
[最大] をクリックします。
目的セルに設定可能な最小の値を入力します。
[最小] をクリックします。
目的セルを特定の値に設定します。
[指定値] をクリックし、ボックスに値を入力します。
-
[変数セルの変更] ボックスに、各決定変数セルの範囲の名前または参照を入力します。 隣接していない参照は、コンマで区切ります。
変数セルは、目的セルに直接的または間接的に関連付けられる必要があります。 最大 200 個の変数セルを指定することができます。
-
[制約条件の対象] ボックスで、適用する制約条件を追加します。
制約を追加するには、次の手順を実行します。
-
[ソルバー: パラメーター設定] ダイアログ ボックスの [追加] をクリックします。
-
[セル範囲] ボックスに、値の制約条件を設定するセル範囲へのセル参照または名前を入力します。
-
[<=] リレーションシップのポップアップ メニューで、参照されているセルと制約の間の関係を選択します。[制約] ボックスで、<=、=、または >= を選択した場合、数値、セル参照または名前、または数式を入力します。
注: [int]、[bin]、[dif] は、決定変数セルの制約条件にのみ適用できます。
-
次のいずれかの操作を行います。
目的
操作
制約条件を確定し、他の制約条件を追加する
[追加] をクリックします。
制約条件を確定して、[ソルバー: パラメーター設定] ダイアログ ボックスに戻ります。
[OK] をクリックします。
-
-
[実行] をクリックし、次のいずれかの操作を行います。
目的
操作
シートの解の値を維持する
[ソルバーの結果] ダイアログ ボックスで [ソルバーの解の保持] をクリックします。
元のデータを復元する
[計算前の値に戻す] をクリックします。
注:
-
解決処理を中断するには、Esc キーを押します。 Excel が調整可能なセルで見つけた最終的な値を使ってシートを再計算します。
-
ソルバーが解を見つけた後に、独自の解に基づいてレポートを作成するには、[レポート] ボックスでレポート タイプをクリックし、[OK] をクリックします。 レポートはブック内の新しいシート上に作成されます。 ソルバーが解を見つけられない場合、レポートを作成するオプションは使用できません。
-
調整セルの値をシナリオとして保存して後で表示できるようにするには、[ソルバーの結果] ダイアログ ボックスの [シナリオの保存] をクリックし、[シナリオ名] ボックスにシナリオの名前を入力します。
-
[ データ > ソルバー] をクリック します。
-
問題を定義した後、[ソルバー: パラメーター設定] ダイアログ ボックスの [オプション] をクリックします。
-
各試行の解の値を表示するには、[反復結果の表示] チェック ボックスをオンにし、[OK] をクリックします。
-
[ソルバー: パラメーター設定] ダイアログ ボックスの [解決] をクリックします。
-
[試行状況の表示] ダイアログ ボックスで、次のいずれかの操作を行います。
目的
操作
解決処理を中断して [ソルバーの結果] ダイアログ ボックスを表示します。
[停止] をクリックします。
解決処理を続行して次の試行の解を表示します。
[継続] をクリックします。
-
[ データ > ソルバー] をクリック します。
-
[オプション] をクリックし、[オプション] または [ソルバー オプション] ダイアログ ボックスで、次のオプションの 1 つ以上のオプションを選択します。
目的
操作
解の時間と反復回数を設定する
[すべてのメソッド] タブの [解決制限] で、[最大時間 (秒)] ボックスに、解決に許可する時間 (秒数) を入力します。 次に、[反復回数] ボックスに、許可する反復の最大回数を入力します。
注: ソルバーが解を見つける前に、解決処理が反復の最大回数に達すると、ソルバーが [試行状況の表示] ダイアログ ボックスを表示します。
精度を設定する
[すべてのメソッド] タブの [制約条件の精度] ボックスで、目的の精度を入力します。 数値が小さいほど、精度は高くなります。
収束の精度を設定する
[GRG 非線形] または [エボリューショナリー ] タブの [収束] ボックスに、ソルバーが解決を停止する前の最後の 5 回の反復で許可する相対的な変化の量を入力します。 数値が小さいほど、許可される相対的な変化が小さくなります。
-
[OK] をクリックします。
-
[ソルバー: パラメーター設定] ダイアログ ボックスの [解決] または [閉じる] をクリックします。
-
[ データ > ソルバー] をクリック します。
-
[読み込み/保存] をクリックし、モデル領域のセル範囲を入力して、[保存] または [読み込み] をクリックします。
モデルを保存する場合、問題モデルを配置する空のセルの縦方向の範囲の最初のセルに対する参照を入力します。 モデルを読み込む場合、問題モデルを含むセルの範囲全体に対する参照を入力します。
ヒント: ブックを保存すると、[ソルバーのパラメーター] ダイアログ ボックス内の最後の選択内容をシートと共に保存できます。 ブック内の各シートには、独自のソルバーの選択内容が含まれている可能性があり、それらのすべてが保存されます。 [読み込み/保存] をクリックして問題を個別に保存することで、シートに複数の問題を定義することもできます。
-
[ データ > ソルバー] をクリック します。
-
[解決方法の選択] ポップアップ メニューで、次のいずれかを選択します。
解決方法 |
説明 |
---|---|
GRG (Generalized Reduced Gradient) 非線形 |
IF、CHOOSE、LOOKUP、および他の “step” 関数以外のほとんどの Excel 関数を使用するモデルの既定の選択肢です。 |
シンプレックス LP |
線形プログラミングの問題の場合はこのメソッドを使用します。 モデルでは、変数のセルに依存する式の中で、SUM、SUMPRODUCT、+-、および * を使用する必要があります。 |
エボリューショナリー |
このメソッドは、汎用アルゴリズムに基づいており、モデルが IF、CHOOSE、または LOOKUP と、変数セルに依存する引数を使用する場合に最適です。 |
注: ソルバーのプログラム コード部分の著作権は、1990 から 2010 年については Frontline Systems, Inc.、1989 年については Optimal Methods, Inc. にあります。
アドイン プログラムは Web 用 Excelではサポートされていないため、ソルバー アドインを使用してデータに対して what-if 分析を実行して、最適なソリューションを見つけるのに役立つことはできません。
Excel デスクトップ アプリケーションがある場合は、[ Excel で開く ] ボタンを使用してブックを開き、 ソルバー アドインを使用できます。
ソルバーの使用に役立つ情報
ソルバーの詳細については、以下にお問い合わせください。
Frontline Systems, Inc.ヘルプを info@solver.com します。
P.O. Box 4288 インクラインビレッジ、NV 89450-4288 (775) 831-0300 Web サイト: http://www.solver.com 電子メール: www.solver.com のソルバーソルバーのプログラム コード部分の著作権は、1990 から 2009 年については Frontline Systems, Inc.、1989 年については Optimal Methods, Inc. にあります。
補足説明
Excel Tech Communityで、いつでも専門家に質問できます。また、コミュニティでは、サポートを受けられます。