「この利益を出すには、いくら売ればいい?」「何時間働けば、希望の収入に届く?」そんな”逆算したい”ときに便利なのが、Excelの「ゴールシーク」機能です。
数式の一部を変えて、特定の結果を得るための入力値を自動で計算してくれます。関数や複雑な計算を覚える必要はありません。
この記事では、以下について詳しく解説します:
- ゴールシーク機能の基本概念と活用場面
- 具体的な操作手順と設定方法
- ビジネスや日常生活での実用例
- よくある問題と解決方法
- 応用テクニックと関連機能
これを読めば、目標から逆算した計画立てや、効率的な数値分析ができるようになりますよ。
ゴールシークとは何か?

基本的な概念
ゴールシークの定義
**ゴールシーク(Goal Seek)は、Excelの「What-If分析」機能の一つで、「結果から逆算して、必要な入力値を求める」**ツールです。
通常の計算との違い
通常の計算:
入力値 → 数式 → 結果
ゴールシーク:
目標結果 → 数式 → 必要な入力値
具体例
従来の方法:
売上100万円、経費30万円 → 利益70万円
ゴールシークの方法:
利益100万円にしたい → 経費30万円なら → 売上130万円必要
ゴールシークが必要な場面
ビジネスでの活用
- 売上目標設定:希望利益から必要売上を逆算
- 価格設定:目標利益率から適正価格を算出
- 投資計画:目標リターンから必要投資額を計算
- 人員計画:目標効率から必要人数を算出
個人での活用
- 家計管理:目標貯金額から必要な節約額を算出
- 学習計画:目標点数から必要な勉強時間を逆算
- ローン計算:希望月額から借入可能額を計算
- 投資計画:目標額から必要な積立額を算出
ゴールシークの特徴
できること
- 単一変数の最適化:1つの値を変えて目標達成
- 瞬時の計算:手動計算では時間のかかる逆算を瞬時に実行
- 試行錯誤の排除:何度も値を変更する手間を省略
できないこと
- 複数変数の同時最適化:2つ以上の値を同時に変更
- 制約条件の設定:上限・下限などの制約は設定不可
- 複雑な最適化:非線形問題や多目的最適化
ゴールシークの基本操作手順
事前準備:数式の設定
基本的な数式構造
ゴールシークを使用する前に、以下の要素を含む数式を作成します:
- 入力セル:変更される値(変数)
- 計算セル:数式が入力されたセル(目標値)
- 数式:入力セルを参照した計算式
実例:利益計算の設定
A列 | B列
--------|----------
売上 | 150000
経費 | 50000
利益 | =B1-B2
操作手順(3ステップ)
ステップ1:計算式の確認
- 数式セルを選択(例:利益のセル B3)
- 数式が正しく動作することを確認
- 参照セルが適切に設定されていることを確認
ステップ2:ゴールシーク機能の起動
- 「データ」タブをクリック
- 「予測」グループの「What-If分析」をクリック
- ドロップダウンメニューから「ゴールシーク」を選択
ステップ3:パラメーターの設定
ゴールシークダイアログボックスで以下を設定:
数式セル(Set cell)
- 目標となる結果が表示されるセル
- 数式が入力されているセル
- 例:B3(利益のセル)
目標値(To value)
- 達成したい数値
- 具体的な目標数値を入力
- 例:100000(10万円の利益)
変化させるセル(By changing cell)
- 調整したい入力値のセル
- 数式で参照されているセル
- 例:B1(売上のセル)
実行と結果確認
計算の実行
- 設定完了後「OK」をクリック
- Excelが自動計算を実行
- 「ゴールシークの状況」ダイアログが表示
結果の確認
ゴールシークの状況:
目標値: 100000
現在の値: 100000
変化させるセルの値: 150000
結果の採用・却下
- 「OK」:計算結果を採用
- 「キャンセル」:元の値に戻す
実用的な活用例

ビジネス分析での活用
例1:売上目標の設定
目的:月利益50万円を達成したい
条件:固定費30万円、変動費率20%
設定:
A1: 売上 | 1000000
A2: 変動費 | =A1*0.2
A3: 固定費 | 300000
A4: 利益 | =A1-A2-A3
ゴールシーク設定:
数式セル: A4
目標値: 500000
変化させるセル: A1
結果:売上100万円が必要
例2:価格設定の最適化
目的:利益率30%を達成したい
条件:原価500円
設定:
A1: 売価 | 800
A2: 原価 | 500
A3: 利益 | =A1-A2
A4: 利益率 | =A3/A1
ゴールシーク設定:
数式セル: A4
目標値: 0.3
変化させるセル: A1
結果:売価714円が必要
例3:投資リターンの計算
目的:年利5%を達成したい
条件:投資期間3年、目標額1000万円
設定:
A1: 初期投資 | 5000000
A2: 期間 | 3
A3: 目標額 | 10000000
A4: 年利 | =(A3/A1)^(1/A2)-1
ゴールシーク設定:
数式セル: A4
目標値: 0.05
変化させるセル: A1
結果:初期投資863万円が必要
個人生活での活用
例1:家計管理・貯金計画
目的:3年で100万円貯めたい
条件:年利1%の定期預金
設定:
A1: 月積立額 | 25000
A2: 期間(月) | 36
A3: 年利 | 0.01
A4: 貯金総額 | =A1*A2*(1+A3/12)^A2
ゴールシーク設定:
数式セル: A4
目標値: 1000000
変化させるセル: A1
結果:月額27,500円の積立が必要
例2:学習計画の立案
目的:総合点80点を取りたい
条件:国語70点、数学85点、理科75点
設定:
A1: 国語 | 70
A2: 数学 | 85
A3: 理科 | 75
A4: 英語 | 80
A5: 社会 | 80
A6: 平均点 | =(A1+A2+A3+A4+A5)/5
ゴールシーク設定:
数式セル: A6
目標値: 80
変化させるセル: A4
結果:英語75点が必要
例3:ローン返済計画
目的:月返済額8万円以内にしたい
条件:金利1.5%、期間35年
設定:
A1: 借入額 | 30000000
A2: 年利 | 0.015
A3: 期間(年) | 35
A4: 月返済額 | =PMT(A2/12,A3*12,-A1)
ゴールシーク設定:
数式セル: A4
目標値: 80000
変化させるセル: A1
結果:借入可能額2,700万円
よくある問題と解決方法

