Excelは元々経営シミュレーションの目的で開発されたソフトウェアですが、現在では様々な数値計算を可能にする汎用の計算道具になっています。せっかく手元にあるのだから使わなければ損。
数学的な問題で、数値に置き換えて計算することで、問題の状況を明確に把握できるということはしばしば経験することです。そうすれば、数学や統計、確率の理解もすすむことでしょう。
計算といえば電卓、キー操作には十分慣れているはず、ですが、ちょっとした計算でもExcelを使うことによって、作業効率が100倍、1000倍、∞倍になることは間違いありません。電卓との違い(のホンの一部)をまとめておきましょう。
電卓 | Excel |
いきなり数式を入力し、最後に「=」キー | 最初に「=」を入力し、最後にEnterキーを押す |
(関数計算)数値を入力して関数キーを押す | 関数文字列を数式として入力する(SQRT(.)のように) |
同じ数でも、その都度入力しなければいけない |
セルに入力しておけば、あらためて入力することなく何回でも使える |
長い式を間違いなく入力するのはむつかしい |
間違えたら何度でも部分的に修正ができる、分けて入力することもできる |
計算結果は次の計算の時消えてしまう |
別のセルを使えば結果を残しておくことができる |
したがて、比較計算がむつかしい |
関数表作成が容易、いろいろな計算を比較確認できる |
逆行列を計算するのはむつかしい |
行列計算が容易 |
統計データの集計用として、Excelを使うことには大きなメリットがあります。一旦入力しておけば、何度でも繰り返し使うことができますし、追加修正も簡単にできます。統計用の関数も豊富です。
入力は「直接入力モード」が原則。「=」から始めると、数式入力モードになる。
入力は大文字でも小文字でも構わない。入力が確定した後は、関数名もセル番号も大文字で表記される。
数式の中の定数は、直接式に書き込まないでなるべく、セル番号を使うのがExcel流。セル番号を数式に書き込むことをセル参照という。そうすることで、定数の値を変えたい場合に迅速に対応することができる。
四則演算は「+」「-」「*」「/」と書く。べき乗計算は「^」。カッコは「( )」しか使えない。
注意 「-」は「^」に優先する。普通「=-3^2」と書けば「-32」と思うが、Excelでは「(-3)2」の意味であるので注意が必要。
ヒント 長い式はいくつかに分割して複数のセルに入力して、最後にそれらを統合する式を入力するようにすればながーい1行の式を見続けなくてすむ。たとえば、分数式の分母、分子を別々のセルに入力し、最後に「=A3/A4」のような式を入力する。
Excelは豊富な関数によって、計算能力を飛躍的に高めている。関数を入力する方法はいろいろある。
「数式バー」の左にある「関数の挿入」ボタンをクリックすると、「関数の挿入」ウィンドウが表示され、関数のリストが表示される。機能によっていくつかのグループに分かれているので(財務、数学、統計、文字列操作、など)、分類が分かっていれば「関数の分類」のプルダウンメニューから適切な分類名を選択する。よく分からない場合は、「関数の検索」の下の空白に、掲載したい内容の検索ワードを入力する。
関数の名前がある程度分かっている場合は、いちいち「関数の挿入」ボタンをクリックしてリストから選択するのは煩わしい。いきなり「=sq」のように関数名を最初から入力していく。「=s」と入力したとたんに、sから始まる関数名のリストがポップアップされ矢印キーで選べるようになる。さらに続けて「q」と入力すると候補が二つに絞られるので、選択が容易になる。特に長い名前の関数を入力する場合は有効な方法である。
平均、総和にようによく使われるいくつかの関数は「ホーム」→「編集」→「オートSUM」ボタンの右をクリックすると、いくつかの関数名が表示される。
数式の中でセルを引用するときは、セル番号をキーボードから直接入力する代わりに矢印キーとCtrlキーを組み合わせて使うと、入力ミスが減り、効率が良くなる場合が多い。
例えば、セルC4に「=SQRT(A4)」と入力する場合、「=SQRT(」と打ってから←矢印キーを1回押すと、セルC4の表示が自動的に「=SQRT(B4」と変わります。もう一回←キーを押して「=SQRT(A4」となってから 「)」キーを入力してEnterキーを押せばセルは「=SQRT(A4)」という式が確定します。
「=SUM(A3:A10)」のようにセル範囲を入力する場合は、上の手順で「=SUM(A3」まで入力したら「:」をキーボードから入力しま す。そうしてからまた、矢印キーを動かすと「=SUM(A3:A4」のように次のセル記号が入力されるので、それがA10になるまで↓キーを移動させ、 最後に「)」と入力してEnterキーを押します。
セル一つだけを使って作業するということはあまりなく、いくつかのセルで同じような計算をしてそれらを比較する、という場合がよくあります。例えば、複利計算:(1+r)n
の場合を考えます。n が大きくなるにつれてどのように増えていくか、r の大きさの違いで増え方がどう変わるか、ということを調べるのが目的です。セルB2に r の値、セルB3に n の値、セルB5に「=(1+B2)^B3
」と入力して、セルB2,B3の値をいろいろに変えると目的が達成されますが、別の方法を試してみましょう。
セルB5に(1+r)0
= 1、セルB6に(1+r)1
= 1+r、セルB7に(1+r)2
、セルB8に(1+r)3
、...のように入力しておけば、n の違いをすぐに比較できますし、セルB2を変えたときもセルB5,B6,...の内容が一斉に入れ替わるので、セル一つだけで調べるよりも分かりやすいでしょう。
(漸化式)各セルに別々の数式を入力する必要がありますが、工夫するとその作業を劇的に減らすことができます。セルB6はセルB5の 1+r 倍、セルB7はセルB6の 1+r 倍、セルB8はセルB7の 1+r 倍、ということに注意してください。この関係(漸化式といいます)はどこまでも続きます。そこで、セルB5に1を入力したあと、セルB6に「=B5*(1+B2)
」、セルB7に「=B6*(1+B2)
」、...と入力すれば良いのですが、この作業もサボることができます。
(相対参照)セルB6を入力したあと、セルB6をコピーし、セルB7にペーストします。そうすると、セルB7には「=B6*(1+B3)
」という式が入力されます。セルB6に入力された式にあるB5,B2は、セルB6からみて「一つ上のセル」「4つ上のセル」という意味を持ち、その数式をセルB7にペーストすると、B5,B2は、セルB7からみて「一つ上のセルB6」「4つ上のセルB3」に置き換わり、「=B6*(1+B3)
」となった、というわけです。このようなセルの参照を相対参照といいます。
(絶対参照)B6はよいのですが、B3では困ります。そういう場合は「セルB6から見ていくつ上」という相対参照ではなく、「どこから見てもセルB2」という絶対参照を使います。絶対参照は $B$2
のように「$
」を使って表します。結局、
=B5*(1+&B&2)
」という式を入力する。これで20年分の計算が一覧表で表示されます。セルB2の数値を変えるとセルB6:B25が一斉に変わることが観察できるでしょう。
このように入力の手間を省こうとすると、コピーペーストが盛んに出てきます。いちいちマウスを使って「ホーム/クリップボード」タブのアイコンをク リックしていたのでは非能率です。マウスを使う代わりに、Ctrlキーを押しながらCキーを押すと「コピー」ボタンをクリックしたのと同じ、Ctrlキー を押しながらVキーを押すと「ペースト」をクリックしたのと同じ、という便利な機能がありますので、覚えてください。これは必須です。
このように、マウス操作を同じ動作を実現するキーの組み合わせをショートカットキーと いいます。コピーペーストの次によく使うショートカットキーはCtrlキーとZの組み合わせで、「直前の命令をキャンセルする」という動作をします。何か 間違ったときは、慌てずにCtrlキーとZキーを押してみてください。たいていは元に戻ります。そのほかのショートカットキーは、アイコンにマウスを合わ せるときに表示される小さなウィンドウで「(Ctrl+C)」のような文字列が書かれている場合は、それがショートカットキーですので、自分で調べてくだ さい。
ある規則に従った数列を入力したい場合、もちろん、1項ごとに入力すれば良いのですが、入力ミスを防ぐために、規則を利用して、計算によって入力させる方法に従う方が効率的です。
方法はいくつかあります。必要に応じて使い分けてください。
規則性が(Excelにとって)明らかな場合は、初期値を入力したセルをアクティブにして、フィルハンドルをドラッグすれば、連続データ(等差数列)が入力されます(例 「項目1」と入力して上の方法を用いると「項目2」「項目3」、...が入力される)。フィルハンドルとは、アクティブセルの右下隅に表示されている小さな四角形のことで、マウスをそこに移動するとアイコンが黒い十字形に変わるので、そこからドラッグを開始すると、アクティブセル範囲が拡大し、「項目2」「項目3」、...が表示されるようになります。
普通の数値データの場合は、初項だけではなく、2項目を入力して階差を明示的に与えてから、二つのセルをアクティブにしてからフィルハンドルをドラッグします。
100セルくらいまでなら何とかなるでしょうが、1000せるとなるとちょっと大変、別の方法を探そう。
「ホーム/編集」タブの「フィル」ボタンをクリックして「連続データの生成」オプションを利用すると、様々な等差数列を大量のセルに入力することが可能。
事例 セルa1:a1000に1から1000までの通し番号を入力し、さらに(別の機会に)a1001:a2000 に2000までの通し番号を追加する方法
もっと複雑な規則的数列を入力するには数式入力が必要。複雑でなくても、この方法を覚えておくと柔軟なシート作りができる。
連続データの例のようにシートを広く使う場合、マウスのドラッグや、シートの右のスクロールバーを操作するのは煩わしくなるので、一挙に遠いセルに移動できる方法をマスターしておいた方が、作業効率が上がります。
シートの左上、数式バーの左隣にセル記号の書かれたところがありますが、それが名前ボックスです。そこにアクティブセルにしたいセル記号を入力すると、そのセルを含むシートの範囲が表示されます。目的セルの番号が分かっていれば、一番手っ取り早い方法でしょう。
矢印キーは隣のセルにしか移動できませんが、Ctrlキーを押しながら矢印キーを押すと、複数セルをスキップすることができます。↓キーを押した場 合、現在のアクティブセルにデータが入力されていない場合は、下方向に探して、最初にデータの入力されているセルをアクティブセルにします。データが入力 されている場合は、下方向に探して、最初にデータの入力されていないセルのすぐ上のセルをアクティブセルにします。例えばセルA10:A40にデータがあ り、現在のアクティブセルがA4だった場合、Ctrl+↓キーを押すとセルA10がアクティブセルになり、現在のアクティブセルがA13だった場合はセル A40がアクティブセルになります。他の矢印キーを押しても同様です。例えば、現在のアクティブセルがA13で、Ctrl+↑キーを押した場合はセル A10がアクティブセルになります。
Ctrlキーと同時にShiftキーも押しておくと、途中のセルをアクティブにします。
数式を入力している最中でもこの操作は可能です。たとえば、セルA3:A902
にデータが入力されていて、セルB3に「=SUM(A3:A902)
」と入力したい場合は、
=SUM(
」と入力してから←キーを押す(「=SUM(A3
」と表示される)=SUM(A3:A3)
」と表示される)=SUM(A3:A902
」と変わる)それほど遠くはないけれど画面上にないセルをアクティブにしたい場合は、ページダウンキー、ページアップキーを使うと、画面スクロールを見続けなくてすむ。意外とストレスレス。
Excelにはたいていの数学関数は揃っています。次のような関数はよく使われるので、覚えておいて下さい。いくつか、特に注意することを特記します。
種類 | 関数名 | 用例 | 備考 |
対数関数 | LN | natural logarithm | |
べき乗計算 | ^ | 2^10, A4^3 | マイナスより優先度が低い (「-2^2」は「(-2)^2」と解釈されるので注意) |
四捨五入 |
ROUND |
ROUND(A2,1) |
絶対値を四捨五入した後に符号を付ける ROUNDUP, ROUNDDOWN,TRUNCも同様 |
整数化 |
INT FLOOR CEILING TRUNC |
その数以下の最大整数(符号は関係なし) FLOOR(..,1)と同じ TRUNCは絶対値を切り捨てた後、符号を付ける |
主要な関数の一覧表
EXP | 指数関数 | ネピア数(e = 2.718281828...)のx乗 |
LN | 自然対数関数 | ネピア数を底とする対数関数 |
SIN, COS, TAN, ほか |
三角関数 |
|
PI |
円周率 |
|
SQRT | 平方根 | 「^0.5」と同じ |
ABS | 絶対値 | |
MOD, QUOTIENT | 整数割り算のあまりと商 | |
SIGN | 符号関数 | 正ならば「1」、ゼロならば「0」、負ならば「-1」とする |
ROUND | 四捨五入 | ROUND(-2.6,0) = -3 |
INT, TRUNC | 切り捨て | INT(-2.6) = -3, TRUNC(-2.6) = -2 |
ROUNDUP, ROUNDDOWN | 切り上げ、切り捨て | ROUNDUP(-2.6,0) = -3 |
FLOOR, CEILING | 切り上げ、切り捨て | FLOOR(-2.6) = -3 |
FACT | 階乗 | |
COMBIN | 2項係数 | |
GCD, LCM | 最大公約数(gcd)、最小公倍数(lcm) |
関数名 | 内容 | 関数名 | 内容 | |
AVERAGE | 算術平均 | VAR, VARP | 分散 | |
AVEDEV | 平均絶対偏差 | STDEV, STDEVP | 標準偏差 | |
GEOMEAN | 幾何平均 | SKEW | 歪度 | |
HARMEAN | 調和平均 | KURT | 尖度 | |
MEDIAN | 中央値 | QUARTILE | 四分位数 | |
MODE | 最頻値 | CORREL | 相関係数 | |
TRIMMEAN | 両端外れ値排除後の平均値 | COVAR | 共分散 |
関数名 | 内容 |
SUM | 普通の和 |
SUMIF | 条件に合ったものだけの和 |
SUMSQ | 2乗和(Σi xi^2) |
SUMX2MY2 | 二つの配列のそれぞれの平方和の差(Σi xi^2 - Σi yi^2) |
SUMX2PY2 | 二つの配列のそれぞれの平方和の和(Σi xi^2 + Σi yi^2) |
SUMXMY2 | 二つの配列の要素毎の差の平方和(Σi (xi - yi)^2) |
関数名 | 内容 | 関数名 | 内容 | |
COUNT | 数値データの個数 | MAX, MIN | 最大値、最小値 | |
COUNTA | 非空白セルの個数 | LARGE | 降順データの上から何番目 | |
COUNTIF, COUNTIFS | 条件抽出 | SMALL | 昇順データの上から何番目 | |
PERCENTILE | 分位点 | RANK | データの順位 | |
FREQUENCY | 度数分布表生成 |
正規分布の密度関数のように、統計で良く出てくる関数もたくさん用意されています。関数名は、分布の名前に続けて「.DIST」「.INV」のよう
な語尾を付けて表します。「.DIST」は累積分布関数、密度関数あるいは確率関数、をあらわし、「.INV」は逆関数を表します。
BETA.DIST, BETA.INV |
ベータ分布関数、その逆関数 |
CHISQ.DIST, CHISQ.INV |
カイ2乗分布、その逆関数 |
EXPON.DIST |
指数分布 |
F.DIST, F.INV |
F分布、その逆関数 |
GAMMA.DIST, GAMMA.INV |
ガンマ分布関数、その逆関数 |
LOGNORM.DIST, LOGNORM.INV |
対数正規分布関数とその逆関数 |
NORM.DIST, NORM.INV |
正規分布関数とその逆関数 |
NORM.S.DIST, NORM.S.INV |
標準正規分布関数とその逆関数 |
T.DIST, T.INV |
t分布関数とその逆関数 |
WEIBULL.DIST |
ワイブル分布関数 |
BINOM.DIST, BINOM.INV |
2項分布 |
HYPERGEOM.DIST |
超幾何分布関数 |
NEGBINOM.DIST |
負の2項分布関数 |
POISSON.DIST |
ポアソン分布関数 |
例えば、標準正規分布の場合、「NORM.DIST(x, 0, 1, FALSE)」と書くと密度関数のxにおける値、「NORM.DIST(x, 0, 1, TRUE)」と書くと累積分布関数のxにおける値を計算します。
同じような計算をパラメータの値を変えて計算し、それらを一覧表にまとめる、というような計算は、パラメータを入力する、再計算結果をコピーペーストする、パラメータを入力する、再計算結果をコピーペーストする、の繰り返しですが、それを一つの手順にまとめたのが「データテーブル」機能です。
方程式の解を数値的に求めるにはニュートン法のような反復法によるアルゴリズムが使われます。例えば、f(x) = 0 を満たす x の値を数値的に求める場合は、初期値として適当な値x0を決め、|f(x0)| > |F(x1)| となるようなx1を計算し、次いで、|f(x1)| > |F(x2)| となるようなx2を計算し、...ということを繰り返して、f(x*)≒0 として良いような x* を求め、それを解とする方法です。
無限に繰り返せば真の解に収束するというアルゴリズムが使われますが、通常は時間の関係で、ある程度収束したらそこで反復を停止します。また、コンピュータの計算はせいぜい十数桁の精度しかないので、得られる解は真の解ではなく近似解で す。
反復法のプログラムを書くのは結構面倒です。この作業を一つの命令で実行できるようにしたのが「ゴールシーク」命令です。
例えば、cos(x) = x を満たす x を計算したい場合、
そうすると、表示されている「ゴールシーク」ウィンドウに「解答が見つかりました」という文字列が表示され、セルA3に0.739062、セルB3に3.79E-05というような文字列が表示されます。表示される数は、コンピュータの設定によって異なります。セルB3の「3.79E-05」はExcel流表記法で、3.79 x 10-6という数を表します。これはcos(x) = x という方程式の解を見つけようとしたのだけれど、左辺−右辺が3.79 x 10-6としたところで計算を止めました、ということを表しています。つまり、求めた方程式の解は 10-6くらいの誤差があるということです。
ゴールシークで使われる反復法の停止規則は、あらかじめ設定した誤差より改善が見られないことです。誤差を小さくすることによってよりよい解を求めることができます。誤差は次のようにして設定します。
こうしてから、もう一度ゴールシークを実行すると、今度はセルA3の表示は0.739085、セルB3は9.97E-11のような数値に置き換わります。誤差がこれくらい小さければ実用的には十分でしょう。
ゴールシークの計算には誤差がつきものですので、その限界をわきまえて、うまく使いこなすことが必要です。
ゴールが複数ある場合は、スタート地点を人間が決める必要があります。例えば、x3 - x = 0 という方程式の解は、反復法の初期値をどこに取るかで、収束先が異なります。「変化させるセル」を「-2」とした場合の解は「-1」、「2」とした場合の解は「1」となることを確かめて下さい。様子の分からない関数のゼロ点を計算する場合は、あらかじめ、その形状を確認してから、適切な初期値を設定する必要があります。
いろいろな制約条件の下で目的関数の値を最適化したい、という要求は至る所に出てきます。これを自動的に実行させるのが「ソルバー」と呼ばれる最適化のためのアドインプログラムです。
ソルバーは「データ」タブの「分析」グループにある「ソルバー」ボタンから起動します。もしそこに「ソルバー」ボタンがない場合は、「アドインを追加する」必要があります。
たとえば、x^2 + y^2 - 1 = 0 という条件の下で xy の極値を求める問題を例に説明する。
ソルバーも、ゴールシークと同じように反復法によって近似解を求めている。その誤差の上限を小さくすることで、誤差の少ない解を得ることができる。 あまり小さくすると、いつまでたっても収束したと見なされず、計算が終わらないという危険もあるので、ほどほどにする必要がある。
原料 P, Q を使って二種類の製品 A, B を作る。A を一つ作るには P が 6 単位、Q が 2 必要、B を一単位作るには P が 3 単位、Q が 8 単位必要である。製品 A, B はそれぞれ1個当たり 3 単位円、5 単位円の利益がある。原料 P が 120 単位、Q が 96 単位使えるとき、A, B をいくつずつ生産すれば、利益が最大になるか、計算しなさい、という問題のシートの作成手順は以下の通り。
最適化問題で最適解を見つけたとしても、条件がちょっと変わったときその解がどのように変わるのか、ということを調べることは、最適解の性質を知る上で重要な分析手順です。このように、パラメータの値の変動が目的関数の値に及ぼす影響を調べる分析法を「感度分析」と言います。パラメータの入力されているセルの内容をその都度再入力してEnterキーを押す、ということを繰り返すのは、結構な手間です。その入力を自動化する機能が「スクロールバー」です。
f(x) = a x(1-x) という関数に対して、適当な初期値(0より大きく、1より小さい)x0を与えて、xn+1 = f(xn) によって数列を作り、十分大きなところだけ利用して (xn, xn+1)の散布図を描くと、a(3以上4以下)の値によって興味深い。図が描ける。これをスクロールバーの例題としよう。
Excelのシートで日本の借金総額(一千兆円)を表示することはできません。あるセル(セルA3とします)に1000兆1000億1000万1234と入力すると、「1.0001E+15」と表示されます。「E+15」は「x 1015」を表すExcelの表記法です。Excelでは桁数が多い数が入力された場合、あるいは計算された場合は、先頭の数字の後に小数点を付けた数と10のn乗の積の形で表すのが標準になっています。
入力した数字をすべて表示させたい場合は、「ホーム」タブ「数値」グループの「小数点以下の表示桁数を増やす」ボタンをクリックします。一回クリックする毎に下の位の数値が表示されるようになります。しかし、「1.00010001000123E+15」までは順調ですが、その次は「1.000100010001230E+15」となって、「4」が表示されません。Excelの数値記憶能力には限界があることが分かります。
計算結果も、15桁を超えると、最後まで正しい計算を実行することができません。たとえば、セルA5に「=A3*10001」と入力すると、「1.000200020002230E+19」と表示され、「小数点以下の表示桁数を増やす」ボタンをクリックしても「0」が追加されるだけです。
行列の各要素を同時に計算することができる。
たとえば、セルA2:C3とセルA5:C6に行列データが入力されているとき、その和をセルA8:C9に計算するには、
そうすると、6個のセルに同時に結果が入力される。
行列の積は「MMULT」関数を使う。たとえば、セルA2:C4とセルA5:C7に行列データが入力されているとき、その和をセルA9:C11に計算するには、
そうすると、 3x3 行列同士の掛け算が計算される。最初の行列の列の数と、2番目の行列の行の数が等しくないとエラーになる。
仕事 | 関数名 | 使用例 |
行列の積 | MMULT | |
逆行列 | MINVERSE | |
内積 | SUMPRODUCT | |
行列式 | MDETERM |
引数の行列範囲をキーボードから入力するのは間違いの元。矢印キーをうまく利用すると入力ミスを減らすことができます。セルE3に「=MMULT(A3:B4,C3:D4)」を入力する場合を例にとって説明しましょう。
連立方程式 Ax = b の解は x = A-1b で求められるので、逆行列をMINVERSE関数で計算し、MMULT関数を使って定数ベクトルとの積を計算すれば良い。
たとえば、3元連立方程式:{3x - y + 3z = 2, 2x + y - z = 1, x + z = 1} の解を求める際のシートの作成手順を示します。
システムの状態の時間変化を微分方程式によってモデル化することができます。
冷蔵庫のような耐久消費財の普及過程をモデル化した数学的モデルにバスモデルがあります。市場には、周りの状況に左右されないイノベータと呼ばれる顧客と、所有者の存在に影響を受けて購買を決めるフォロワーという顧客の2種類が存在し、普及率の短期的な増分はこれら2種類の顧客によって定まるパラメータを使った微分方程式モデルで表現できる、としたものです。
dy/dt = (p + q y(t)) (N - y(t))
y(t) が時点 t における購買者の数、N が市場規模、p がイノベータの購買力を表すパラメータ、q がフォロワーの購買力を表すパラメータを表しています。q y(t) はフォロワーがそのときの購買者数が多ければ多いほど購入するという行動を表現し、N - y(t) がかかっていることから、未購入者が減ることによって普及スピードが減少することを表現しています。
感染症の感染の時間推移モデルとして、SIRモデルがあります。未感染者S(t)、感染中I(t)、治癒者R(t) の時間変化を次の微分方程式で表したモデルです。未感染者は感染中の患者に比例して減少し、治癒者は感染中の患者に比例して増える、という単純なモデルです。a/b を再生産数といい、これが1を超えていると感染は拡がる、という指標になっています。
dS/dt = - a I(t) dt
dI/dt = a I(t) dt - b I(t) dt
dR/dt = b I(t) dt
RAND
:区間[0,1]の一様乱数
RANDBETWEEN
:指定した二つの整数値の間の離散一様乱数
累積分布関数の近似逆関数が与えられているので、それを利用して逆関数法で生成する
=NORM.INV(RAND(),A6,A7)
」は平均A6、標準偏差A7の正規乱数を生成する =ROUND(NORM.INV(RAND(),170,7),1)
」は体力測定の際の架空身長データを生成する 確率分布の逆関数が与えられている場合は、逆関数法を利用して、正規分布と同じように変数としてrand()を指定すれば、望みの乱数を得ることが できます。ただし、たいていの場合、逆関数は近似関数なので、乱数も微妙に違う可能性があります。特に、分布の裾の頻度は要注意です。
個別には標準正規分布に従い、その相関が r の二変量正規乱数は次のようにして生成できます。
x = NORM.S.INV(RAND())
相関のある別の乱数を標準正規乱数から生成:y = x * r + sqrt(1-r^2) *
NORM.S.INV(RAND())