ExcelのFACTDOUBLE関数の使い方|二重階乗の計算とFACTとの違い

スポンサーリンク

「二重階乗って、どんな計算をするの?」と疑問に思ったことはありませんか。

Excelで確率・統計の計算をするとき、こんな場面で悩む人が多くいます。「5の二重階乗の求め方がわからない」「FACT関数との違いが整理できない」といった声をよく聞きます。

そんな悩みを解決するのが、FACTDOUBLE関数です。

この記事では基本の書き方からFACT関数との違い、エラー対処法まで紹介します。

ExcelのFACTDOUBLE関数とは

FACTDOUBLE関数(読み方:ファクトダブル関数)は、指定した数値の二重階乗(n!!)を返す関数です。名前は「factorial(階乗)」+「double(二重)」からきています。

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

たとえば =FACTDOUBLE(7) と書くと「7×5×3×1 = 105」が返ります。数学では「7!!」と表記します。「!」が2つ付くのがポイントですね。

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

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

NOTE

FACTDOUBLE関数はExcel 2013以降のすべてのバージョンで使えます。Microsoft 365にも対応しています。

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

基本構文

=FACTDOUBLE(数値)

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

引数の説明

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

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

FACTDOUBLE関数の使い方(実例つき)

奇数の二重階乗

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

=FACTDOUBLE(5)

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

=FACTDOUBLE(7)

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

=FACTDOUBLE(9)

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

偶数の二重階乗

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

=FACTDOUBLE(6)

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

=FACTDOUBLE(8)

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

=FACTDOUBLE(10)

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

偶数の二重階乗と通常階乗の変換公式

偶数の二重階乗には、通常の階乗に変換できる便利な公式があります。

nが偶数のとき、次の式が成り立ちます。

n!! = 2^(n/2) × (n/2)!

たとえば n = 6 の場合を確認してみましょう。

  • 二重階乗: 6!! = 6×4×2 = 48
  • 変換公式: 2^(6/2) × (6/2)! = 2^3 × 3! = 8 × 6 = 48

結果は一致しました。偶数の二重階乗は「2のべき乗 × 通常の階乗」で表せます。FACT関数を使うと、次のように書けます。

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

A1に偶数が入っていれば、=FACTDOUBLE(A1) と同じ結果になりますよ。

セル参照で指定する

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

=FACTDOUBLE(A1)

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

0と1を指定した場合

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

=FACTDOUBLE(0)

結果は「1」です。

=FACTDOUBLE(1)

こちらも「1」です。数学の規則として、0!! = 1、1!! = 1 と定義されています。これは空積(掛ける数が1つもないときの値を1とする規則)によるものです。

FACT関数との違い

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

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

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

FACT関数はすべての整数を掛けます。そのため、値が大きくなりやすい特徴があります。一方、FACTDOUBLE関数は半分しか掛けないので、値がコンパクトになります。

なお、COMBIN関数PERMUT関数は通常の階乗(FACT)を内部で使っています。組み合わせや順列の計算をするときは、これらの関数も参考にしてみてください。

2つの関数の数学的な関係

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

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

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

=FACTDOUBLE(5) * FACTDOUBLE(4)

FACTDOUBLE(5) = 15、FACTDOUBLE(4) = 8 です。15×8 = 120 となります。=FACT(5) の結果「120」と一致しますね。

つまり通常の階乗は「奇数の積 × 偶数の積」に分解できます。これがFACT関数とFACTDOUBLE関数の数学的なつながりです。

よくあるエラーと対処法

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

エラー原因対処法
#NUM!負の数・301以上を指定した0以上300以下の整数を指定する
#VALUE!引数に文字列が入っているセル参照先が数値か確認する

#NUM!エラー

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

=FACTDOUBLE(-3)

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

また、FACTDOUBLE(301)以上を指定した場合も#NUM!エラーが発生します。Excelが扱える数値の上限を超えるためです。

#VALUE!エラー

引数に文字列を指定するとこのエラーが出ます。

=FACTDOUBLE("abc")

セル参照を使っている場合は、参照先に文字列が入っていないか確認してみてください。

小数を指定したとき

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

=FACTDOUBLE(7.9)

=FACTDOUBLE(7) と同じ結果で「105」を返します。意図しない結果を避けるため、整数を指定するのがおすすめです。

まとめ

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

ポイントを整理します。

  • 構文は =FACTDOUBLE(数値) の1引数のみ
  • nから2ずつ減らしながら掛けた値を返す
  • 奇数を指定すると奇数だけの積、偶数を指定すると偶数だけの積になる
  • 偶数の二重階乗は n!! = 2^(n/2) × (n/2)! で通常の階乗に変換できる
  • 0と1の二重階乗はどちらも1(空積の定義)
  • 負の数や301以上は#NUM!エラー、文字列は#VALUE!エラー
  • FACT関数はすべて掛ける通常の階乗、FACTDOUBLE関数は1つおきに掛ける二重階乗
  • FACT(n) = FACTDOUBLE(n) × FACTDOUBLE(n-1) の関係が成り立つ

まずは =FACTDOUBLE(7) で「7×5×3×1 = 105」から試してみてください。二重階乗の動きが直感的につかめますよ。

Googleスプレッドシートで同じ計算をしたい場合は、下記の記事も参考にしてみてください。

スプレッドシートのFACTDOUBLE関数の使い方

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