スプレッドシートのLOGINV関数|使い方と互換関数を解説

スポンサーリンク

「ExcelでLOGINV関数を使っていたけど、スプレッドシートでも同じように使えるの?」。ExcelからGoogleスプレッドシートへ移行したときに気になるポイントですよね。

結論から言うと、LOGINV関数はGoogleスプレッドシートでもそのまま使えます。ただし、現在はLOGNORM.INVという新しい名前の関数が推奨されています。この記事ではスプレッドシートのLOGINV関数の使い方を、LOGNORM.INVとの違いやExcel移行時の注意点とあわせて解説します。

スプレッドシートのLOGINV関数とは

LOGINV関数(読み方: ログ・インバース関数)は、対数正規分布(データの自然対数をとると正規分布になる分布)の逆関数です。「LOG」は「Logarithm(対数)」、「INV」は「Inverse(逆)」の略です。

かんたんに言うと、「この確率に対応する値はいくつ?」を求める関数です。たとえば「売上分布の下位10%にあたる金額はいくらか」といった計算に使えます。

対数正規分布は、値が必ず正で右に裾が長いデータに当てはまるモデルです。売上・年収・待ち時間のように、少数の大きな値が分布を引っ張るデータで使います。

LOGINV関数の基本情報

LOGINV関数にできることをまとめると、次のとおりです。

  • 累積確率から元の値を逆算する(パーセンタイル値の算出)
  • 「上位○%ライン」「下位○%ライン」を求める
  • LOGNORMDIST関数の逆方向の計算を行う

NOTE

LOGINV関数はGoogleスプレッドシートの全バージョンで使えます。ただしGoogleの公式ドキュメントではLOGNORM.INV関数が推奨されています。新しく数式を書くときはLOGNORM.INVを使いましょう。

スプレッドシートでも使えるか

LOGINV関数はGoogleスプレッドシートで問題なく動作します。Excelで作成したファイルをインポートしたとき、LOGINVの数式はそのまま正常に計算されます。

ただし、LOGINVは「互換関数」という位置づけです。Excelでは2010以降に互換カテゴリへ移動しており、将来的に廃止される可能性があります。新しく数式を書くならLOGNORM.INV関数を選びましょう。

LOGINV関数の使い方

基本構文と3つの引数

=LOGINV(x, 平均, 標準偏差)

カッコの中に3つの引数を指定します。

引数必須/任意説明
x必須累積確率(0より大きく1より小さい値)
平均(mean)必須LN関数で対数変換した値の平均
標準偏差(standard_deviation)必須対数変換した値の標準偏差(0より大きい値)

ここで大事なポイントがあります。2番目と3番目の引数は「元データの平均・標準偏差」ではなく、「対数変換後の平均・標準偏差」です。元データの値をそのまま渡さないように注意してくださいね。

TIP

Excelでは1番目の引数名が「probability」ですが、Googleスプレッドシートでは「x」と表記されています。名前は違いますが、どちらも累積確率を指定する点は同じです。

基本的な使用例

対数平均3.5、対数標準偏差1.2のとき、累積確率0.039084に対応する値を求めてみます。

=LOGINV(0.039084, 3.5, 1.2)

結果は約4.00です。「対数平均3.5・対数標準偏差1.2の分布で、下から約3.9%の位置にある値が4.00」という意味です。

確率を変えたときの結果も見てみましょう。

x(累積確率)LOGINV(x, 3.5, 1.2)意味
0.10約7.06下位10%ライン
0.25約14.73下位25%ライン(第1四分位)
0.50約33.12中央値(メジアン)
0.75約74.46上位25%ライン(第3四分位)
0.90約155.37上位10%ライン

確率が大きくなるほど返される値も大きくなります。対数正規分布は右に裾が長いので、上位になるほど値の増え方が急になりますよ。

実務での活用シーン

売上の目標ライン設定

店舗ごとの月間売上(万円)の対数平均が3.5、対数標準偏差が0.8だとします。「上位20%に入るための売上ライン」を求めてみましょう。

=LOGINV(0.8, 3.5, 0.8)

上位20%(つまり下から80%)に入る売上ラインがわかります。目標設定やランク分けの基準に活用できますね。

待ち時間の管理

コールセンターの応答時間が対数正規分布に従うとき、「95%の顧客がこの時間内に応答を受けられる」というSLA(サービスレベル目標)の値を計算できます。

=LOGINV(0.95, 対数平均, 対数標準偏差)

このように、LOGINVは「ある確率に対応する閾値はいくつか」を求める場面で力を発揮します。

LOGINVとLOGNORM.INVの違い

LOGINVとLOGNORM.INVは名前が違うだけで、計算結果は完全に同じです。引数の数も3つで変わりません。

=LOGINV(0.5, 3.5, 1.2)
=LOGNORM.INV(0.5, 3.5, 1.2)

どちらも同じ値(約33.12)を返します。

比較表

項目LOGINVLOGNORM.INV
関数名の形式ピリオドなし(旧形式)ピリオドあり(新形式)
引数の数3つ3つ(変化なし)
計算結果同じ同じ
Googleスプレッドシート使える使える(推奨)
Excel 2007以前使える使えない
Excel 2010以降使える(互換カテゴリ)使える(推奨)
公式ドキュメントでの扱い互換関数推奨関数

ここが重要なポイントです。LOGINVからLOGNORM.INVへの移行は関数名を書き換えるだけで完了します。引数の追加や順番の変更は一切ありません。

他の互換関数ペアとの比較

同じ対数正規分布の関数ペアで比較すると、LOGINVの移行がいかに簡単かわかります。

