STEP 39:感度分析とシナリオ分析

🎯 STEP 39: 感度分析とシナリオ分析

変数の変化が結果にどう影響するかを分析しよう

📋 このステップで学ぶこと

  • 感度分析の概念と目的
  • 変数の影響度評価方法
  • トルネードチャートの作成と読み方
  • シナリオ分析(楽観・標準・悲観)
  • PythonとExcelでの実装方法

🔍 1. 感度分析とは

なぜ感度分析が必要なのか

ビジネスの計画を立てるとき、「売上は1,000万円になる」「利益は200万円になる」と予測しますよね。でも、その予測には不確実性があります。

⚠️ ビジネス予測の不確実性

予測が外れる原因:
・価格競争で値下げが必要になるかも
・想定より売れないかも
・原材料費が上がるかも
・固定費(人件費など)が増えるかも

疑問:
「もし価格が10%下がったら、利益はどうなる?」
「もし販売数量が20%減ったら、赤字になる?」

→ この「もし〜だったら」を分析するのが感度分析

📌 感度分析(Sensitivity Analysis)とは

定義:
入力値(変数)を変化させたとき、結果(利益など)がどれくらい変わるかを分析すること

感度分析で分かること:

① 重要な変数の特定
「価格が1%変わると利益が5%変わる」
「固定費が1%変わっても利益は0.5%しか変わらない」
価格の管理が最重要!と分かる

② リスクの把握
「価格が20%下がると赤字になる」
→ 価格競争への対策が必要と分かる

③ 意思決定の頑健性確認
「多少条件が変わっても、この計画は黒字」
→ 自信を持って計画を実行できる

感度分析の具体例

💡 新商品の利益計画を感度分析してみよう

基準ケース(ベースライン):
・価格:1,000円
・原価:600円
・販売数量:10,000個
・固定費:200万円

利益の計算式:
利益 = (価格 − 原価)× 販売数量 − 固定費
= (1,000 − 600)× 10,000 − 2,000,000
= 400 × 10,000 − 2,000,000
= 4,000,000 − 2,000,000
= 200万円

感度分析の質問:
・価格が10%下がったら利益は?
・販売数量が20%増えたら利益は?
・原価が5%上がったら利益は?
どの変数の影響が最も大きい?

感度分析の種類

分析の種類 内容 使いどころ
一変数感度分析 1つの変数だけを変化させる
他の変数は固定
各変数の影響を個別に把握
二変数感度分析 2つの変数を同時に変化させる
マトリックスで表示
変数間の相互作用を確認
トルネード分析 すべての変数の影響度を比較
影響の大きい順に並べる
重点管理すべき変数を特定

📊 2. 感度分析の実装

Pythonで感度分析をしてみよう

まずは、1つの変数だけを変化させる一変数感度分析から始めましょう。

Step 1:利益を計算する関数を作成

# ============================================ # ライブラリの読み込み # ============================================ import numpy as np # 数学計算用 import pandas as pd # データ処理用 import matplotlib.pyplot as plt # グラフ描画用 # 日本語フォント設定(グラフに日本語を表示するため) plt.rcParams[‘font.sans-serif’] = [‘Arial Unicode MS’, ‘Yu Gothic’, ‘Hiragino Sans’] plt.rcParams[‘axes.unicode_minus’] = False # ============================================ # 基準ケース(ベースライン)の設定 # ============================================ # 何と比較するかの「基準」を決める price_base = 1000 # 価格(円) cost_base = 600 # 原価(円) quantity_base = 10000 # 販売数量(個) fixed_cost_base = 2000000 # 固定費(円) # ============================================ # 利益を計算する関数 # ============================================ def calculate_profit(price, cost, quantity, fixed_cost): “”” 利益を計算する関数 利益 = 売上 – 変動費 – 固定費 = (価格 × 数量) – (原価 × 数量) – 固定費 = (価格 – 原価) × 数量 – 固定費 “”” revenue = price * quantity # 売上 variable_cost = cost * quantity # 変動費 profit = revenue – variable_cost – fixed_cost # 利益 return profit # 基準ケースの利益を計算 profit_base = calculate_profit(price_base, cost_base, quantity_base, fixed_cost_base) print(“【基準ケース(ベースライン)】”) print(f”価格: {price_base:,}円”) print(f”原価: {cost_base:,}円”) print(f”販売数量: {quantity_base:,}個”) print(f”固定費: {fixed_cost_base:,}円”) print() print(f”売上: {price_base * quantity_base:,}円”) print(f”変動費: {cost_base * quantity_base:,}円”) print(f”利益: {profit_base:,}円”)
# 出力結果 【基準ケース(ベースライン)】 価格: 1,000円 原価: 600円 販売数量: 10,000個 固定費: 2,000,000円 売上: 10,000,000円 変動費: 6,000,000円 利益: 2,000,000円

