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

スポンサーリンク

「二重階乗って、普通の階乗と何が違うの?」

スプレッドシートで数学的な計算をしていると、こんな疑問にぶつかることがありますよね。

普通の階乗は「5 x 4 x 3 x 2 x 1」とすべて掛けますが、二重階乗は「5 x 3 x 1」のように1つおきに掛けます。

この二重階乗を一発で求めてくれるのがFACTDOUBLE関数です。

この記事では基本の書き方からFACT関数との違い、実践的な活用例まで紹介します。

FACTDOUBLE関数とは?

FACTDOUBLE関数(読み方: ファクトダブル関数)は、指定した数値の二重階乗(n!!)を返す関数です。

名前は「factorial(階乗)」+「double(二重)」からきています。

二重階乗とは、nから2ずつ減らしながら掛け算する計算のことです。

たとえば =FACTDOUBLE(7) と書くと「7 x 5 x 3 x 1 = 105」が返ります。

数学では「7!!」と表記します。「!」が2つ付くのがポイントですね。

FACTDOUBLE関数にできることをまとめると、次のとおりです。

  • 指定した数値の二重階乗を計算する
  • 奇数同士の積(1 x 3 x 5 x …)を求める
  • 偶数同士の積(2 x 4 x 6 x …)を求める
  • 統計・確率の特殊な公式で使う

NOTE

FACTDOUBLE関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全です。

FACTDOUBLE関数の書き方(構文と引数)

基本構文

=FACTDOUBLE(値)

カッコの中に「値(二重階乗を求めたい数値)」を1つだけ入れます。

引数の説明

引数必須/任意説明
必須二重階乗を求めたい数値。0以上の整数を指定する

FACT関数と同じく引数は1つだけです。小数を指定した場合は、小数点以下が切り捨てられます。

FACTDOUBLE関数の基本的な使い方

奇数の二重階乗

奇数を指定すると、奇数だけを掛け合わせた値が返ります。

=FACTDOUBLE(5)

結果は「15」です。5 x 3 x 1 = 15 ですね。

=FACTDOUBLE(7)

結果は「105」です。7 x 5 x 3 x 1 = 105 です。

=FACTDOUBLE(9)

結果は「945」です。9 x 7 x 5 x 3 x 1 = 945 です。

偶数の二重階乗

偶数を指定すると、偶数だけを掛け合わせた値が返ります。

=FACTDOUBLE(6)

結果は「48」です。6 x 4 x 2 = 48 ですね。

=FACTDOUBLE(8)

結果は「384」です。8 x 6 x 4 x 2 = 384 です。

=FACTDOUBLE(10)

結果は「3840」です。10 x 8 x 6 x 4 x 2 = 3840 です。

セル参照を使う

A1に数値「7」が入っているとします。

=FACTDOUBLE(A1)

結果は「105」です。セル参照を使えば、値を変えるだけで結果が自動更新されますよ。

特殊なケース

0と1の二重階乗はどちらも「1」です。

=FACTDOUBLE(0)

結果は「1」です。

=FACTDOUBLE(1)

こちらも結果は「1」です。数学のルールとして0!! = 1、1!! = 1 と定義されています。

FACT関数との違い

FACTDOUBLE関数とFACT関数は、どちらも「掛け算の繰り返し」ですが、掛ける数の飛ばし方が違います。

比較項目FACT関数(通常の階乗)FACTDOUBLE関数(二重階乗)
記号n!n!!
計算方法nから1ずつ減らして掛けるnから2ずつ減らして掛ける
5を指定5 x 4 x 3 x 2 x 1 = 1205 x 3 x 1 = 15
6を指定6 x 5 x 4 x 3 x 2 x 1 = 7206 x 4 x 2 = 48
主な用途組み合わせ・順列・確率計算統計・物理の特殊計算

ポイントは「1つおきに掛けるかどうか」です。

