概要
FACT 関数は、「階乗(かいじょう)」を計算するための関数です。
階乗とは、ある正の整数 n に対して「1×2×3×…×n」を掛け合わせたもののことです。
例えば、
3 の階乗:1×2×3=6
5 の階乗:1×2×3×4×5=120
これを Excel で一発で出してくれるのが FACT です。
FACT 関数の基本
書式と意味
=FACT(数値)
数値:階乗を求めたい非負の整数(0,1,2,3,…)
代表的な動きはこんな感じです。
=FACT(0) ' 0! → 1(定義)
=FACT(1) ' 1! → 1
=FACT(3) ' 3! → 1×2×3=6
=FACT(5) ' 5! → 1×2×3×4×5=120
=FACT(A2) ' A2 に入っている整数の階乗
0! が 1 になるのは数学上の約束事で、組み合わせや順列の式をきれいに書くための定義です。
FACT のイメージと使いどころ
並べ方・順列の土台になる
階乗は、「n 個のものを全部並べるとき、何通りの並べ方があるか」を表します。
例えば、3 人(A,B,C)を並べるときの並べ方は:
ABC, ACB, BAC, BCA, CAB, CBA → 6 通り
これは 3!(1×2×3=6)と一致します。
=FACT(3) ' → 6
5 人を並べるなら 5!=120 通り、10 人なら 10! と、あっという間に数が大きくなります。
組み合わせ・順列の計算の裏側
COMBIN(組み合わせ)や PERMUT(順列)は、内部的に階乗を使った式で定義されています。
[ {}_nP_r = \frac{n!}{(n-r)!} ]
これを Excel で手書きするなら、こうなります。
=FACT(n)/FACT(n-r)
同じように、組み合わせ nCr は:
Excel なら:
=FACT(n)/(FACT(r)*FACT(n-r))
もちろん、実務では PERMUT や COMBIN を使ったほうが楽ですが、
「裏で何が起きているか」を理解するうえで FACT はとても良い教材になります。
FACT のルールと注意点
引数は「0以上の整数」として扱われる
FACT の引数は、基本的に 0 以上の整数です。
小数を渡した場合は、小数点以下が切り捨てられて扱われます。
=FACT(5.9) ' → FACT(5) として計算 → 120
負の数を渡すと、階乗が定義されないため #NUM! エラーになります。
=FACT(-1) ' → #NUM!
文字列など数値以外を渡すと #VALUE! エラーになります。
コード例・テンプレート
基本的な階乗の計算
=FACT(A2)
A2 に入っている非負の整数の階乗を求めます。
3!、5!、10! を直接計算
=FACT(3) ' 3! → 6
=FACT(5) ' 5! → 120
=FACT(10) ' 10! → 3,628,800
順列 nPr を FACT で書く(PERMUT の中身)
=FACT(n)/FACT(n-r)
具体例:
=FACT(10)/FACT(10-3) ' 10P3 → 720
組み合わせ nCr を FACT で書く(COMBIN の中身)
=FACT(n)/(FACT(r)*FACT(n-r))
具体例:
=FACT(5)/(FACT(2)*FACT(5-2)) ' 5C2 → 10
例題
問題1
セルに「5 の階乗(5!)」を表示したいとします。
FACT 関数を使った式を書いてください。
=FACT(5)
問題2
A2 に「3」という値が入っています。
この値の階乗を求める式を書いてください。
=FACT(A2)
問題3
10 人を一列に並べるとき、並べ方は何通りあるかを FACT 関数で求める式を書いてください。
=FACT(10)
問題4
「10 人の中から 3 人を選んで順番をつけて並べる」場合の通り数を、
PERMUT を使わずに FACT だけで表現した式を書いてください。
=FACT(10)/FACT(10-3)
問題5
A2 に「全体の個数 n」、B2 に「選ぶ個数 r」が入っています。
「n 個から r 個を順番を区別せずに選ぶ組み合わせの数(nCr)」を、FACT だけを使って求める式を書いてください。
=FACT(A2)/(FACT(B2)*FACT(A2-B2))