Step 2:価格の感度分析

# ============================================ # 価格の感度分析 # ============================================ # 価格を-30%〜+30%まで変化させて、利益がどう変わるか調べる print(“【価格の感度分析】”) print() # np.arange(-30, 35, 5): -30から30まで5刻みのリストを作成 # 結果: [-30, -25, -20, -15, -10, -5, 0, 5, 10, 15, 20, 25, 30] price_changes = np.arange(-30, 35, 5) # 結果を格納するリスト price_results = [] # 各変化率で利益を計算 for change in price_changes: # 新しい価格を計算 # 例: change=10なら、price = 1000 × (1 + 10/100) = 1100円 price = price_base * (1 + change/100) # 利益を計算(他の変数は固定) profit = calculate_profit(price, cost_base, quantity_base, fixed_cost_base) # 利益の変化率を計算 # 例: 利益が300万になったら、(300-200)/200 × 100 = 50%増 profit_change = (profit – profit_base) / profit_base * 100 # 結果を保存 price_results.append({ ‘価格変化率(%)’: change, ‘価格(円)’: price, ‘利益(円)’: profit, ‘利益変化率(%)’: profit_change }) # DataFrameに変換して表示 df_price = pd.DataFrame(price_results) print(df_price.to_string(index=False))
# 出力結果 【価格の感度分析】 価格変化率(%) 価格(円) 利益(円) 利益変化率(%) -30 700.0 -1000000.0 -150.0 -25 750.0 -500000.0 -125.0 -20 800.0 0.0 -100.0 -15 850.0 500000.0 -75.0 -10 900.0 1000000.0 -50.0 -5 950.0 1500000.0 -25.0 0 1000.0 2000000.0 0.0 5 1050.0 2500000.0 25.0 10 1100.0 3000000.0 50.0 15 1150.0 3500000.0 75.0 20 1200.0 4000000.0 100.0 25 1250.0 4500000.0 125.0 30 1300.0 5000000.0 150.0
📌 価格の感度分析結果の読み方

重要な発見:
・価格が10%上がると、利益は50%増加(200万→300万)
・価格が10%下がると、利益は50%減少(200万→100万)
・価格が20%下がると、利益はゼロ(損益分岐点)
・価格が30%下がると、100万円の赤字

結論:価格は利益に大きな影響を与える!
→ 価格競争には要注意、値引きは慎重に

Step 3:販売数量と原価の感度分析

