
上図のセルE5に、
「=IF(E3^2<4*B3*H3,"解なし",(−1*E3+SQRT(E3^2−4*B3*H3))/
(2*B3))」と入力すると、「x1」の解が表示される。

上図のセルE7に、
「=IF(E3^2<4*B3*H3,"解なし",(−1*E3−SQRT(E3^2−4*B3*H3))/
(2*B3))」と入力すると、「x2」の解が表示される。
2次元方程式の解の公式は、「(−b±SQRT(b^2−4ac))/2a」として知られて
いる。エクセルでもこの公式にあてはめて計算する事で解が得られる。
平方根を計算するSQRT関数の前の「±」で2つに分けて計算できるので、それ
ぞれの数式で求められる。この例では、虚数解を「解なし」と表示させるので、
SQRT関数の中の部分の「b^2−4ac」が負にならないかどうかを「b^2<4ac」
として判断している。実際の数式では「E3^2<4*B3*H3」としている。
265.SQRT関数で、2次元方程式の解を求める。

上図は連立方程式の「3x+4y=1 2x+3y=3」の解を求めたものである。
3行目と5行目に連立方程式を入力する。
セルB8からC9に元の連立方程式からxとyの係数を取り出して2×2行列を
作る。

そして、セルG8からH9を選択した状態で、
「=IF(MDETERM(B8:C9)=0," ",MINVERSE(B8:C9))」と入力し、
[Ctrl]-[Shift]-[Enter]を同時に押すと配列数式として入力され、この
係数の行列の逆行列が求められる。
この際、MDETERM関数で求めた行列式が「0」になる場合は、逆行列が
求められないので、IF関数を使ってセルに何も表示しないようにし、そう
でない場合はMINVERSE関数で逆行列を求めるように処理を分けている。

上図の様に、セルD14からE15を選択して、
「=IF(ISERROR(MMULT(D11:E12,G11:G12)),"解なし",MMULT(D11:
E12,G11:G12))」と入力し、[Ctrl]-[Shift]-[Enter]を同時に押すと、
配列数式として入力され解が求められる。
尚、解が求められない場合は、「解なし」と表示される。
264.MDETERM関数とMINVERE関数とMMULT関数で、連立方程式の
解を求める。

上図のセルV2からW3を選択して「=IF(MDETERM(R2:S3)=0,"解なし",
MINVERSE(R2:S3))」と入力し、[Ctrl]-[Shift]-[Enter]を同時に押すと
配列式として入力され、逆行列が求められる。
逆行列とは、元の行列と逆行列の積が単位行列(右下がりの対角線上にある
要素がすべて「1」で、その他の要素がすべて「0」の正方行列)になる特徴
を持っている。MINVERSE関数は、元の行列と同じ正方行列の大きさのセル
範囲を選択した状態で、[Ctrl]-[Shift]-[Enter]を同時に押すことにより配列
数式として入力される。
但し、一般的に「行列式」が「0」になる場合は、逆行列が存在しないので、
IF関数の「論理式」に行列式を求めるMDETERM関数を利用して、行列が
「0」になるときは「解なし」と表示して、そうでない時にMINVERSE関数
で逆行列を求められる。
263.MDETERM関数とMINVERE関数で、逆行列を求める。

上図のセルN2からO3までを選択して、「=MMULT(H2:I3,K2:L3)」と入力し、
[Ctrl]-[Shift]-[Enter]を同時に押すと、配列数式として入力され、2つの行列
の行列積を計算できる。
行列積の結果は、「左側の行列の行数×右側の行列の列数の大きさ」で求めら
れる。例えば、「3行2列×2行3列」の場合、行列積の結果は「3行3列」
となる。尚、左から掛ける行列の行数と、右から掛ける行列の列数が等しく
なければ、行列積の計算はできない。
MMULT関数の第1引数には、左から掛ける行列、第2引数には右から掛ける行列
を指定し、配列数式として入力する。あらかじめ行列積の結果として求められる
範囲を選択した状態で、MMULT関数を入力し、[Ctrl]-[Shift]-[Enter]を同時に
押すことで配列式として入力され、行列積の結果が求められる。
262.MMULT関数で、行列の積を求める。

上図のセルF2に、「=IMSUM(B2,D2)」と入力すると、B2とD2の足し算が
できる。複素数は、「a+b1」もしくは「a+bj」の形式で入力する。
IMSUM関数は、「(a1+a2)+(b1+b2)i」の様にして「実数部の総和+虚数部の
総和 i 」が求められる。
同様にして、引き算はIMSUB関数で計算できる。


上図のセルF10に、「IMPRODUCT(B10,D10)」と入力すると、掛け算の
結果が求められる。
上図のセルF14に、「IMDIV(B14,D14)」と入力すると、割り算の結果が
求められる。
261.IMSUM関数、IMSUB関数、IMPRODUCT関数、IMDIV関数で、複素数の計算
をする。

