「5の階乗って何だっけ?」と聞かれて、パッと答えられますか?
階乗の計算は数が大きくなると手作業では大変ですよね。電卓で1つずつ掛け算するのも面倒ですし、桁が増えると計算ミスも起きやすいです。
ExcelのFACT関数なら、セルに数値を入れるだけで階乗を一発で求められます。この記事では、基本の使い方からエラー対策、COMBIN・PERMUTとの組み合わせまでまとめて解説しますね。
ExcelのFACT関数とは
FACT関数は、指定した数値の階乗(かいじょう)を返す関数です。階乗とは、その数から1まで順に掛け合わせる計算のことです。
たとえば 5 の階乗は「5×4×3×2×1 = 120」です。数式で書くと 5! と表記します。
対応バージョンはExcel 2003以降です。Microsoft 365やExcel 2021でも問題なく使えますよ。
読み方・語源
FACT関数は「ファクト関数」と読みます。英語の “factorial”(階乗)が語源です。
FACT(0)=1になる理由
=FACT(0) の結果は 1 です。「0個の数を掛け合わせて1?」と不思議に思いますよね。
これは数学で「空積(くうせき)」と呼ばれる定義です。0個のものを並べる方法は1通りしかない、と考えるとイメージしやすいですよ。組み合わせの公式でも 0! = 1 でないと計算が成り立たないため、この定義が採用されています。
FACT関数の書き方(構文と引数)
基本構文
=FACT(数値)
引数は1つだけなので、迷うことはありません。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 数値(number) | 必須 | 階乗を求めたい0以上の数値を指定する |
引数のルールを整理しておきましょう。
- 0以上の数値を指定できる
- 小数を指定した場合は小数点以下が切り捨てられる
- 負の数を指定すると
#NUM!エラーになる - 上限は170。171以上は
#NUM!エラーになる
FACT関数の基本的な使い方
整数の階乗を求める
もっとも基本的な使い方です。セルに数値を入力し、FACT関数で階乗を計算します。
=FACT(5)
結果は 120 です。5×4×3×2×1 = 120 ですね。
代表的な値を表にまとめました。
| 数式 | 結果 | 計算内容 |
|---|---|---|
=FACT(0) | 1 | 空積の定義 |
=FACT(1) | 1 | 1 |
=FACT(3) | 6 | 3×2×1 |
=FACT(5) | 120 | 5×4×3×2×1 |
=FACT(10) | 3,628,800 | 10×9×…×1 |
=FACT(170) | 約7.26×10^306 | 上限値 |
FACT(10)で360万を超えます。手計算では確認しづらい数値も一瞬で出せるのがFACT関数の強みです。
小数を指定したときの動作(切り捨て)
FACT関数に小数を渡すと、小数点以下が切り捨てられます。
=FACT(5.9)
結果は 120 です。5.9 → 5 に切り捨てられ、FACT(5) と同じ結果になります。四捨五入ではなく切り捨てなので注意してくださいね。
FACT関数の実践的な使い方
ここからは、FACT関数を使った実務的な活用例を紹介します。
全順列(全員の並べ方)を求める
5人を1列に並べる方法は何通りあるでしょうか。これは5の階乗そのものです。
=FACT(5)
結果は 120 通りです。座席の配置やプレゼンの発表順を決める場面で、全パターン数を把握できますよ。
組み合わせ(COMBIN)をFACTで手動計算
COMBIN関数は組み合わせの数を求める関数です。内部では次の公式で計算しています。
nCr = n! / (r! × (n - r)!)
この公式をFACT関数で再現してみましょう。10人から3人を選ぶ組み合わせを求めます。
=FACT(10) / (FACT(3) * FACT(10-3))
結果は 120 です。=COMBIN(10, 3) と同じ結果になりますね。COMBIN関数の結果を検算したいときに便利です。
順列(PERMUT)をFACTで手動計算
PERMUT関数は順列の数を求める関数です。公式は次のとおりです。
nPr = n! / (n - r)!
10人から3人を選んで並べる順列をFACT関数で求めます。
=FACT(10) / FACT(10-3)
結果は 720 です。=PERMUT(10, 3) と一致します。組み合わせ(120)の6倍になるのは、3人の並び順が 3! = 6 通りあるためです。
FACT関数のエラーと対処法
FACT関数で発生するエラーは主に2種類です。
| エラー | 原因 | 例 |
|---|---|---|
#NUM! | 負の数を指定した | =FACT(-1) |
#NUM! | 171以上を指定した | =FACT(171) |
#VALUE! | 数値以外を指定した | =FACT("abc") |
=FACT(-1) → #NUM!(負の数は指定不可)
=FACT(171) → #NUM!(上限170を超過)
=FACT("abc") → #VALUE!(文字列は指定不可)
#NUM! エラーが出たら、まず引数が0〜170の範囲に収まっているかを確認しましょう。FACT(170)は約7.26×10^306という巨大な数値です。171以上はExcelの数値上限を超えてしまいます。
エラーを表示させず0や空欄を返したいときは、IFERRORと組み合わせてください。
=IFERROR(FACT(A1), "入力値を確認してください")
引数が0〜170の範囲外になったときに、指定したメッセージを表示できます。
エラーの種類や対処方法をもっと知りたい方は、Excelのエラー値まとめも参考にしてみてくださいね。
FACT関数と似た関数との違い・使い分け
FACT vs FACTDOUBLE
FACTDOUBLE関数は二重階乗(にじゅうかいじょう)を返す関数です。1つおきに掛け算する点が通常の階乗と異なります。
| 関数 | 計算内容 | 5を指定した場合 | 結果 |
|---|---|---|---|
| FACT | 5×4×3×2×1 | =FACT(5) | 120 |
| FACTDOUBLE | 5×3×1 | =FACTDOUBLE(5) | 15 |
FACTDOUBLEは奇数なら「奇数だけの積」、偶数なら「偶数だけの積」を返します。通常の階乗計算ならFACT関数を使ってください。
FACT vs GAMMA
GAMMA関数は「階乗を実数に拡張した」ガンマ関数の値を返します。整数 n に対して次の関係が成り立ちます。
GAMMA(n+1) = FACT(n)
たとえば =GAMMA(6) と =FACT(5) はどちらも120です。整数の階乗だけならFACT関数で十分です。小数の階乗を求めたいときにGAMMA関数の出番がやってきます。
FACT・COMBIN・PERMUTの使い分けフロー
どの関数を使うか迷ったら、次のフローで判断できます。
Q1. 全員(全部)を並べる?
- はい → FACT関数(n! を求める)
- いいえ → Q2へ
Q2. 選ぶ順番は結果に影響する?
実務で組み合わせや順列を求めるなら、COMBINやPERMUTを直接使うのが手軽です。FACT関数は公式を手動で組み立てたいときや、検算に活用してみてください。
まとめ
ExcelのFACT関数は、数値の階乗を一発で求められるシンプルな関数です。この記事のポイントをおさらいしましょう。
- 構文:
=FACT(数値)で引数は1つだけ - 小数: 小数点以下は切り捨てて計算される
- FACT(0) = 1: 空積の定義により1が返る
- 上限: FACT(170)が最大。171以上は
#NUM!エラー - 検算: COMBIN関数やPERMUT関数の結果をFACTで手動再現できる
階乗の計算は手作業だとミスが起きやすいので、FACT関数にまかせてしまうのがおすすめです。まずは =FACT(5) を入力して、120が返ってくることを確かめてみてくださいね。