# ============================================ # 販売数量の感度分析 # ============================================ quantity_changes = np.arange(-30, 35, 5) quantity_results = [] for change in quantity_changes: quantity = quantity_base * (1 + change/100) profit = calculate_profit(price_base, cost_base, quantity, fixed_cost_base) profit_change = (profit – profit_base) / profit_base * 100 quantity_results.append({ ‘数量変化率(%)’: change, ‘利益変化率(%)’: profit_change }) df_quantity = pd.DataFrame(quantity_results) # ============================================ # 原価の感度分析 # ============================================ cost_changes = np.arange(-30, 35, 5) cost_results = [] for change in cost_changes: cost = cost_base * (1 + change/100) profit = calculate_profit(price_base, cost, quantity_base, fixed_cost_base) profit_change = (profit – profit_base) / profit_base * 100 cost_results.append({ ‘原価変化率(%)’: change, ‘利益変化率(%)’: profit_change }) df_cost = pd.DataFrame(cost_results) # ============================================ # 3つの変数を比較(10%変化時) # ============================================ print(“【感度の比較(各変数が10%変化した場合)】”) print() # 価格が10%上昇 price_10 = calculate_profit(price_base * 1.1, cost_base, quantity_base, fixed_cost_base) price_impact = (price_10 – profit_base) / profit_base * 100 # 販売数量が10%増加 quantity_10 = calculate_profit(price_base, cost_base, quantity_base * 1.1, fixed_cost_base) quantity_impact = (quantity_10 – profit_base) / profit_base * 100 # 原価が10%上昇(利益にはマイナスの影響) cost_10 = calculate_profit(price_base, cost_base * 1.1, quantity_base, fixed_cost_base) cost_impact = (cost_10 – profit_base) / profit_base * 100 print(f”価格が10%上昇 → 利益 {price_impact:+.1f}%”) print(f”販売数量が10%増加 → 利益 {quantity_impact:+.1f}%”) print(f”原価が10%上昇 → 利益 {cost_impact:+.1f}%”) print() # 影響度ランキング print(“【影響度ランキング】”) print(f”1位: 価格 → {abs(price_impact):.1f}%の影響”) print(f”2位: 原価 → {abs(cost_impact):.1f}%の影響”) print(f”3位: 販売数量 → {abs(quantity_impact):.1f}%の影響”)
# 出力結果 【感度の比較(各変数が10%変化した場合)】 価格が10%上昇 → 利益 +50.0% 販売数量が10%増加 → 利益 +20.0% 原価が10%上昇 → 利益 -30.0% 【影響度ランキング】 1位: 価格 → 50.0%の影響 2位: 原価 → 30.0%の影響 3位: 販売数量 → 20.0%の影響
💡 感度分析の重要な発見

変数が10%変化したときの利益への影響:

1位:価格 → 利益50%変化
2位:原価 → 利益30%変化
3位:販売数量 → 利益20%変化

実務への示唆:
価格の管理が最重要(値引きは慎重に!)
・原価削減も効果が大きい(仕入れ交渉、効率化)
・販売数量増加は影響が比較的小さい

※ ただし、これはこのケースの話。
 商品や状況によって結果は変わります。

トルネード分析

トルネード分析は、すべての変数の影響度を1つのグラフで比較する方法です。竜巻(トルネード)の形に似ているのでこの名前がついています。

Step 4:トルネードチャートの作成

※ 以下のコードは横スクロールで全体を確認できます。

# ============================================ # トルネード分析 # ============================================ # 各変数を±20%変化させたときの利益への影響を計算 variables = [‘価格’, ‘販売数量’, ‘原価’, ‘固定費’] change_pct = 20 # ±20%の変化 tornado_data = [] for var in variables: if var == ‘価格’: # 価格が+20%(良い方向)と-20%(悪い方向) profit_high = calculate_profit(price_base * 1.2, cost_base, quantity_base, fixed_cost_base) profit_low = calculate_profit(price_base * 0.8, cost_base, quantity_base, fixed_cost_base) elif var == ‘販売数量’: # 数量が+20%(良い方向)と-20%(悪い方向) profit_high = calculate_profit(price_base, cost_base, quantity_base * 1.2, fixed_cost_base) profit_low = calculate_profit(price_base, cost_base, quantity_base * 0.8, fixed_cost_base) elif var == ‘原価’: # 原価は逆!-20%が良い方向、+20%が悪い方向 profit_high = calculate_profit(price_base, cost_base * 0.8, quantity_base, fixed_cost_base) profit_low = calculate_profit(price_base, cost_base * 1.2, quantity_base, fixed_cost_base) else: # 固定費 # 固定費も逆!-20%が良い方向、+20%が悪い方向 profit_high = calculate_profit(price_base, cost_base, quantity_base, fixed_cost_base * 0.8) profit_low = calculate_profit(price_base, cost_base, quantity_base, fixed_cost_base * 1.2) # 基準からの変化額を計算 impact_high = profit_high – profit_base # 良い方向への変化 impact_low = profit_low – profit_base # 悪い方向への変化 impact_range = abs(impact_high – impact_low) # 振れ幅 tornado_data.append({ ‘変数’: var, ‘良い方向’: impact_high, ‘悪い方向’: impact_low, ‘振れ幅’: impact_range }) # DataFrameに変換し、振れ幅の小さい順にソート(グラフ用) df_tornado = pd.DataFrame(tornado_data) df_tornado = df_tornado.sort_values(‘振れ幅’, ascending=True) print(“【トルネード分析(±20%変化時)】”) print() print(df_tornado.to_string(index=False))
# 出力結果 【トルネード分析(±20%変化時)】 変数 良い方向 悪い方向 振れ幅 固定費 400000.0 -400000.0 800000.0 販売数量 800000.0 -800000.0 1600000.0 原価 1200000.0 -1200000.0 2400000.0 価格 2000000.0 -2000000.0 4000000.0
📝 トルネード分析結果の読み方

