【Excel】対数計算
対数関数(logarithm)は指数関数の逆関数として定義され、
\[y=\log_a{x}\]
のように書き表します。このとき、$x$ と $y$ は
\[x=a^y\]
の関係を満たします。$a$ を「底」とよびます。少しわかりにくいかもしれませんが、「$a$ を何乗したら $x$ になるか」を考えると、$y$ を計算できます。具体例で考えてみましょう。$a=2,\ x=8$ とすると、
\[y=\log_{2}8\]
と表せます。指数関数の形に書き直すと、
\[8=2^y\]
となります。「$2$ を何乗したら $8$ になるか」を考えると、$y=3$ であることがわかります ($2^3=8$)。
特に底 $a$ を $10$ とする
\[y=\log_{10}x\]
を常用対数 (common logarithm) 、底 $a$ を ネイピア数 $e$ とする
\[y=\log_e x\]
を自然対数 (natural logarithm) とよびます。ネイピア数 $e$ は
\[e=2.7182818\cdots\]
という無理数です。Excel の EXP関数を用いて
=EXP(1)
と入力すると、ネイピア数の 15 桁までの値を知ることができます。
エクセルには対数を計算するために、LOG, LN, LOG10 が用意されています。それぞれ「ログ」、「ログナチュラル」、「ログテン」と読みます。LOG 関数を使って、$\log_3 100$ を計算してみましょう。LOG 関数の引数は (真数, 底) の順に指定します。適当なセルに
=LOG(100,3)
を入力すると「4.191806549」を返します。
【Excel】LOG
Excel の LOG 関数は第2引数を底とする第1引数の対数の値を計算します。
=LOG(数値, 底)
数値、底ともに正の値を指定します。たとえば
=LOG(8,2)
と入力すると $\log_2 8$ を計算して「3」を返します。
【Excel】LOG10
Excel の LOG10 は $10$ を底とする常用対数の値を計算します。
=LOG(数値)
引数に 0 または負の値を指定すると「#NUM!」エラーが返ります。たとえば
=LOG10(10)
と入力すると $\log_{10} 10$ を計算して「1」を返します。
【Excel】LN
Excel の LN は指定した数値の自然対数の値を計算します。
=LN(数値)
たとえば
=LN(10)
と入力すると $\log_e 10$ を計算して「2.302 …」を返します。$e$ のべき乗を計算する EXP関数を用いて
=LN(EXP(1))
と入力すると $\log_e e$ を計算して「1」を得ます。引数に 0 または負の値を指定するとエラーとなります。
他にも Excel には複素数の対数を計算するために、IMLN, IMLOG10, IMLOG2 が用意されています。これらの関数を使う機会はあまりないかもしれませんが、一応載せておきます。
【Excel】IMLN
IMLN 関数は渡した引数の自然対数を計算します。
=IMLN(複素数)
たとえば、複素数 $1+i$ の自然対数 $\log_e(1+i)$ を計算するときは、
=IMLN("1+i")
と入力します(複素数は文字列形式で渡すことに注意してください)。実数も複素数に含まれるので、IMLN に普通の数値を渡しても構いません。たとえば、
=IMLN(3)
と入力すると、$\log_e 3$ を計算して「1.0986 …」が返ります。
【Excel】IMLOG10
IMLOG10 は受け取った複素数の常用対数を計算します。
=IMLOG10(複素数)
たとえば、複素数 $5+19i$ の常用対数 $\log_{10}(5+19i)$ を計算したい場合、
=IMLOG10("5+19i")
と記述します。整数や有理数の常用対数を IMLOG10 で計算することもできます。たとえば、
=IMLOG10(100)
と入力すると、$\log_{10}100$ を計算して「2」を返します。
【Excel】IMLOG2
IMLOG2 は複素数の二進対数を計算します。
=IMLOG2(複素数)
たとえば、複素数 $7+2i$ の二進対数を計算するときは、
=IMLOG2("7+2i")
と記述します。数値を IMLOG2 に渡して二進対数を計算することもできます。たとえば、
=IMLOG2(512)
と入力すると、$512$ の二進対数 $\log_{2}512$ を計算して「9」を返します。
エクセルや数学に関するコメントをお寄せください
【AI連載小説】数学のリズム、エクセルの旋律(14)「エクセルで対数計算」
Excel VBAサークルの部室で、研伸、真琴、隆治、月子のメンバーたちは新たな数学的なテーマについて話し合っていました。今回のテーマは「エクセルで対数計算する方法」でした。
研伸:最近、対数関数について考えていたんだけど、みんなはエクセルで対数計算するときってどうやってる?
真琴:対数関数か。普段はLOG関数をよく使ってるけど、それ以外にもいくつか方法があるよね。
隆治(隆):LOG関数は便利だけど、対数の底とか指定したりするときにはちょっと使いにくいこともあるよな。
月子:確かに、LOG関数は底を指定するのが少し面倒だよね。他にも何か良い方法があれば知りたいな。
研:そうだな、他にもシンプルな方法があれば便利だよな。誰か新しいアプローチを知っている人いないか?
(真琴が発言します。)
真琴:実は、自分はLN関数を使ったことがあるんだ。LOG関数と違って、底が自然対数のeになっているから指定の手間が省けるんだよ。
隆治:それは確かにシンプルだね。でも、自然対数だと必要な場面もあるけど、底を指定できないのは不便だな。
月子:そうだな、使い分けが必要かもしれないね。でも、底を指定することがないならLN関数もアリかもしれない。
研伸:なるほど、底を気にせずに計算できるLN関数も一考の価値があるな。他にも何かある人いる?
(メンバーたちはエクセルでの対数計算について、各自の経験やアプローチを共有しながら、新しい知識を得ることにしました。サークルの部室は数学的なアイデアと情報が交換され、活気に満ちていました。)