「上位5%に入る売上ラインっていくらだろう?」「年収上位10%のボーダーを知りたい」。Excelでこんな逆算をしたいと思ったことはありませんか。
LOGNORM.DIST関数で「100万円以下になる確率」はわかっても、逆に「上位10%の境界額は?」を求めるのは手計算では大変ですよね。対数正規分布の確率表を逆引きするのは現実的ではありません。
そんなときに使うのが、ExcelのLOGNORM.INV関数です。この記事では基本の書き方から実務での活用例まで丁寧に解説します。LOGNORM.DIST関数との逆関係や、上位N%ボーダーラインの求め方もあわせて整理しましたよ。
ExcelのLOGNORM.INV関数とは?
LOGNORM.INV関数(読み方: ログノーム・インバース)は、対数正規分布の累積確率から対応する値を逆算する統計関数です。Excel 2010以降で使えます。
「LOGNORM」はLognormal Distribution(対数正規分布)、「INV」はInverse(逆関数)の略です。
ひとことで言うと、LOGNORM.DIST関数の「逆」の計算をする関数です。LOGNORM.DIST関数が「値→確率」を求めるのに対し、LOGNORM.INV関数は「確率→値」を求めます。
- LOGNORM.DIST関数: 「100以下になる確率は73.67%」(値→確率)
- LOGNORM.INV関数: 「上位10%に入る値は何?」(確率→値)
このように、知りたい方向が逆のときにLOGNORM.INV関数を使います。たとえば次のような場面で活躍しますよ。
- 株価や売上の上位5%ライン(VaR的な閾値)を逆算する
- 年収分布から「上位10%」の境界額を求めて報酬制度を設計する
- 製品寿命データから「下位10%が故障する年数」を求めて保証期間を決める
NOTE
LOGNORM.INV関数はExcel 2010以降で使えます。Microsoft 365、Excel 2013〜2024のすべてのバージョンに対応していますよ。
対数正規分布をかんたんに復習
対数正規分布(log-normal distribution)は、ひと言でいうと「対数を取ると正規分布になる分布」のことです。
身の回りでは、株価収益率・年収分布・製品寿命・不動産価格などに当てはまります。共通しているのは「右に裾が長い」「マイナスにならない」という性質ですね。
これらは正規分布で扱うと現実とズレが生じるため、対数正規分布の出番になります。
LOGNORM.INV関数の構文と引数
まずは構文と3つの引数を1つずつ見ていきましょう。とくに mean と standard_dev は誤解しやすいので、しっかり押さえてくださいね。
構文の基本形
=LOGNORM.INV(probability, mean, standard_dev)
引数は3つすべて必須です。
| 引数 | 必須 | 説明 |
|---|---|---|
| probability | 必須 | 累積確率(0 < p < 1) |
| mean | 必須 | LN(x) の平均(対数を取った値の平均) |
| standard_dev | 必須 | LN(x) の標準偏差(対数を取った値の標準偏差、> 0) |
引数probability(確率)
逆算したい累積確率を指定します。0より大きく1より小さい値(0 < p < 1)でなければなりません。
たとえば「上位10%のボーダー」を求めるなら、probability には 0.9 を渡します。「下位10%のボーダー」なら 0.1 ですね。0や1そのものを入れると #NUM! エラーになります。
TIP
確率に0.9を指定すると「下位90%の境界値」、つまり「上位10%のボーダーライン」が返ります。「上位N%」を求めるときは「1 – N/100」を probability に渡しましょう。
引数mean(対数の平均)
ここがLOGNORM系関数の最大の落とし穴です。mean は元の x の平均ではなく、LN(x) の平均を指定します。
たとえば株価データがあるとき、平均株価ではなく「LN(株価) の平均」を渡す必要があります。Excelでは次のように計算できます。
=AVERAGE(LN(株価データ範囲))
この値を mean に使います。元データの平均をそのまま渡すと、結果が桁違いになるので注意してくださいね。
引数standard_dev(対数の標準偏差)
mean と同じく、こちらもLN(x) の標準偏差を指定します。0より大きい値が必要です。
=STDEV.S(LN(株価データ範囲))
サンプルデータならSTDEV.S(標本標準偏差)、母集団全体ならSTDEV.P(母標準偏差)を使い分けます。
LOGNORM.INV関数の基本的な使い方
実際にExcelで動かしてみましょう。ここでは「LN(x) の平均=4、標準偏差=0.5」の対数正規分布を例に使います。
累積確率から値を求める基本例
「下位50%の境界値(中央値)」を求めてみます。
=LOGNORM.INV(0.5, 4, 0.5)
結果はおよそ 54.598 です。これは exp(4) と一致します。対数正規分布の中央値は exp(mean) になるからです。
次に「下位95%の境界値」、つまり「上位5%のボーダーライン」を求めます。
=LOGNORM.INV(0.95, 4, 0.5)
結果はおよそ 124.140 です。「この対数正規分布のもとでは、上位5%に入る値は約124以上」とわかります。
上位N%ボーダーの公式
ビジネスの現場では「上位N%のボーダー」を求めたい場面が多いですよね。覚えておくと便利な公式は次のとおりです。
上位N%のボーダー = LOGNORM.INV(1 - N/100, mean, standard_dev)
- 上位10%ボーダー: LOGNORM.INV(0.9, mean, sd)
- 上位5%ボーダー: LOGNORM.INV(0.95, mean, sd)
- 上位1%ボーダー: LOGNORM.INV(0.99, mean, sd)
逆に「下位N%のボーダー」(早期故障やリスク下限など)は次のとおりです。
下位N%のボーダー = LOGNORM.INV(N/100, mean, standard_dev)
LOGNORM.DIST関数との双方向検算
LOGNORM.INVが正しく動いているか確認したいときは、LOGNORM.DIST関数で逆向きに計算してみると手っ取り早いですよ。
たとえば「LOGNORM.DIST(100, 4, 0.5, TRUE)」は約 0.7367 を返します。この確率を LOGNORM.INV に渡してみましょう。
=LOGNORM.INV(0.7367, 4, 0.5)
結果はおよそ 100.00 です。きれいに元の値に戻りますね。
このように、同じ mean と standard_dev のもとでは、LOGNORM.DIST と LOGNORM.INV は完全な逆関数の関係になります。実務でも「DIST で確率を求めて、INV で値を逆算」というセットで使うことが多いですよ。
LOGNORM.INV関数の実務での活用例
ここからは具体的な業務シナリオで使い方を見ていきます。
株価・売上データの上位5%ボーダー(VaR的な閾値)
株価や日次売上のデータは対数正規分布で近似されることが多く、リスク管理の基本指標であるVaR(バリュー・アット・リスク。一定確率で発生する損益の閾値)の計算にも使われます。
過去の株価データから LN(価格) の平均が 4.5、標準偏差が 0.3 と推定できたとします。
「上位5%に入る価格ライン」を求めるなら次のとおりです。
=LOGNORM.INV(0.95, 4.5, 0.3)
結果はおよそ 147.484 です。「この銘柄の上位5%に入る価格は約147円以上」と判断できます。
逆に「下位5%(暴落リスクの閾値)」は次のとおりです。
=LOGNORM.INV(0.05, 4.5, 0.3)
結果はおよそ 54.870 です。「下位5%相当のリスクラインは約54.87円」とリスク管理に使えます。
実際の業務では、過去の価格データから自分で平均と標準偏差を計算して使います。
mean に渡す値: =AVERAGE(LN(価格範囲))
standard_dev に渡す値: =STDEV.S(LN(価格範囲))
年収分布から上位N%の境界額を求める
所得分布も対数正規分布(または上位がパレート分布)で近似されることが知られています。報酬制度の設計や昇給シミュレーションで「上位10%」「上位5%」の境界額を知りたい場面に使えますね。
ある集団の LN(年収) の平均が 6.5(中央値≒665万円相当)、標準偏差が 0.4 と推定できたとします。
「上位10%の境界額」を求めるなら次のとおりです。
=LOGNORM.INV(0.9, 6.5, 0.4)
結果はおよそ 1110万円。「年収1110万円以上が上位10%」と判断できます。
「上位1%の境界額」も同じ要領で求められます。
=LOGNORM.INV(0.99, 6.5, 0.4)
結果はおよそ 1683万円です。経営陣の報酬設計や、評価制度の境界値設定に活用できますよ。
製品寿命・処理時間の上限目標を設定する
家電や機械の寿命データは、信頼性工学の分野で対数正規分布があてはめられます。「下位N%が故障する年数」を逆算すると、保証期間の設計に役立ちます。
ある製品の寿命データから LN(寿命年数) の平均が 2.0、標準偏差が 0.5 と推定できたとします。
「下位10%が故障する年数」を求めるなら次のとおりです。
=LOGNORM.INV(0.1, 2.0, 0.5)
結果はおよそ 3.89年。「保証期間を3年にすれば、保証期間内に故障する製品は下位10%未満」と判断できます。
業務処理の所要時間(コールセンターの応対時間、サーバーのレスポンス時間など)も対数正規分布で近似できます。「上位5%の遅延ライン」を求めて品質目標(SLA)を設計するパターンにも応用できますよ。
LOGNORM.DIST関数との違いと逆関係
ExcelのLOGNORM.INVはLOGNORM.DIST関数とペアで使う関数です。両者の違いを整理しておきましょう。
| 項目 | LOGNORM.DIST | LOGNORM.INV |
|---|---|---|
| 計算の方向 | 値 → 確率 | 確率 → 値 |
| 引数の数 | 4個(cumulative含む) | 3個 |
| 戻り値 | 確率(0〜1) | 元の値(x > 0) |
| 典型用途 | 「100以下になる確率は?」 | 「上位5%のボーダーは?」 |
同じ mean と standard_dev を使えば、LOGNORM.DIST と LOGNORM.INV は厳密に逆関数の関係になります。「DIST で求めた確率を INV に戻すと元の値に戻る」という双方向の検算が可能ですよ。
実務では「過去データから DIST で確率を見積もる」→「INV で目標値や閾値を逆算する」という流れが定番です。定量的な意思決定がしやすくなりますよ。
関連関数との違い
NORM.INV関数との使い分け
NORM.INV関数は、正規分布版のINV関数です。LOGNORM.INVとよく似ていますが、対象となる分布が違います。
| 項目 | NORM.INV | LOGNORM.INV |
|---|---|---|
| 対象分布 | 正規分布 | 対数正規分布 |
| 引数の意味 | x の平均・標準偏差 | LN(x) の平均・標準偏差 |
| 戻り値の範囲 | -∞ ~ +∞ | x > 0 のみ |
| 適するデータ | 身長・テスト点数・誤差 | 株価・年収・寿命 |
判断基準はシンプルです。
- データが左右対称・マイナス値もあり得る → NORM.INV
- データが右に裾が長い・プラスのみ → LOGNORM.INV
- 迷ったらヒストグラムを描いてみる。対称ならNORM.INV、右裾が長ければLOGNORM.INV
旧LOGINV関数との関係
ExcelにはLOGINVという関数もあります。これはLOGNORM.INVの旧バージョン(Excel 2007以前)で、互換性のために残されています。
=LOGINV(0.9, 4, 0.5) ← 旧関数
=LOGNORM.INV(0.9, 4, 0.5) ← 新関数(推奨)
計算結果は完全に同じですが、Microsoft はLOGNORM.INVの使用を推奨しています。新しく数式を組むときは LOGNORM.INV を使いましょう。古いブックを引き継いで LOGINV が使われていた場合は、置き換えてもOKですよ。
よくあるエラーと対処法
#NUM! エラー:probability や standard_dev が範囲外
| 原因 | 対処 |
|---|---|
| probability ≤ 0 または probability ≥ 1 を指定した | 0 < p < 1 になるよう値を確認する |
| standard_dev ≤ 0 を指定した | standard_dev > 0 になるよう値を確認する |
probability に 0 や 1 そのものを入れるとエラーになります。「上限値(確率1.0)に対応する値」を求めたいときは、0.99 や 0.999 のように 1 に近い値で代用しましょう。
#VALUE! エラー:引数が数値でない
引数のいずれかが文字列や空欄になっているとこのエラーが出ます。セル参照先が数値かどうかを確認してくださいね。
#NAME? エラー:関数名のスペルミス
LOGNORMINV(ドット忘れ)や LOGNOMINV(typo)と書くと #NAME? エラーになります。正しくは LOGNORM.INV です。
結果が想定と桁違い:mean / standard_dev を取り違えている
「結果が天文学的な値になる」「明らかにおかしい値が返る」ときは原因がほぼ1つに絞れます。mean / standard_dev に対数を取る前の値を渡してしまっているケースです。
たとえば年収データから「平均=665(万円)、標準偏差=200」をそのまま渡してみましょう。対数正規分布の引数としては桁が大きすぎて結果が破綻します。実際に LOGNORM.INV(0.5, 665, 200) を計算すると、exp(665) という現実離れした値が返ってきます。
正しくは LN(x) を取ってから平均・標準偏差を計算します。
mean に渡す値: =AVERAGE(LN(データ範囲))
standard_dev に渡す値: =STDEV.S(LN(データ範囲))
この一手間を忘れないことが、LOGNORM.INV関数を正しく使う最大のコツですよ。
まとめ
ExcelのLOGNORM.INV関数は、対数正規分布の確率から値を逆算する統計関数です。最後に、この記事のポイントを振り返っておきましょう。
- 構文は
=LOGNORM.INV(probability, mean, standard_dev) - mean と standard_dev は「LN(x) の」平均・標準偏差を渡す(最重要)
- 上位N%ボーダーは
LOGNORM.INV(1 - N/100, mean, sd)で求める - 株価VaR・年収境界・製品寿命など、右裾の長いデータの閾値設計に使える
- LOGNORM.DIST関数とは「値↔確率」の逆関数の関係。同じパラメータで検算できる
- 対称データには NORM.INV、右裾の長いデータには LOGNORM.INV と使い分ける
- 「値→確率」の計算は LOGNORM.DIST を使う
LOGNORM.INV関数は、データから「確率」ではなく「具体的な値」を引き出すための強力な逆引きツールです。「上位○%ライン」「下位○%リスク」を1つの数式で求められるので、報酬設計・品質目標・リスク管理など実務の意思決定に直結しますよ。手元のデータでぜひ試してみてください。