色を示すRGB値は、まとめて6桁の16進法で表記させたり、10進法で指定
したりと様々なケースがある。
6桁の16進法表記の場合は、2桁ずつ左からR(Red)値、G(Green)値、
B(Blue)値を示している。
上図の様にセルI3に「=HEX2DEC(LEFT(G3,2))」と入力すると、R値を
10進法に変換して取り出せる。

Gの値は「=HEX2DEC(MID(G3,3,2))」、B値は=HEX2DEC(RIGHT(G3,2))」
として各2文字を取り出して、10進法に変換出来る。
逆に、16進法に変換するには「HEX2DEC」で変換した値を、「DEC2HEX」で
変換し、取り出した文字を「&」演算子で結合すれば作成できる。
260.HEX2DEC関数で、16進法のRGB値を10進数に変換する。

上図の様に、D10セルに「=BIN2DEC(B10)」と入力すると、2進法の
数値を10進法の数値に変換できる。
2進法や8進法は、文字列の表記になるが、10進法に変換すると数値と
なる。
尚、10進は「DEC]、2進は「BIN]、8進は「OCT]、16進は「HEX」と
して、それぞれ「DEC2BIN]のような名称の関数を用いて変換できる。
259.BIN2DEC関数で、2進法の数値を10進法に変換する。

上図の様にD3セルに、「DEC2BIN(B3,8)」と入力すると、10進法から
2進法に変換できる。
DEC2BIN関数の引数は、「=DEC2BIN(数値,桁数)」である。
258.DEC2BIN関数で、10進法の数値を2進法で表記する。

上図のセルC3に「=SIN(RADIANS(B3))」と入力すると、角度に対するサイン値が
得られる。サイン値のグラフを作成するには、一定間隔毎の x(=角度)を用意して、
それに対応するサイン値を求める。サイン値は細かくすれば、なめらかな曲線が得
られる。

尚、B列は数値が必要であるから、表記の度は[セルの書式設定]の表示形式で表す。

上図の様に、B列とC列のデータ部を選択して[挿入]-[グラフ]-[散布図]をクリック
して行くと、サイングラフが作成される。

上図の様に、X軸数値の全体を選択して、右クリックして[軸の書式設定]を選択
する。

[軸のオプション]ですべての設定をすると、横軸の表示が修正された。
次に、縦軸の値をすべて選択し、右クリックし、[軸の書式設定]を選択する。


上図の様に、[軸の書式設定]が出るので、各設定をして閉じる。

上図の様に見易いグラフが完成した。
257.SIN関数とRADIANS関数で、サイン関数のグラフを作成する。

上図のセルE40に「DEGREES(ATAN(E37/E38))」と入力すると、角度が求め
られる。目標までの距離と高さが分かれば、「ATAN(距離/高さ)」として角度が
分かる。ATAN関数では、ラジアン角で結果が返るので、DEGREES関数で、「度」
数に換算している。
尚、ATAN関数にはATAN2関数もあるので、「ATAN2(距離,高さ)」としても計算で
きる。
256.ATAN関数とDEGREES関数で、距離と高さから角度を求める。

上図のセルE28に「=DEGREES(ACOS(E25/E26))」と入力すると、角度が求め
られる。目標までの底辺と斜辺の長さが分かれば、「ACOS(底辺/斜辺)」として、
勾配の角度が分かる。ACOS関数では、ラジアン角で結果が返ってくるので、
DEGREES関数で、「度」数に換算している。
又、高さと斜辺の長さが分かっている場合は、「ASIN(高さ/斜辺)」として計算で
きる。
255.ACOS関数とDEGREES関数で、距離と斜辺から角度を求める。

上図のセルE16に「=E13*TAN(RADIANS(E14))」と入力すると、高さが求め
られる。目標までの距離と仰角が分かれば、「距離×TAN」として、目標の高さ
が求められる。この例では、角度を「度」数で指定できるように、RADIANS関数
でラジアン単位に変換している。又、斜辺の長さと角度が分かっている場合は、
「斜辺×SIN」として高さを求められる。
254.TAN関数とRADIANS関数で、距離と角度から高さを求める。

上図のセルE5に、「=SQRT(E2^2+E3^2)」と入力すると、斜辺の長さが求めら
れる。ピタゴラスの定理で、「底辺^2+高さ^2=斜辺^2」という関係が成り立つ
ので、斜辺の長さは「底辺^2+高さ(対辺)^2」の平方根として求められる。
平方根はSQRT関数で計算できるので、この例の様に引数に「E2^2+E3^2」という
数式を持ちいることで、底辺と対辺の長さから斜辺が求められる。
253.SQRT関数で、三角形の底辺と高さから、斜辺の長さを求める。

