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