エクセルのソルバーは、「材料と作業時間に限りがあるとき、製品A と製品B を何個ずつ作れば利益が最大になるか」のように、条件を守りながら、いちばんよい組み合わせを探す機能です。最初は表示されていないので、アドインを有効にすると「データ」タブの右端に出てきます。
この記事では、ソルバーを表示する方法と、利益が最大になる生産計画を求める例で、目的セル・変数セル・制約条件の入れ方を、実際の Excel の画面で説明します。
ソルバーとゴールシークの違い
| ゴールシーク | ソルバー | |
|---|---|---|
| 変えるセル | 1つだけ | 複数できる |
| 目標 | 指定した値にする | 最大・最小・指定した値 |
| 条件(上限・整数など) | 付けられない | 付けられる |
| 使える場所 | 「データ」→「What-If 分析」 | アドインを有効にして「データ」→「ソルバー」 |
1つのセルを変えて目標値にするだけならゴールシークで足ります(ゴールシークの使い方)。
ソルバーを表示する(アドインを有効にする)
- 「ファイル」→「オプション」を開き、左の「アドイン」を選びます。
- 下の「管理」が「Excel アドイン」になっていることを確かめて、「設定」を押します。
- 「ソルバー アドイン」にチェックを入れて、OK を押します。


「データ」タブの右端に「分析」グループができ、「ソルバー」が表示されました(①)。
ソルバーの使い方(利益が最大になる組み合わせ)
製品A は1個 300 円、製品B は1個 500 円の利益です。材料は A が 2kg・B が 4kg 使い、全部で 100kg まで。作業時間は A が 3 時間・B が 2 時間かかり、全部で 90 時間までです。作る数(B6:C6)を変えて、利益の合計(B7)を最大にします。使った量は =SUMPRODUCT(B3:C3,$B$6:$C$6) で計算しています(SUMPRODUCT関数)。
- 利益の合計のセル(B7)を選び、「データ」タブの「ソルバー」を押します。
- 「目的セルの設定」が $B$7、「目標値」が「最大値」になっていることを確かめます。
- 「変数セルの変更」に $B$6:$C$6(作る数)を入れます。
- 「追加」を押して、制約条件を入れます(次の画像)。
- 「解決方法の選択」を「シンプレックス LP」にして、「解決」を押します。

制約条件の入れ方

「セル参照」に使った量($D$3:$D$4)、真ん中を「<=」、「制約条件」に上限($E$3:$E$4)を入れます(①②③)。「追加」を押すと次の条件を続けて入れられるので、セル参照に作る数($B$6:$C$6)、真ん中に「int」(整数)を選ぶと、作る数が整数だけになります。

「ソルバーによって解が見つかりました。」と出て OK を押すと、製品A を 20 個・製品B を 15 個作るとき、利益が最大の 13,500 円になりました(①②)。材料は 100kg、作業時間は 90 時間で、どちらも上限ちょうどまで使っています(③)。念のため、作る数をすべての組み合わせで計算して確かめても、13,500 円より大きい組み合わせはありませんでした。
ソルバーがうまくいかないときの確認表
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| 「ソルバー」が見つからない | アドインが有効になっていない | 「ファイル」→「オプション」→「アドイン」→「設定」で「ソルバー アドイン」にチェック。 |
| 作る数が小数になる | 整数の条件を付けていない | 変数セルに「int」の制約条件を追加する。 |
| 結果が式どおりか不安 | 目的セルが変数セルを使った式になっていない | 目的セル(利益)と使った量の式が、作る数のセルを参照しているか確かめる。 |
よくある質問
解決方法(GRG 非線形・シンプレックス LP)はどれを選ぶ?
今回のように、式が「1個あたりの量 × 個数」の足し算(SUMPRODUCT など)だけでできているときは「シンプレックス LP」を選びます。ソルバーの画面の説明にも、線形の問題には LP シンプレックス エンジンを選ぶよう書かれています。
1つのセルを変えるだけなら?
ゴールシークのほうが手軽です(ゴールシークの使い方)。

コメント