• 作成日 : 2025年8月25日

SLOPE関数の使い方:エクセルで線形回帰の傾きを計算する方法

SLOPE関数は、2つのデータセット間の線形回帰直線の傾きを計算するエクセルの統計関数です。売上高と広告費の関係分析、気温と電力消費の相関調査、生産量とコストの関係把握、時系列データのトレンド分析など、2つの変数間の関係性を数値化する様々なビジネス分析で活用されています。

本記事では、SLOPE関数の基本的な使い方から実務での応用例、INTERCEPT関数との組み合わせ、予測分析への活用方法、そしてよくある分析ミスとその回避方法まで、初心者にもわかりやすく解説します。

SLOPE関数の使い方

SLOPE関数とは

SLOPE関数は、独立変数(x)と従属変数(y)の関係を表す直線の傾きを計算する関数です。傾きとは、xが1単位増加したときにyがどれだけ変化するかを示す値で、正の傾きは正の相関、負の傾きは負の相関を意味します。この関数は最小二乗法を使用して、データポイントに最もよく適合する直線の傾きを算出します。

たとえば、広告費を1万円増やすと売上が5万円増える関係がある場合、傾きは5となります。この傾きを知ることで、将来の予測や投資効果の評価が可能になります。

基本構文

SLOPE関数の構文は次のとおりです。

=SLOPE(既知のy, 既知のx)

各引数について詳しく説明します。

既知のy:従属変数(結果となる値)のデータ範囲を指定します。売上高、生産量、テストの点数など、予測したい値のデータです。

既知のx:独立変数(原因となる値)のデータ範囲を指定します。広告費、時間、勉強時間など、影響を与える要因のデータです。

基本的な使用例

実際にSLOPE関数を使用してみましょう。

シンプルな例:

広告費(万円):10, 20, 30, 40, 50(A列)

売上高(万円):150, 280, 420, 530, 680(B列)

=SLOPE(B1:B5, A1:A5)  // 結果:約13.1

// 広告費1万円増で売上13.1万円増

時系列データの分析:

月:1, 2, 3, 4, 5, 6(A列)

売上:100, 115, 125, 140, 155, 170(B列)

=SLOPE(B1:B6, A1:A6) // 結果:約13.86

// 月平均 約13.86万円の売上増加(小数点2桁表示の場合)

※整数で示したい場合は丸めを明示:

=ROUND(SLOPE(B1:B6, A1:A6), 0) // 結果:14(四捨五入)

傾きの解釈

SLOPE関数の結果を正しく解釈することが重要です。

正の傾き
  • 値が大きいほど急激な増加
  • 例:傾き2 = x が1増えるとyは2増える
負の傾き
  • 値が小さいほど(絶対値が大きいほど)急激な減少
  • 例:傾き-3 = xが1増えるとyは3減る
ゼロに近い傾き
  • xを1単位増やしてもyの変化が小さいことを示す(傾きは単位に依存)。
  • 関係の強さを評価したい場合は、相関係数(=CORREL(既知のx, 既知のy))や決定係数(=RSQ(既知のy, 既知のx))などを併用して判断する。
  • 例:傾き0.1=xを1増やすとyは0.1増(単位次第で解釈が変わる)。

SLOPE関数の利用シーン

売上予測と販売分析

マーケティング投資と売上の関係を分析します。

広告効果の測定:

=SLOPE(売上データ, 広告費データ)