計算エラーの対処
問題1:「解が見つかりません」エラー
原因:数学的に解が存在しない
例:
売上 = 100万円(固定)
経費 = 120万円
利益 = 売上 - 経費 = -20万円
目標:利益100万円 → 不可能
解決方法:
- 現実的な目標設定:達成可能な数値に変更
- 制約条件の見直し:固定値を変更可能にする
問題2:「収束しません」エラー
原因:数式が複雑すぎて解が収束しない
解決方法:
- 数式の簡素化:複雑な入れ子関数を分解
- 初期値の調整:変化させるセルの初期値を変更
- 精度の調整:Excelオプションで計算精度を変更
設定ミスの対処
問題3:循環参照エラー
原因:数式セルと変化させるセルが同じ
例:
A1: =A1*1.1 // 自分自身を参照
解決方法:
- 参照関係の確認:数式の参照先をチェック
- セル分離:計算と結果を別セルに分ける
問題4:期待と異なる結果
原因:数式の論理エラー
解決方法:
- 数式の検証:手動計算で確認
- 段階的計算:複雑な数式を分解
- 単位の統一:円・万円、日・月などの単位確認
高度な活用テクニック
複数のゴールシーク
連続実行による最適化
Sub MultipleGoalSeek()
' 複数の目標を順次実行
Range("B4").GoalSeek Goal:=100000, ChangingCell:=Range("B1")
Range("B5").GoalSeek Goal:=200000, ChangingCell:=Range("B2")
End Sub
条件付きゴールシーク
IF関数との組み合わせ
// 段階的な税率計算
=IF(A1<=3000000, A1*0.1, IF(A1<=6000000, A1*0.2-300000, A1*0.3-900000))
データテーブルとの連携
感度分析の実行
- データテーブルで複数シナリオを作成
- 各シナリオでゴールシークを実行
- 結果を比較分析
ソルバーとの使い分け

ゴールシークが適している場面
単純な逆算問題
- 1つの変数を変更
- 明確な目標値
- 線形関係
ソルバーが適している場面
複雑な最適化問題
- 複数の変数を同時変更
- 制約条件が複数
- 最大化・最小化
比較表
機能 | ゴールシーク | ソルバー |
---|---|---|
変数数 | 1個 | 複数 |
制約条件 | なし | 複数設定可能 |
計算複雑度 | 簡単 | 高度 |
使いやすさ | 簡単 | やや複雑 |
VBAでの自動化
基本的なVBAコード
ゴールシークの自動実行
Sub AutoGoalSeek()
Dim targetCell As Range
Dim changingCell As Range
Dim targetValue As Double
Set targetCell = Range("B4") ' 数式セル
Set changingCell = Range("B1") ' 変化させるセル
targetValue = 100000 ' 目標値
targetCell.GoalSeek Goal:=targetValue, ChangingCell:=changingCell
End Sub
結果の保存
Sub GoalSeekWithSave()
Dim result As Boolean
Dim originalValue As Double
originalValue = Range("B1").Value
result = Range("B4").GoalSeek(Goal:=100000, ChangingCell:=Range("B1"))
If result Then
' 結果を別のセルに保存
Range("C1").Value = Range("B1").Value
MsgBox "ゴールシーク完了: " & Range("B1").Value
Else
Range("B1").Value = originalValue
MsgBox "ゴールシークに失敗しました"
End If
End Sub
まとめ
Excelのゴールシーク機能は、目標から逆算して必要な値を求める強力なツールです。適切に活用することで、効率的な計画立案や意思決定が可能になります。
基本的な使用手順
3ステップでの実行
- 数式の準備:入力セルと数式セルを設定
- ゴールシーク起動:「データ」→「What-If分析」→「ゴールシーク」
- パラメーター設定:数式セル、目標値、変化させるセルを指定
効果的な活用のポイント
事前準備
- 数式の正確性:計算ロジックの確認
- 現実的な目標:達成可能な数値設定
- 単位の統一:計算に使用する単位の確認
エラー対策
- 段階的テスト:簡単な例から始める
- 結果の検証:手動計算での確認
- バックアップ:元データの保護
コメント