スプレッドシートのFACT関数の使い方|階乗

スポンサーリンク

「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スプレッドシートで完全に同じ動作です。

項目ExcelGoogleスプレッドシート
構文=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」から試してみてください。

タイトルとURLをコピーしました