=”広告費1万円あたり売上” & TEXT(SLOPE(B:B, A:A), “#,##0万円”) & “増加”

価格感度(単位当たりの変化量)の分析:

=SLOPE(販売数量, 価格)

// 価格を1単位上げたときの販売数量の増減(単位:数量/価格)。負の値なら価格上昇で販売減。

価格弾力性(%変化)の推定:

  • ログ・ログ回帰(推奨):
    =SLOPE(LN(販売数量範囲), LN(価格範囲)) // 傾きがそのまま弾力性 ε
  • または傾きから平均点で近似:
    =SLOPE(販売数量範囲, 価格範囲) * AVERAGE(価格範囲) / AVERAGE(販売数量範囲) // 点弾力性の近似

店舗面積と売上の関係:

=SLOPE(月間売上, 店舗面積)

=”1坪あたり売上” & TEXT(SLOPE(売上, 面積), “#,##0円”)

生産性とコスト分析

生産活動における効率性を評価します。

生産量と労働時間の関係:

=SLOPE(生産量, 労働時間)

=”時間あたり生産性:” & SLOPE(B:B, A:A) & “個/時間”

原材料使用量と生産量:

生産性(個/原材料):=SLOPE(生産量, 原材料量)

材料係数(原材料/個):=SLOPE(原材料量, 生産量)

※相互に単純な逆数関係ではありません。切片の有無にも注意してください。

時系列トレンド分析

データの長期的な傾向を把握します。

月次売上のトレンド:

月番号:1, 2, 3, …, 12

=SLOPE(月次売上, ROW(1:12))

=IF(SLOPE(売上, 月) > 0, “上昇トレンド”, “下降トレンド”)

在庫回転率の推移:

=SLOPE(在庫回転率, 四半期番号)

=”四半期ごとの改善率:” & TEXT(SLOPE(B:B, A:A), “0.0%”)

相関分析と因果関係

2つの変数間の関係強度を評価します。

気温と売上の関係(飲料業界):

=SLOPE(飲料売上, 気温)

=”気温1度上昇で売上” & TEXT(SLOPE(B:B, A:A), “#,##0本”) & “増加”

従業員満足度と生産性:

=SLOPE(生産性指標, 満足度スコア)

相関の強さ(相関係数):=CORREL(X, Y) または =ABS(CORREL(X, Y))

説明力(決定係数):=RSQ(Y, X)

品質管理での活用

工程パラメータと品質の関係を分析します。

温度と不良率の関係:

=SLOPE(不良率, 工程温度)

単位に依存しない判定(推奨):

=IF(ABS(CORREL(温度範囲, 不良率範囲))>0.5, “温度管理重要”, “影響小”)

傾きを使う場合は単位を明示:

=”温度1℃あたりの不良率変化(%pt/℃): ” & SLOPE(不良率%範囲, 温度℃範囲)

=IF(ABS(SLOPE(不良率%範囲, 温度℃範囲))>0.5, “温度管理重要”, “影響小”)

※不良率が0–1の割合なら %pt 判定用に SLOPE(割合範囲, 温度範囲)*100 にしてください。

経時変化の分析:

=SLOPE(測定値, 経過時間)

経過時間が“日”単位の場合:

=”1時間あたりの変化:” & SLOPE(測定値範囲, 経過時間範囲)*24

もしくは

x を“時間”に変換して傾きを計算:

=”1時間あたりの変化:” & SLOPE(測定値範囲, 経過時間範囲*24)

※すでに“時間”単位の数値なら 24 は掛けません。

SLOPE関数の応用・他関数との組み合わせ

INTERCEPT関数との組み合わせ

回帰直線の完全な式を作成します。

傾き = SLOPE(Y範囲, X範囲)

切片 = INTERCEPT(Y範囲, X範囲)

回帰式:Y = 傾き * X + 切片

予測値の計算:

予測売上 = SLOPE(売上, 広告費) * 新広告費 + INTERCEPT(売上, 広告費)

RSQ関数での決定係数

線形モデルの当てはまり(説明力)を評価します。

傾き = SLOPE(Y範囲, X範囲)

決定係数 = RSQ(Y範囲, X範囲)

=IF(RSQ(Y範囲, X範囲) > 0.7,

“当てはまりが高い(R²=” & TEXT(RSQ(Y範囲, X範囲), “0.00”) & “)”,

“当てはまりは限定的”)

相関の強さを見たい場合は 相関係数を使用:

相関係数 r = CORREL(X範囲, Y範囲)

傾きの有意性を確認したい場合(標準誤差など):

傾きの標準誤差 = INDEX(LINEST(Y範囲, X範囲, TRUE, TRUE), 2, 1)

FORECAST関数との連携

将来値の予測に活用します。

// SLOPE関数を使った手動予測

予測値 = SLOPE(Y, X) * 新X値 + INTERCEPT(Y, X)

// FORECAST関数での自動予測

=FORECAST(新X値, Y範囲, X範囲)

信頼区間の計算

傾きの統計的信頼性を評価:

  • 標準誤差(傾きの標準誤差)
    =STEYX(Y範囲, X範囲) / (STDEV.S(X範囲) * SQRT(COUNT(X範囲)-1))
  • 信頼区間(95%)
    =SLOPE(Y範囲, X範囲) ± T.INV.2T(0.05, COUNT(X範囲)-2) * 標準誤差

(代替)LINEST で傾きの標準誤差を直接取得:

=INDEX(LINEST(Y範囲, X範囲, TRUE, TRUE), 2, 1)

複数期間での傾き比較

期間ごとの変化率を比較:

前期の傾き = SLOPE(前期Y, 前期X)

今期の傾き = SLOPE(今期Y, 今期X)

改善率 = (今期の傾き – 前期の傾き) / ABS(前期の傾き) * 100

移動傾きの計算

動的な傾向変化を追跡:

// 直近12ヶ月の移動傾き(非ボラタイル・推奨:INDEXで末尾12件を取得)

=SLOPE(

INDEX(売上範囲, ROWS(売上範囲)-11):INDEX(売上範囲, ROWS(売上範囲)),

SEQUENCE(12))

// LET を使うと可読性向上

=LET(y, 売上範囲,y12, INDEX(y, ROWS(y)-11):INDEX(y, ROWS(y)),

SLOPE(y12, SEQUENCE(12)))

※ 売上範囲 は売上データ全体の縦一列範囲に置き換えてください(例:$B$2:$B$100)。

条件付き傾き分析

特定条件下での傾きを計算:

// 特定カテゴリのみの傾き(配列数式)

{=SLOPE(IF(カテゴリ=”A”, Y値), IF(カテゴリ=”A”, X値))}

SLOPE関数のよくあるエラーと対策

#DIV/0!エラーの対処

すべてのx値が同じ場合に発生します。

=IF(COUNT(X範囲)<2,

“データ不足”,

IF(VAR.P(X範囲)=0,

“X値に変動なし”,

SLOPE(Y範囲, X範囲)))

※ VAR.P は1点でも0を返すため、判定に安全です。

#N/Aエラーの対処

データ数が異なる場合やデータ不足時に発生:

=IF(OR(ROWS(Y範囲)<>ROWS(X範囲), COLUMNS(Y範囲)<>COLUMNS(X範囲)),

“範囲サイズ不一致”,

IF(SUMPRODUCT(–ISNUMBER(Y範囲), –ISNUMBER(X範囲))<2,

“有効データ不足”,

SLOPE(Y範囲, X範囲)))

外れ値の影響

(動的配列対応:Microsoft 365/Excel 2021以降)

=LET(y, Y範囲, x, X範囲,

q1, QUARTILE.INC(y,1),

q3, QUARTILE.INC(y,3),

iqr, q3-q1,

m, (y>=q1-1.5*iqr)*(y<=q3+1.5*iqr),

SLOPE(IF(m,y), IF(m,x)))

(従来配列数式:CSE必要)

  1. どこかのセルに =QUARTILE.INC(Y範囲,1) を Q1、=QUARTILE.INC(Y範囲,3) を Q3 として置き、IQR=Q3-Q1 を作成。
  2. 次をCtrl+Shift+Enterで確定:=SLOPE(IF((Y範囲>=Q1-1.5*IQR)*(Y範囲<=Q3+1.5*IQR), Y範囲),

    IF((Y範囲>=Q1-1.5*IQR)*(Y範囲<=Q3+1.5*IQR), X範囲))

非線形関係への対処

直線で近似できない関係:

=IF(OR(MIN(X範囲)<=0, MIN(Y範囲)<=0),

“0以下の値を含むため対数変換不可(前処理が必要)”,

SLOPE(LN(Y範囲), LN(X範囲)))

※ 0 を含む場合はモデルの前提を変えることになるため、安易な LN(値+1) は推奨しません(目的に応じて適切な変換を検討)。

// 多項式近似が必要な場合は別の手法を検討

データの前処理

欠損値や異常値の処理:

// 空白と0を除外

{=SLOPE(IF((Y<>””)*(Y<>0), Y), IF((X<>””)*(X<>0), X))}

単位の影響

異なる単位での誤解釈:

=SLOPE(売上*100, 広告費/10) // 両方を万円単位に揃える

(代替:両方を円に統一する場合は =SLOPE(売上*1000000, 広告費*1000))

因果関係の誤解

相関と因果の混同を避ける:

=”相関係数:” & TEXT(CORREL(Y, X), “0.00”) &

“(因果関係を示すものではありません)”

SLOPE関数で変数間の関係性を定量的に分析する

SLOPE関数は、2つのデータセット間の線形関係の傾きを算出するExcelの統計関数です。1つの変数(x)の変化が、もう一方の変数(y)に与える影響を直線の傾きで表し、ビジネスの場面では広告効果分析、生産性評価、トレンド把握などに活用されます。

傾きの解釈には注意が必要で、正の傾きは増加傾向、負の傾きは減少傾向を示します。傾きの大小は単位に依存し、0に近いことは「xを1単位変化させたときのyの変化が小さい」ことを意味します。関係の強さの評価には、CORRELやRSQを併用してください。INTERCEPT関数やRSQ関数、FORECAST関数との組み合わせにより、回帰式の作成や将来予測、相関性の評価も可能です。

一方で、SLOPE関数は線形前提のため、非線形関係への対処(対数変換・多項式近似)や外れ値処理、単位の統一、欠損値の除外などの前処理が重要です。

また、SLOPEは「相関の強さ」を直接示すものではないため、相関係数の評価にはCORREL関数を使うのが適切です。


※ 掲載している情報は記事更新時点のものです。

※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。

関連記事