振れ幅の大きさ = 影響度の大きさ

1位:価格(振れ幅400万円)
2位:原価(振れ幅240万円)
3位:販売数量(振れ幅160万円)
4位:固定費(振れ幅80万円)

価格の振れ幅は固定費の5倍!
→ 価格管理に最も注力すべき

Excelでの感度分析

【Excelで感度分析を行う方法】 ■ 基本設定 A列 B列 ───────────── 価格 1000 原価 600 販売数量 10000 固定費 2000000 利益 =(B1-B2)*B3-B4 ■ 一変数感度分析(データテーブル使用) 1. 価格の変化率リスト作成(-30%, -20%, …, +30%) 2. 各変化率での価格を計算(=B1*(1+変化率)) 3. 利益の計算式をコピー 4. データ → What-If分析 → データテーブル ■ 二変数感度分析 1. 行に価格の変化率、列に数量の変化率を配置 2. データテーブルで2変数を同時に変化 3. マトリックス形式で結果を表示 ■ トルネードチャート 1. 各変数の±20%での利益を計算 2. 影響額を棒グラフで表示 3. 影響の大きい順に並べ替え

🎭 3. シナリオ分析

シナリオ分析とは

感度分析は「1つの変数だけ」を変えましたが、現実では複数の変数が同時に変化します。例えば、景気が悪くなると「価格が下がり」「販売数量も減り」「原価は上がる」といった具合です。

📌 シナリオ分析の考え方

感度分析との違い:
・感度分析:1変数ずつ変化
・シナリオ分析:複数変数を同時に変化

なぜシナリオ分析が必要か:
現実世界では、変数は独立して動かない。
・景気後退 → 価格↓、数量↓、原価↑ が同時に起きる
・好景気 → 価格↑、数量↑、原価↓ が同時に起きる

→ より現実的なシミュレーションができる!

3つの標準シナリオ

💡 楽観・標準・悲観の3シナリオ

① 楽観シナリオ(Best Case)

「すべてがうまくいった場合」
・価格:+10%(値上げに成功)
・販売数量:+20%(予想以上に売れた)
・原価:-10%(仕入れコスト削減に成功)
・固定費:-5%(効率化に成功)

② 標準シナリオ(Base Case)

「計画通りの場合」
・すべての変数が基準値のまま
・最も可能性が高いと考えるケース

③ 悲観シナリオ(Worst Case)

「すべてが悪い方向に行った場合」
・価格:-10%(値下げを余儀なくされた)
・販売数量:-20%(予想より売れなかった)
・原価:+10%(原材料費が高騰)
・固定費:+5%(コストが増加)

Pythonでシナリオ分析

Step 1:シナリオの定義

# ============================================ # シナリオの定義 # ============================================ # 辞書形式で各シナリオの変化率を定義 scenarios = { ‘楽観シナリオ’: { ‘price_change’: 0.10, # 価格+10% ‘quantity_change’: 0.20, # 数量+20% ‘cost_change’: -0.10, # 原価-10% ‘fixed_cost_change’: -0.05 # 固定費-5% }, ‘標準シナリオ’: { ‘price_change’: 0.00, # 変化なし ‘quantity_change’: 0.00, ‘cost_change’: 0.00, ‘fixed_cost_change’: 0.00 }, ‘悲観シナリオ’: { ‘price_change’: -0.10, # 価格-10% ‘quantity_change’: -0.20, # 数量-20% ‘cost_change’: 0.10, # 原価+10% ‘fixed_cost_change’: 0.05 # 固定費+5% } } print(“【シナリオの設定】”) print() for name, changes in scenarios.items(): print(f”{name}:”) print(f” 価格: {changes[‘price_change’]:+.0%}”) print(f” 販売数量: {changes[‘quantity_change’]:+.0%}”) print(f” 原価: {changes[‘cost_change’]:+.0%}”) print(f” 固定費: {changes[‘fixed_cost_change’]:+.0%}”) print()
# 出力結果 【シナリオの設定】 楽観シナリオ: 価格: +10% 販売数量: +20% 原価: -10% 固定費: -5% 標準シナリオ: 価格: +0% 販売数量: +0% 原価: +0% 固定費: +0% 悲観シナリオ: 価格: -10% 販売数量: -20% 原価: +10% 固定費: +5%

