Excelで線形計画法を解く2つの方法|グラフ作成とソルバーの使い方を徹底解説
線形計画法(Linear Programming)は、応用数学の中でも特に実用性の高い分野の一つです。利益の最大化やコストの最小化といった最適化問題を解くために広く活用されており、実はExcelでも線形計画法の問題を解くことができます。
ただし、Excelには線形計画法専用の組み込み関数は用意されていません。そこで本記事では、Excelで線形計画法を解くための2つの方法——「グラフを使う方法」と「ソルバーアドインを使う方法」——を、具体的な手順とともに詳しく解説します。
記事を読みながら実際に操作して練習したい方は、練習用ワークブックをダウンロードしてご利用ください。
線形計画法とは?
線形計画法とは、線形関数の関係性に基づいて、利益の最大化またはコストの最小化を実現するための数学的なモデリング手法です。「数理最適化(Mathematical Optimization)」とも呼ばれます。
生産計画、資源配分、物流ルートの設計など、ビジネスのさまざまな場面で応用されている実践的な手法です。
線形計画法の基本用語
まず、線形計画法を理解するうえで押さえておきたい基本的な用語を確認しましょう。
- 決定変数(Decision Variables): 問題の最適解を決定するための変数です。表形式で整理されることが多く、これらの値を求めることが目的となります。
- 制約条件(Constraints): 解を導き出す際に課される条件のことです。資源の上限や下限などを表します。
- 目的関数(Objective Function): 最大化・最小化したい目標を定量的に表した関数です。
- 線形性(Linearity): 変数間の関係がすべて一次式(線形)である必要があります。
- 有限性(Finiteness): すべての変数の解は有限の値でなければなりません。
- 最適解(Optimal Solution): 目的関数が最大または最小となる点のことです。ここから各変数の値を求めます。
Excelで線形計画法を解く2つのアプローチ
Excelで線形計画法を解く方法は、「グラフを作成する方法」と「Excelアドイン(ソルバー)を使う方法」の2つがあります。それぞれの方法を順番に見ていきましょう。
今回は、次の目的関数と2つの制約条件を持つ問題を例に解説します。
- 目的関数: A = 8X + 10Y
- 制約条件1: 2X + 4Y ≤ 72
- 制約条件2: 4X + 2Y ≤ 48
方法1:グラフを作成して線形計画法を解く
散布図(Scatter Chart)を利用して、制約条件の直線を可視化し、最適解を求める方法です。以下の手順で進めます。
📌 手順:
- まず、各変数の係数を表に整理します。

- 次に、一方の変数を 0(ゼロ) とした場合のもう一方の変数の値を、1つ目の制約条件について求めます。

この結果、X=36 のとき Y=0、Y=18 のとき X=0 という2点が得られます。
- 同様に、2つ目の制約条件についても計算します。

こちらは、X=12 のとき Y=0、Y=24 のとき X=0 となります。
- 1つ目の制約条件の値を選択した状態で、「挿入」タブをクリックします。
- 「グラフ」グループから希望する散布図を選択します。

- 選択したデータをもとにグラフが表示されます。

- グラフ上にカーソルを合わせて右クリックし、コンテキストメニューから「データの選択」を選びます。

- 「データソースの選択」ウィンドウが表示されます。入力データは現在「Series1」という名前になっているので、これを変更しましょう。
- Series1 を選択して「編集」をクリックします。

- 「系列名」ボックスに「C1」と入力し、OKを押します。

XとYの値は選択範囲から自動的に取得されます。
- もう一つの制約条件があるため、系列を追加します。「追加」ボタンをクリックしてください。

- 「系列の編集」ウィンドウが表示されるので、系列名とX・Y変数の値の範囲を入力します。
- 再度OKを押します。

- 次のウィンドウでもOKを押します。

- 完成したグラフを確認してみましょう。

グラフには2本の制約直線が描かれ、交点を含む端点が確認できます。
- これらの端点をもとに、新しいデータセットの表を作成します。

次に、2つの制約直線の交点(点C)の座標を数式で求めます。
- セルE15に次の数式を入力します。
=MMULT(MINVERSE(C6:D7),F6:F7)