上図のセルD73 に、「=DEGREES(ASIN(B73))」と入力すると、サイン値から
度数を求められる。
ASIN関数の計算結果がラジアン角で返されるので、DEGREES関数で度数に換算
している。
252.ASIN関数と、DEGREES関数で、サイン値から「度」数を求める。

上図のセルD66に「=SIN(RADIANS(B66))」と入力すると、「1度」のサイン値を
求めることができる。もちろん「=SIN(RADIANS(1))」と直接入力してもよい。
サイン値はSIN関数で求められるが、引数にはラジアン単位の角度を指定しなけれ
ばならない。そこで、RADIANS関数を利用して、度数で指定した角度をラジアン
数に変換している。
尚、計算誤差によってピッタリの数値に変換できないケースも発生する。
251.SIN関数と、RADIANS関数で「度」数からサイン値を求める。

上図のセルD59に「=DEGREES(B59)」と入力すると、「ラジアン1度」を角度に
変換する事ができる。
逆三角関数(ASIN関数,ACOS関数,ATAN関数)などの計算結果は、ラジアンで返さ
れる。
250.DEGREES関数で、ラジアンを角度に変換する。

上図のセルD52に「=RADIANS(B52)」と入力すると、角度「1度」に対する
ラジアン角に変換されます。
ラジアンは角度を測る為の単位で、エクセルでは三角関数などの角度は「ラジアン」
を使用します。このために「度」単位の角度で指定したい場合は、RADIANS関数を
使用してラジアン角に変換します。
2πラジアン=360度なので、「角度×PI( )/180」として換算することもできるが、
RADIANS関数の、引数に角度を指定するだけで換算できる。

249.RADIANS関数で、角度をラジアンに変換する。

上図のセルD45に「=4/3*PI( )*B45^3」と入力すると、半径「2」の球体の
体積を求めることができる。球の体積は、「4/3×半径×半径×半径×円周率」で
「4/3πr^3」となり、PI関数では「=4/3*PI( )*半径^3」という数式になる。
248.PI関数で、球の体積を求める。

上図のセルD38に「=4*PI( )*B38^2」と入力すると、半径「2」の球体の
表面積を求めることができる。球の表面積は、「4×半径×半径×円周率」と
して求めることができ、「4πr^2」という公式になり、「4*PI( )*半径^2」
となる。
247.PI関数で、球の表面積を求める。

上図のセルD31に「=PI( )*B31^2」と入力すると、半径「2」の円の面積が
求められる。円の面積は、「半径×半径×円周率」として求めることができ、
「πr^2」(r 半径,^2は「2乗」の意味)とする公式が良く知られている。
だから、円の面積は「=PI( )*半径^2」ということになる。
246.PI関数で、半径から円の面積を求める。

上図のセルD24に「=2*PI( )*B24」と入力すると、半径「2」の円周が
求められる。円周は「直径×円周率」又は「半径×2×円周率」で求められる
ので、「2πr」(r は半径)とする公式がよく知られている。
PI関数を使用すると「2*PI( )*B24」として求められる。
245.PI関数で、半径から円周の長さを求める。

上図のセルB6に、「=PI()」と入力すると、15桁分の円周率が取得できる。
円周率は、無理数なので15桁の近似値が得られる。
244.PI関数で、円周率を求める。

上記のセルB3に「=EXP(1)」と入力すると、ネイピア数の「e」を底として、
引数に指定する「指数」乗した値が求められる。
EXP関数の引数に「1」を指定すれば、「eの1乗」となり、ネイピア数そのもの
の確認ができる。
ネイピア数は無理数となるが、エクセル内では「2.71828182845905」と扱わ
れていることが分かる。
243.EXP関数で、自然対数の底(e)ネイピア数を求める。

自然対数は、数学の微積分などの計算に用いられることが多く、一般的にも
他の対数と区別するため「ln」と表記されることがある。
上記の様に、「=LN(B17)」と入力すると「10」の自然対数が求められる。
LN関数の引数に負の値や「0」を指定した場合は、「#NUM!」エラーが返さ
れる。
242.LN関数で、底を「e」(ネイピア数)とする自然対数を求める。

上図のセルD10に、「=LOG10(B10)」と入力すると、「1」と表示された。
対数は、指数関数の逆関数となっている。
例えば、数値(底)を「10」とした場合、「10の『2』乗」は「100」となる
が、LOG10関数を使うと、この「100」から「べき乗数」の「2」が得られる。
尚、LOG10関数の引数に負の値を指定すると「#NUM!」エラーとなる。
241.LOG10関数で、常用対数を求める。