Step 2:各シナリオの利益を計算

# ============================================ # 各シナリオの利益計算 # ============================================ scenario_results = [] for scenario_name, changes in scenarios.items(): # 変化後のパラメータを計算 # (1 + 変化率) を掛けて新しい値を求める price = price_base * (1 + changes[‘price_change’]) quantity = quantity_base * (1 + changes[‘quantity_change’]) cost = cost_base * (1 + changes[‘cost_change’]) fixed_cost = fixed_cost_base * (1 + changes[‘fixed_cost_change’]) # 各種指標を計算 revenue = price * quantity # 売上 variable_cost = cost * quantity # 変動費 contribution = revenue – variable_cost # 貢献利益 profit = contribution – fixed_cost # 利益 # 結果を保存 scenario_results.append({ ‘シナリオ’: scenario_name, ‘売上’: revenue, ‘変動費’: variable_cost, ‘貢献利益’: contribution, ‘固定費’: fixed_cost, ‘利益’: profit }) # 結果を表示 print(“【シナリオ分析結果】”) print(“=” * 60) for result in scenario_results: print() print(f”■ {result[‘シナリオ’]}”) print(“-” * 60) print(f”売上: {result[‘売上’]:>12,.0f}円”) print(f”変動費: {result[‘変動費’]:>12,.0f}円”) print(f”貢献利益: {result[‘貢献利益’]:>12,.0f}円”) print(f”固定費: {result[‘固定費’]:>12,.0f}円”) print(f”利益: {result[‘利益’]:>12,.0f}円”) print() print(“=” * 60)
# 出力結果 【シナリオ分析結果】 ============================================================ ■ 楽観シナリオ ———————————————————— 売上: 13,200,000円 変動費: 6,480,000円 貢献利益: 6,720,000円 固定費: 1,900,000円 利益: 4,820,000円 ■ 標準シナリオ ———————————————————— 売上: 10,000,000円 変動費: 6,000,000円 貢献利益: 4,000,000円 固定費: 2,000,000円 利益: 2,000,000円 ■ 悲観シナリオ ———————————————————— 売上: 7,200,000円 変動費: 5,280,000円 貢献利益: 1,920,000円 固定費: 2,100,000円 利益: -180,000円 ============================================================

Step 3:結果の比較と評価

# ============================================ # 結果の比較と評価 # ============================================ # 各シナリオの利益を取得 best_profit = scenario_results[0][‘利益’] # 楽観 base_profit = scenario_results[1][‘利益’] # 標準 worst_profit = scenario_results[2][‘利益’] # 悲観 print(“【利益の比較】”) print() print(f”楽観シナリオ: {best_profit:>12,.0f}円 ({(best_profit/base_profit-1)*100:+.1f}%)”) print(f”標準シナリオ: {base_profit:>12,.0f}円 (基準)”) print(f”悲観シナリオ: {worst_profit:>12,.0f}円 ({(worst_profit/base_profit-1)*100:+.1f}%)”) print() print(f”利益の振れ幅: {best_profit – worst_profit:,.0f}円”) print() # リスク評価 print(“【リスク評価】”) print() if worst_profit > 0: print(“✅ 悲観シナリオでも黒字”) print(“→ この計画はリスク許容範囲内”) else: print(“⚠️ 悲観シナリオでは赤字”) print(f” 赤字額: {abs(worst_profit):,.0f}円”) print(“→ リスク対策の検討が必要”)
# 出力結果 【利益の比較】 楽観シナリオ: 4,820,000円 (+141.0%) 標準シナリオ: 2,000,000円 (基準) 悲観シナリオ: -180,000円 (-109.0%) 利益の振れ幅: 5,000,000円 【リスク評価】 ⚠️ 悲観シナリオでは赤字 赤字額: 180,000円 → リスク対策の検討が必要
💡 シナリオ分析の重要な発見

結果のまとめ:
・楽観シナリオ:利益482万円(標準の2.4倍)
・標準シナリオ:利益200万円(基準)
・悲観シナリオ:18万円の赤字