- Enterキーを押すと、XとY両方の座標値が求められます。MINVERSE関数で係数行列の逆行列を求め、MMULT関数で行列の積を計算することで連立方程式を解いています。

- 続いて、以下の数式で目的関数の値(最適値)を計算します。
=C15*$C$5+C16*$D$5

- Enterキーを押した後、フィルハンドルを右方向へドラッグします。

変数の値ごとに目的関数Aの値が計算されました。
その結果、点C(X=4、Y=16)において目的関数Aは最大値192となることがわかります。これがこの問題の最適解です。
方法2:Excelアドイン(ソルバー)で線形計画法を解く
次に、Excelに標準搭載されているアドイン「ソルバー(Solver)」を使って、同じ線形計画問題を解く方法を紹介します。こちらの方が手軽で、より複雑な問題にも対応できます。
📌 手順:
- まず、係数を次のように表に整理します。

- セルE6に次の数式を入力します。
=($C$5*C6)+($D$5*D6)

この数式により、目的関数Aの値が計算されます。
- データセットを確認すると、C5とD5が空白のため結果は0になっています。この数式を範囲E7:E8までコピーしておきましょう。
- 次に、「ファイル」→「オプション」→「アドイン」の順に開きます。
- 一覧から「ソルバー アドイン」を選択し、「設定」をクリックします。
- 「ソルバー アドイン」にチェックを入れてOKを押すと、有効化されます。

- セルE6をクリックして選択します。
- 「データ」タブを開き、「ソルバー」オプションをクリックします。

- 「ソルバー パラメーター」ウィンドウが表示されます。
- 「目的セルの設定」には、ソルバーを適用するセル(E6)を指定します。
- 今回は最大値を求めたいので、「最大」を選択します(「最小」や「特定の値」も選択可能です)。
- 次に、「追加」ボタンを押して制約条件を登録します。

- まず、変数XとYの値が0以上であるという制約(非負条件)を追加します。
- さらに「追加」を押して、他の制約条件も登録します。

- こちらは、与えられた制約条件の値を入力する画面です。
- 最後にOKを押します。

- 両方の制約条件がリストに表示されていることを確認し、「解決」ボタンをクリックします。

- すると、変数の値と目的関数Aの最適値が自動的に計算されます。

グラフ法と同じ結果、X=4、Y=16のとき最大値192が得られました。
まとめ
本記事では、Excelで線形計画法を解く2つの方法——グラフを作成する方法とソルバーアドインを使う方法——を、具体的な手順とともに解説しました。
グラフ法は問題の構造を視覚的に理解できるのが魅力で、ソルバーは複雑な問題でも瞬時に最適解を導けるのが強みです。用途に応じて使い分けてみてください。
ぜひ当サイトExcelDemyもご覧いただき、コメント欄でご意見・ご感想をお聞かせください。
-
ExcelでANOVA(分散分析)表を作成する3つの方法|結果の読み方も徹底解説
本記事では、ExcelでANOVA(分散分析)表を作成する方法をわかりやすく解説します。ANOVA表は、データセットに対して帰無仮説を採択すべきか棄却すべきかを判断する際に非常に役立つツールです。Excelに標準搭載されている「分析ツール」を活用すれば、難しい計算式を覚えなくても簡単にANOVA表を作成できます。ぜひ本記事を参考に、お手持ちのデータで分析を試してみてください。 ExcelにおけるANOVA(分散分析)とは? ANOVAは「Analysis of Variance(分散分析)」の略称です。Excelでは、帰無仮説を検定するために必要な数値を算出する手法として利用されます。Exce
-
ExcelでXMLを列に変換する4つの方法|初心者でもできる完全ガイド
このチュートリアルでは、ExcelでXMLデータを列に変換する4つの実用的な方法をご紹介します。いずれの方法も大規模なデータセットに対応しており、XMLデータから必要な値を効率よく抽出できます。さらに、本記事で解説するツールやテクニックは、その他のExcel作業全般にも役立つ内容となっています。 練習用ワークブックはこちらからダウンロードできます。 ExcelでXMLを列に変換する4つの方法 手順を分かりやすく説明するため、比較的シンプルなXMLデータセットを使用します。データセットは約7行×2列で構成され、すべてのセルは初期状態で「標準」形式に設定されています。列は「サイトURL」と「日付」