互換関数推奨関数引数変化移行難易度
LOGNORMDISTLOGNORM.DIST3→4(cumulative追加)
LOGINVLOGNORM.INV3→3(変化なし)低(名前変更のみ)

LOGNORMDIST→LOGNORM.DISTは4番目の引数(累積/密度の切り替え)が追加されます。一方、LOGINV→LOGNORM.INVは引数がまったく同じです。移行コストはほぼゼロですよ。

どちらを使うべきか

結論はシンプルです。

  • 既存のシートにLOGINVの数式がある場合: そのまま使い続けてOK
  • 新しく数式を書く場合: LOGNORM.INV関数を使う

LOGINVは将来的に廃止される可能性があります。新規作成時はLOGNORM.INVを選んでおくのが安心です。

Excel移行時の挙動と注意点

ExcelファイルをGoogleスプレッドシートに取り込むとき、LOGINV関連で押さえておきたいポイントを紹介します。

1. 既存のLOGINV数式はそのまま動く

Excelファイルをインポートしても、LOGINVの数式は自動変換されません。そのまま正常に動作します。

2. 引数名の表記が異なる

Excelでは1番目の引数名が「probability」ですが、Googleスプレッドシートでは「x」です。見た目の違いだけで、動作への影響はありません。

3. Excel 2007以前との互換性に注意

LOGNORM.INVはExcel 2010以降で追加された関数です。Excel 2007以前のファイルとやり取りする可能性がある場合は、LOGINVのまま残しておくのも一つの手です。ただし、現在2007を使っているケースはほぼないので、基本はLOGNORM.INVへの移行をおすすめします。

同じく互換関数のNORMINV関数(正規分布の逆関数)も、Excel移行時に同様の対応が必要です。あわせて確認しておくと安心ですよ。

LOGNORM.INVへの移行方法

LOGINVからLOGNORM.INVへの移行はとても簡単です。

書き換え手順

関数名を「LOGINV」から「LOGNORM.INV」に変更するだけです。

=LOGINV(0.5, 3.5, 1.2)
=LOGNORM.INV(0.5, 3.5, 1.2)

引数はそのまま。順番の入れ替えも追加もありません。

大量の数式を一括で書き換えたい場合は、スプレッドシートの「検索と置換」機能(Ctrl + H)が便利です。「LOGINV(」を「LOGNORM.INV(」に置換すれば完了します。

TIP

置換するときは「LOGINV(」のようにカッコまで含めるのがポイントです。関数名だけで置換すると、意図しない箇所まで変わってしまう可能性があります。

逆関数ペアもまとめて移行

LOGINVを使っているシートには、順方向のLOGNORMDIST関数も使われていることが多いです。あわせて移行すると管理が楽になります。

移行元移行先置換パターン
LOGINV(LOGNORM.INV(名前変更のみ
LOGNORMDIST(LOGNORM.DIST(4番目の引数にTRUE追加が必要

LOGINVは名前の置換だけでOKですが、LOGNORMDISTはLOGNORM.DIST関数へ移行する際に4番目の引数(TRUE)を追加する必要があります。こちらは少し手間がかかるので注意してくださいね。

よくあるエラーと対処法

LOGINV関数でつまずきやすいポイントをまとめました。

xに0以下または1以上を指定して#NUM!エラー

累積確率xは0より大きく1より小さい値が必要です。0や1ちょうど、負の値を指定すると#NUM!エラーになります。

=LOGINV(0, 3.5, 1.2)    <- #NUM! エラー(0はNG)
=LOGINV(1, 3.5, 1.2)    <- #NUM! エラー(1もNG)
=LOGINV(0.5, 3.5, 1.2)  <- OK

標準偏差に0以下を指定して#NUM!エラー

3番目の引数(標準偏差)は0より大きい値が必要です。データが全部同じ値だとSTDEV関数(標準偏差を求める関数)が0を返すので注意しましょう。

=LOGINV(0.5, 3.5, 0)    <- #NUM! エラー
=LOGINV(0.5, 3.5, -1)   <- #NUM! エラー

引数に文字列を渡して#VALUE!エラー

数値であるべき引数にテキストが入ると#VALUE!エラーです。セル参照を使う場合は、参照先が数値かどうか確認してくださいね。

「元データの平均」を引数に渡してしまう

2番目の引数は「対数変換後の平均」です。元データの平均をそのまま渡すと、まったく違う結果になります。元データから計算するときはLN関数を通してからAVERAGE・STDEVを取りましょう。

=LOGINV(0.5, AVERAGE(LN(B2:B100)), STDEV(LN(B2:B100)))

まとめ

LOGINV関数は、対数正規分布の累積確率から元の値を逆算する互換関数です。

  • LOGNORM.INV関数の旧関数名で、引数は3つ(累積確率、対数平均、対数標準偏差)
  • LOGNORM.INVと計算結果は完全に同じ。引数の数も3つで変わらない
  • 移行は関数名を書き換えるだけ。引数の追加や変更は不要
  • Googleスプレッドシートでもそのまま使える
  • 既存のLOGINV数式は書き換え不要。新しく書くならLOGNORM.INVを推奨
  • 引数の平均・標準偏差は「対数変換後」の値。元データの値をそのまま渡さないように注意
  • LOGNORMDIST関数(確率→値の順方向)とセットで使うと分布分析の幅が広がる

LOGINVからLOGNORM.INVへの移行は、統計系の互換関数の中でもっとも簡単な部類です。既存の数式はそのまま使えるので焦る必要はありません。新しく書く数式から少しずつLOGNORM.INVに切り替えていくのがおすすめですよ。

タイトルとURLをコピーしました