⚠️ 悲観シナリオで赤字になる!

必要な対策:
・固定費を18万円以上削減できれば、悲観でも黒字
・価格維持のための差別化戦略
・販売数量確保のためのマーケティング強化
・原価削減のための仕入れ交渉

→ 事前に対策を準備しておくことが重要!

Excelでのシナリオ分析

【Excelのシナリオ機能を使う方法】 ■ Step 1: 基本データの準備 A列 B列 ───────────── 価格 1000 販売数量 10000 原価 600 固定費 2000000 利益 =(B1-B3)*B2-B4 ■ Step 2: シナリオの作成 データ → What-If分析 → シナリオの登録と管理 【楽観シナリオ】 価格: 1100 販売数量: 12000 原価: 540 固定費: 1900000 【標準シナリオ】 価格: 1000 販売数量: 10000 原価: 600 固定費: 2000000 【悲観シナリオ】 価格: 900 販売数量: 8000 原価: 660 固定費: 2100000 ■ Step 3: シナリオの比較 「シナリオの要約」ボタンをクリック → 3つのシナリオを一覧表で比較できる

💼 4. 実務での活用方法

感度分析・シナリオ分析の使い分け

分析手法 使うタイミング 目的
感度分析 初期検討段階 重要な変数を特定する
管理すべき指標を決める
トルネード分析 重点管理の決定時 すべての変数の影響度を比較
優先順位を可視化
シナリオ分析 最終意思決定時 最悪ケースでの損益確認
リスク対策の検討

経営層へのプレゼンでの使い方

📌 説得力のあるプレゼン構成

① まず感度分析の結果を示す
「価格が最も利益に影響します。10%の変化で利益は50%変わります。」
→ 何を重点管理すべきか明確に

② トルネードチャートで視覚化
「このグラフの通り、価格の影響が最大です。次いで原価、販売数量の順です。」
→ 一目で重要度が分かる

③ シナリオ分析で最悪ケースを示す
「すべてが悪い方向に行っても、○○の対策があれば黒字を維持できます。」
→ リスクを理解した上での提案

④ 対策とアクションプランを提示
「価格維持のために差別化を強化します。月次でモニタリングします。」
→ 具体的な行動計画

📝 STEP 39 のまとめ

✅ このステップで学んだこと

1. 感度分析

  • 「もし〜が変わったら、結果はどう変わる?」を分析
  • 1つの変数を変化させて影響度を測定
  • 重要な変数を特定できる

2. トルネード分析

  • すべての変数の影響度を比較
  • 影響の大きい順に並べて可視化
  • 重点管理すべき変数が一目で分かる

3. シナリオ分析

  • 複数の変数を同時に変化させる
  • 楽観・標準・悲観の3シナリオ
  • 最悪ケースでも大丈夫か確認

4. 実務での活用

  • リスク評価と対策立案
  • 経営層への説得力あるプレゼン
  • 自信を持った意思決定
💡 最も大切なポイント

不確実性を理解した上で意思決定しよう!

ビジネスの予測には必ず不確実性があります。感度分析とシナリオ分析を使えば…

・どの変数が最も重要か分かる
・最悪の場合でも耐えられるか確認できる
・リスク対策を事前に準備できる
・自信を持って意思決定できる

次のSTEP 40では、「What-If分析」を学びます。より柔軟に「もし〜だったら」を分析する方法を習得しましょう!

🎯 次のステップの予告

STEP 40では、「What-If分析」を学びます。Excelのゴールシークやソルバーを使って、目標達成に必要な条件を逆算する方法を習得しましょう!

📝 練習問題

問題 1 基礎

感度分析とシナリオ分析の違いを説明してください。

【解答】
感度分析 シナリオ分析
変化させる変数 1つずつ 複数を同時に
目的 各変数の影響度を把握 現実的なケースを想定
使いどころ 重要変数の特定 リスク評価・最終判断
結果 「価格が10%変わると利益は50%変わる」 「最悪でも18万円の赤字で済む」

使い分けのコツ:
① まず感度分析で重要な変数を特定
② 次にシナリオ分析で最悪ケースを確認
③ 両方の結果を踏まえて意思決定

問題 2 基礎

以下の基準ケースで、価格が10%上昇した場合の利益を計算してください。

