「5人の並べ方って何通りあるんだろう?」
確率や場合の数の計算で、階乗(かいじょう)が必要になることがありますよね。
手計算だと「5 x 4 x 3 x 2 x 1」のように掛け算を繰り返すので面倒です。
そんなときに使えるのがFACT関数です。数値を1つ指定するだけで、階乗を一発で計算してくれます。
この記事では基本の書き方から実務での活用例、COMBIN関数やPERMUT関数との関係まで紹介します。
FACT関数とは?
FACT関数(読み方: ファクトリアル関数)は、指定した数値の階乗(n!)を返す関数です。
名前は英語の「factorial(階乗)」からきています。
階乗とは、1からnまでの整数をすべて掛け合わせた値のことです。
たとえば =FACT(5) と書くと「5 x 4 x 3 x 2 x 1 = 120」が返ります。
数学では「5!」と表記しますね。
FACT関数にできることをまとめると、次のとおりです。
- 指定した数値の階乗を計算する
- 並べ方(順列)の総数を求める
- 組み合わせの数を手動で計算する際の材料にする
- 確率の分母や分子として使う
NOTE
FACT関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。
FACT関数の書き方(構文と引数)
基本構文
=FACT(値)
カッコの中に「値(階乗を求めたい数値)」を1つだけ入れます。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 値 | 必須 | 階乗を求めたい数値。0以上の整数を指定する |
引数は1つだけなので、とてもシンプルです。小数を指定した場合は、小数点以下が切り捨てられます。
FACT関数の基本的な使い方
もっともシンプルな使い方
数値を直接指定するパターンです。
=FACT(3)
結果は「6」です。3 x 2 x 1 = 6 ですね。
=FACT(5)
結果は「120」です。5 x 4 x 3 x 2 x 1 = 120 です。
=FACT(10)
結果は「3628800」です。10の階乗はかなり大きな数になります。
セル参照を使う
A1に数値「7」が入っているとします。
=FACT(A1)
結果は「5040」です。セル参照を使えば、値を変えるだけで結果が自動更新されます。
特殊なケース
0の階乗は「1」と定義されています。
=FACT(0)
結果は「1」です。数学のルールとして0! = 1です。
1の階乗はそのまま「1」です。
=FACT(1)
結果は「1」です。
FACT関数の実践的な使い方・応用例
並べ方の総数を求める
5人を1列に並べるとき、何通りの並べ方があるかを求められます。
=FACT(5)
結果は「120」です。5人の並べ方は120通りあります。
TIP
n人をn人とも並べる「全順列」はFACT関数だけで求められます。n人からr人を選んで並べる「順列」を求めたいときは、PERMUT関数を使うのが簡単です。
FACT関数で組み合わせを計算する
COMBIN関数を使えば一発ですが、階乗の公式で自分で計算することもできます。
組み合わせの公式は「nCr = n! / (r! x (n-r)!)」です。
10人から3人を選ぶ組み合わせをFACT関数で計算してみましょう。
=FACT(10) / (FACT(3) * FACT(10-3))
結果は「120」です。これは =COMBIN(10, 3) と同じ結果ですね。
通常はCOMBIN関数を使えば十分ですが、公式の仕組みを理解するのに役立ちます。
FACT関数で順列を計算する
順列の公式は「nPr = n! / (n-r)!」です。
10人から3人を選んで並べる順列をFACT関数で計算してみましょう。
=FACT(10) / FACT(10-3)
結果は「720」です。これは =PERMUT(10, 3) と同じ結果です。
こちらも通常はPERMUT関数を使うのが簡単です。
確率の計算に使う
サイコロを3回振って、すべて違う目が出る確率を求めてみましょう。
全パターンは6の3乗(216通り)です。すべて違う目の並べ方は「6 x 5 x 4 = 120通り」です。
これはFACT関数で次のように計算できます。
=FACT(6) / FACT(6-3)
結果は「120」です。確率は 120 / 216 ≒ 0.556 なので、約55.6%ですね。
よくあるエラーと対処法
FACT関数で発生しやすいエラーをまとめました。
| エラー | 原因 | 対処法 |
|---|---|---|
| #NUM! | 負の数を指定した(例: FACT(-1)) | 0以上の整数を指定する |
| #VALUE! | 引数に文字列が入っている | セル参照先が数値かどうか確認する |
| #ERROR! | 構文ミス(カッコ忘れ等) | 数式の入力内容を見直す |
負の数を指定したとき
もっとも多いエラーです。階乗は0以上の整数でしか定義されていません。
=FACT(-3)
この数式は#NUM!エラーになります。マイナスの値が入っていないか確認してみてください。
引数に小数を指定したとき
小数を指定してもエラーにはなりません。小数点以下が切り捨てられて計算されます。
=FACT(5.8)
この数式は =FACT(5) と同じ結果で「120」を返します。
FACT関数と似た関数との違い・使い分け
| 関数 | 動作 | 用途 |
|---|---|---|
| FACT | 階乗(n!)を返す | 並べ方の総数・確率計算 |
| FACTDOUBLE | 二重階乗(n!!)を返す | 統計・物理の特殊計算 |
| COMBIN | 組み合わせの数(nCr)を返す | チーム分け・抽選の場合の数 |
| PERMUT | 順列の数(nPr)を返す | 並び順を考慮した場合の数 |
FACT関数とFACTDOUBLE関数の違い
FACTDOUBLE関数は二重階乗(n!!)を返します。1つおきに掛け算する点が違います。
- FACT(5): 5 x 4 x 3 x 2 x 1 = 120(すべて掛ける)
- FACTDOUBLE(5): 5 x 3 x 1 = 15(1つおきに掛ける)
二重階乗は統計や物理の計算で使われることがありますが、一般的な事務作業ではほとんど使いません。
FACT関数とCOMBIN関数の関係
COMBIN関数は組み合わせの数を返す関数です。内部的にはFACT関数と同じ階乗の計算をしています。
=COMBIN(10, 3)
この結果は「120」です。同じ計算をFACT関数で書くと次のようになります。
=FACT(10) / (FACT(3) * FACT(10-3))
こちらも結果は「120」です。COMBIN関数のほうがシンプルですね。
組み合わせや順列を求めるだけなら、COMBIN関数やPERMUT関数を使うのがおすすめです。FACT関数は、公式をカスタマイズしたい場面や、階乗そのものが必要な計算に向いています。
Excelとの違い
FACT関数はExcelとGoogleスプレッドシートで完全に同じ動作です。
| 項目 | Excel | Googleスプレッドシート |
|---|---|---|
| 構文 | =FACT(数値) | =FACT(値) |
| 動作 | 階乗(n!)を返す | 階乗(n!)を返す |
| 小数の扱い | 小数点以下を切り捨て | 小数点以下を切り捨て |
| エラー時 | #NUM! / #VALUE! | #NUM! / #VALUE! |
引数名の表記が若干異なるだけで、機能は完全に同じです。Excelでの使い方はExcelのFACT関数の記事で詳しく解説しています。
まとめ
FACT関数は、指定した数値の階乗(n!)を求める関数です。
ポイントを整理します。
- 構文は
=FACT(値)の1引数。n! = n x (n-1) x … x 1 を返す - 0の階乗は1と定義されている。負の数は#NUM!エラーになる
- 並べ方の総数や確率の計算に使える
- COMBIN関数の組み合わせ公式やPERMUT関数の順列公式を、FACT関数で再現できる
- FACTDOUBLE関数は1つおきに掛ける二重階乗で、用途が異なる
- ExcelのFACT関数と完全に同じ動作で、互換性も安心
まずは =FACT(5) で「5の階乗 = 120」から試してみてください。