FACT関数はすべての整数を掛けるので値が大きくなりやすいのに対し、FACTDOUBLE関数は半分しか掛けないのでコンパクトな値になります。

2つの関数の関係

実は、通常の階乗は二重階乗2つの積で表せます。

FACT(n) = FACTDOUBLE(n) x FACTDOUBLE(n-1)

たとえば5の階乗で確認してみましょう。

=FACTDOUBLE(5) * FACTDOUBLE(4)

FACTDOUBLE(5) = 15、FACTDOUBLE(4) = 8 なので、15 x 8 = 120 です。

これは =FACT(5) の結果「120」と一致しますね。

通常の階乗は「奇数の積 x 偶数の積」に分解できる、ということです。

FACTDOUBLE関数の実践的な使い方・応用例

偶数の積を求める

1から10までの偶数(2, 4, 6, 8, 10)をすべて掛けた値を求めてみましょう。

=FACTDOUBLE(10)

結果は「3840」です。2 x 4 x 6 x 8 x 10 = 3840 ですね。

手で掛け算を繰り返すよりも、はるかに楽に求められます。

奇数の積を求める

同様に、1から9までの奇数(1, 3, 5, 7, 9)の積も求められます。

=FACTDOUBLE(9)

結果は「945」です。1 x 3 x 5 x 7 x 9 = 945 です。

FACT関数と組み合わせて偶数の積を計算する

偶数の二重階乗は、FACT関数を使って別の方法でも求められます。

n!! = 2^(n/2) x (n/2)! という公式を使います。

たとえば10の二重階乗は次のように計算できます。

=2^(10/2) * FACT(10/2)

2^5 = 32、FACT(5) = 120 なので、32 x 120 = 3840 です。

FACTDOUBLE(10) と同じ結果になりますね。公式の意味を理解したいときに試してみてください。

組み合わせ関数と組み合わせて使う

COMBIN関数COMBINA関数で求めた組み合わせの数と、FACTDOUBLE関数を組み合わせた計算もできます。

たとえば、統計学で使われるウォリスの公式は、円周率(π)を二重階乗で近似する有名な公式です。

=FACTDOUBLE(10)^2 / (FACTDOUBLE(11) * FACTDOUBLE(9)) * 2 * 11

このように、二重階乗は数学的な公式の中で活躍する場面があります。

よくあるエラーと対処法

FACTDOUBLE関数で発生しやすいエラーをまとめました。

エラー原因対処法
#NUM!負の数を指定した(例: FACTDOUBLE(-1))0以上の整数を指定する
#VALUE!引数に文字列が入っているセル参照先が数値かどうか確認する
#ERROR!構文ミス(カッコ忘れ等)数式の入力内容を見直す

負の数を指定したとき

もっとも多いエラーです。二重階乗は0以上の整数でしか定義されていません。

=FACTDOUBLE(-3)

この数式は#NUM!エラーになります。マイナスの値が入っていないか確認してみてください。

引数に小数を指定したとき

小数を指定してもエラーにはなりません。小数点以下が切り捨てられて計算されます。

=FACTDOUBLE(7.9)

この数式は =FACTDOUBLE(7) と同じ結果で「105」を返します。

まとめ

FACTDOUBLE関数は、指定した数値の二重階乗(n!!)を求める関数です。

ポイントを整理します。

  • 構文は =FACTDOUBLE(値) の1引数。nから2ずつ減らしながら掛けた値を返す
  • 奇数を指定すると奇数だけの積、偶数を指定すると偶数だけの積になる
  • 0と1の二重階乗はどちらも1。負の数は#NUM!エラーになる
  • FACT関数はすべて掛ける通常の階乗、FACTDOUBLE関数は1つおきに掛ける二重階乗
  • FACT(n) = FACTDOUBLE(n) x FACTDOUBLE(n-1) の関係が成り立つ
  • 統計・確率の特殊な公式で活躍する場面がある

まずは =FACTDOUBLE(7) で「7 x 5 x 3 x 1 = 105」から試してみてください。

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