・価格:2,000円
・原価:1,200円
・販売数量:5,000個
・固定費:300万円

【解答】

基準ケースの利益:

売上 = 2,000 × 5,000 = 10,000,000円
変動費 = 1,200 × 5,000 = 6,000,000円
貢献利益 = 10,000,000 – 6,000,000 = 4,000,000円
利益 = 4,000,000 – 3,000,000 = 1,000,000円

価格10%上昇後(2,200円):

売上 = 2,200 × 5,000 = 11,000,000円
変動費 = 1,200 × 5,000 = 6,000,000円
貢献利益 = 11,000,000 – 6,000,000 = 5,000,000円
利益 = 5,000,000 – 3,000,000 = 2,000,000円

利益の変化:
100万円 → 200万円(+100%、2倍

ポイント:価格が10%上がっただけで、利益は2倍に!
→ 価格の影響度が非常に大きいことが分かる

問題 3 応用

問題2の基準ケースで、以下の3つのシナリオの利益を計算してください。

楽観シナリオ:価格+5%、数量+15%、原価-5%
悲観シナリオ:価格-5%、数量-15%、原価+5%

悲観シナリオでも黒字かどうか評価してください。

【解答】

楽観シナリオ:

価格 = 2,000 × 1.05 = 2,100円
販売数量 = 5,000 × 1.15 = 5,750個
原価 = 1,200 × 0.95 = 1,140円

売上 = 2,100 × 5,750 = 12,075,000円
変動費 = 1,140 × 5,750 = 6,555,000円
貢献利益 = 5,520,000円
利益 = 5,520,000 – 3,000,000 = 2,520,000円

悲観シナリオ:

価格 = 2,000 × 0.95 = 1,900円
販売数量 = 5,000 × 0.85 = 4,250個
原価 = 1,200 × 1.05 = 1,260円

売上 = 1,900 × 4,250 = 8,075,000円
変動費 = 1,260 × 4,250 = 5,355,000円
貢献利益 = 2,720,000円
利益 = 2,720,000 – 3,000,000 = -280,000円(赤字)

評価:

⚠️ 悲観シナリオでは28万円の赤字

リスク対策案:
・固定費を28万円以上削減 → 悲観でも損益分岐
・価格維持のための差別化戦略
・販売数量確保のマーケティング強化
・原価削減の仕入れ交渉
問題 4 応用

トルネード分析の結果が以下の通りでした。最も管理すべき変数はどれですか?理由も説明してください。

・価格(±20%):利益の振れ幅 400万円
・販売数量(±20%):利益の振れ幅 160万円
・原価(±20%):利益の振れ幅 240万円
・固定費(±20%):利益の振れ幅 80万円

【解答】

管理優先順位:

1位:価格(振れ幅400万円)
2位:原価(振れ幅240万円)
3位:販売数量(振れ幅160万円)
4位:固定費(振れ幅80万円)

最も管理すべき変数:価格

理由:
・利益への影響が最も大きい(400万円)
・2位の原価(240万円)の約1.7倍
・4位の固定費(80万円)の5倍

具体的なアクション:
・競合価格の定期モニタリング
・値引き権限の明確化(安易な値引き防止)
・価格維持のための差別化戦略
・価格弾力性の分析(値上げ余地の検討)
問題 5 実践

あなたは新規事業の企画担当です。以下の計画について、感度分析とシナリオ分析を行い、経営会議で提案する内容をまとめてください。

基準ケース:
・価格:5,000円
・原価:3,000円
・販売数量:2,000個/年
・固定費:200万円/年

シナリオ設定:
・楽観:価格+10%、数量+30%、原価-10%
・悲観:価格-10%、数量-30%、原価+10%

【解答】

① 基準ケースの利益:

利益 = (5,000 – 3,000) × 2,000 – 2,000,000
= 4,000,000 – 2,000,000 = 200万円

② 感度分析(各変数10%変化時):

価格+10% → 利益300万円(+50%)
数量+10% → 利益240万円(+20%)
原価+10% → 利益140万円(-30%)

→ 価格の影響が最大

③ シナリオ分析:

楽観シナリオ:
価格5,500円、数量2,600個、原価2,700円
利益 = (5,500-2,700)×2,600 – 2,000,000
= 7,280,000 – 2,000,000 = 528万円

悲観シナリオ:
価格4,500円、数量1,400個、原価3,300円
利益 = (4,500-3,300)×1,400 – 2,000,000
= 1,680,000 – 2,000,000 = -32万円(赤字)

④ 経営会議への提案内容:

【提案】本事業は実行可能だが、リスク対策が必要

収益見通し:
・標準ケース:利益200万円
・楽観ケース:利益528万円
・悲観ケース:赤字32万円

重点管理項目:
・価格(影響度最大)の維持
・差別化による価格競争回避

リスク対策:
・固定費を32万円削減で悲観でも黒字化
・販売数量1,700個を最低ライン目標に
・月次モニタリングで早期に対策

推奨アクション:
・固定費10%削減を前提に事業開始
・初年度は慎重に、2年目以降で拡大

❓ よくある質問

Q1: シナリオの変化率(±10%など)はどう決めれば良いですか?
過去データと市場環境から決めます。

変化率の設定方法:

① 過去データから
・過去3〜5年の変動幅を確認
・標準偏差を計算
・±1σ(68%範囲)または±2σ(95%範囲)を使用

② 業界標準から
・成長期:±20〜30%
・安定期:±10%
・衰退期:-20〜30%

③ 保守的アプローチ
・楽観:控えめに(+10%)
・悲観:厳しめに(-20%)
→ 失敗のリスクを重視

推奨:初回は±10〜20%から始め、実績を見ながら調整
Q2: 悲観シナリオで赤字になったら、計画を中止すべきですか?
必ずしも中止ではなく、対策を検討します。

対応の選択肢:

① 計画を修正
・悲観でも黒字になるよう固定費削減
・より保守的な計画に変更

② リスク対策を準備
・早期警戒指標の設定
・コンティンジェンシープラン
・撤退基準の明確化

③ リスクを受容
・悲観シナリオの発生確率が低い
・赤字額が許容範囲内
・戦略的に重要な事業

④ 計画を中止
・リスクが大きすぎる
・対策が不十分
・他により良い選択肢がある

判断基準:「悲観シナリオの赤字額」と「その発生確率」を総合判断
Q3: 感度分析の結果を経営層にどう説明すれば良いですか?
視覚化と具体的な数字で説明します。

効果的なプレゼン構成:

① 結論から先に
「この計画は、価格の管理が最重要です。価格が10%下がると利益は半減します。」

② トルネードチャートで視覚化
・グラフで影響度の大きさを一目で見せる
・「価格の棒が一番長いのが分かります」

③ 具体的な数字で説明
・「価格1%の変化 = 利益5万円の変化」
・「最悪でも赤字は30万円で済みます」

④ アクションプランを提示
・「価格維持のために○○をします」
・「月次でモニタリングします」

⑤ 質問への備え
・「○○が起きたらどうなる?」への回答を準備
・シナリオ分析の結果を用意
Q4: ExcelとPython、どちらを使うべきですか?
状況に応じて使い分けます。

Excelが向いている場合:
・シンプルな分析(変数が少ない)
・チームで共有したい
・経営層への説明資料作成
・What-If分析機能を使いたい

Pythonが向いている場合:
・複雑な分析(変数が多い)
・繰り返し分析する
・高度な可視化が必要
・モンテカルロシミュレーション

おすすめの使い方:
① Pythonで詳細分析
② 結果をExcelにまとめて共有
③ プレゼンはExcelのグラフを使用
Q5: シナリオ分析で考慮すべき変数が多すぎて困ります。どうすれば?
まず感度分析で重要な変数を絞り込みます。

変数を絞り込む手順:

① 感度分析を実施
・すべての変数について影響度を計算
・トルネードチャートで可視化

② 上位3〜5個に絞る
・影響度の大きい変数を選択
・80/20の法則(上位20%の変数が80%の影響)

③ シナリオを作成
・絞り込んだ変数だけでシナリオ作成
・その他の変数は固定

④ 必要に応じて追加
・特に不確実性が高い変数
・コントロールが難しい変数

実務のコツ:
完璧を目指さず、80%の精度で十分。
重要な変数だけに集中することで、分析が現実的になります。
📝

学習メモ

ビジネスデータ分析・意思決定 - Step 39

📋 過去のメモ一覧
#artnasekai #学習メモ
LINE