上図のセルD3に、「=FACT(B3)」と入力すると、「120」と表示された。
「階乗」とは、指定した整数が「1」になるまで1ずつ減らした値同士を、乗じて
求める値のことである。
つまり、5の階乗は「5!=5×4×3×2×1=120」の様に計算される。
例えば、5冊の本を1列に並べる方法を考える時、並べ替えの総数は「5!」(120
通り)になる。
階乗は、「5!」の様に「!」を付けて表示する。
尚、引数に小数点を指定すると、小数点以下は無視される。又、負の値を指定する
と「#NUM!」エラーが返される。
240.FACT関数で、数値の階乗を求める。

「順列」とは「総数」から「抜き取り数」を取り出す際、順序を考慮して取り出し
たときの、順序のパターン数のことである。
上図のセルE24に「=PERMUT(B24,C24)」と入力すると、「720」と表示された。
PERMUT関数の引数は、「=PERMUT(総数,抜き取り数)」の様に指定する。
「総数」より「抜き取り数」の方が大きい数値を指定したり、引数に負の値を指定
すると「#NUM!」エラーが返される。
239.PERMUT関数で、順列の数を求める。

上図のセルE17に「=COMBIN(B17,C17)」と入力すると、「120」と表示された。
これは、10個の数値の中から3個の数値を、取り出す順序を考慮しないで選ぶのが
「組み合わせ」数である。計算式は下記の様になり、「120」通りの「組み合わせ」
数があると計算された。
238.COMBIN関数で、数値の「組み合わせ」の数を求める。

上図のセルE10に「=GCD(B10:C10)」と入力すると、数値1と数値2の最大公約
数を求めることができる。
最大公約数とは、各数値の約数で共通している「公約数」の最大のものである。
「約数」とは、ある整数を割り切ることのできる値のことで、
「公約数」とは、複数の値に共通する約数の事である。
例えば、「12」と「8」の場合、それぞれ「2×2×3」と「2×2×2」と素因数
分解でき、共通部分の「2×2=4」が最大公約数になる。もし、共通の素因数
が存在しない場合は、「最大公約数」は「1」となる。
数値が「8」と「10」の場合は、「8」の約数は「1,2,4,8」であり、「10」の約数
は「1,2,5,10」である。だから共通の約数は、「1,2」となり、その中の最大数が
「最大公約数」であり「2」となる。
237.GCD関数で、最大公約数を求める。

上図のセルE4に「=LCM(B4:C4)」と入力すると、最小公倍数が求められる。
最小公倍数とは、各数値の倍数で共通している「公倍数」の最小のものである。
「倍数」とは、ある値に整数を掛けてできる数値のことで、
「公倍数」とは、複数の値の倍数の中の共通した値を言う。
例えば、数値が「12」と「8」ならば、それぞれ「2×2×3」と「2×2×2」と
因数分解でき、「(2×2)×3×2=24」が最小公倍数として求められる。
尚、引数に負の数値が含まれると「#NUM!」エラーとなる。
236.LCM関数で、最小公倍数を求める。

整数の乱数を使用したい場合は、RANDBETWEEN関数を使用する。
上図のセルB3〜C7に、「=RANDBETWEEN(1,10)」と入力すると、
整数の乱数が求められる。
RANDBETWEEN関数の引数は、「最小値」と「最大値」を指定すればよい。
235.RANDBETWEEN関数で、1〜10の乱数を発生させる。

上図のセルB19に「=RAND( )*10」と入力すると、発生された乱数値を
10倍にして表示する。乱数値は0以上1未満の数値を返す。だから、1〜10
までの数値が必要な場合は、10倍にする必要がある。
234.RAND関数で、乱数を発生させる。

指定した数値が、正(+)の値か、負(ー)の値かを調べるときに使用する。
SIGN関数は、数値の符号に応じた値を返す。数値が正の時は「1」を、
ゼロの時は「0」、負の時は「−1」を返すので、これらの数値によって
符号を判断できる。これにより数値の大きさによる分類などの条件式と
して利用することができる。
上図の様に、セルD11に「=SIGN(B11)」と入力すると、「1」と表示された。
この値が、「正」の値だから「1」と表示されたのである。
233.SIGN関数で、数値の符号を調べる。

上図のセルD3に「=ABS(B3)」と入力すると、「5」と表示された。
値がマイナスの場合は、「ー」が取り除かれる。
数値から負の符号を取り除いたのが「絶対値」である。
計算結果が、マイナスになるとエラーになるような計算式に使用できる。
232.ABS関数で、数値の絶対値を求める。
XIII.数学の計算
この章では、三角関数を中心とした、数学関連の様々な計算方法を
解説をします。
関数の実用事例と引数の解説
三角関数を中心とした、数学計算に使用する関数の解説
実際に使っているシステムの内容で解説
EXCEL VBA 講座