スプレッドシートのCOMBINA関数の使い方|重複組み合わせ

スポンサーリンク

「5種類のドリンクから3杯選ぶとき、同じものを何杯でも頼めるなら何通り?」

飲み物の注文やトッピングの選択など、同じものを繰り返し選べる場面は日常でもよくありますよね。

普通の組み合わせ計算では「同じものは1回まで」が前提です。でも実際は、同じものを複数回選ぶケースのほうが多かったりします。

そんなときに使えるのがスプレッドシートのCOMBINA関数です。重複を許した組み合わせの数を、一発で計算してくれます。

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

スプレッドシートのCOMBINA関数とは?

COMBINA関数(読み方: コンビナ関数)は、重複を許してn個の中からr個を選ぶ組み合わせの数を返す関数です。

名前は「combination with repetition(重複組み合わせ)」の略称です。

たとえば =COMBINA(5, 3) と書くと「5種類から3つを選ぶ重複組み合わせ」で「35通り」が返ります。

ここでいう「重複を許す」とは、同じ要素を何度でも選べるということです。

りんご・みかん・ぶどうの3種類から2つ選ぶ場合を考えてみましょう。

  • 重複なしCOMBIN関数): りんご+みかん、りんご+ぶどう、みかん+ぶどうの3通り
  • 重複あり(COMBINA関数): 上の3つに加えて、りんご+りんご、みかん+みかん、ぶどう+ぶどうの合計6通り

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

  • 同じ要素を複数回選べる組み合わせの数を計算する
  • 商品やメニューの「重複あり」選択パターンを調べる
  • サイコロの出目パターンなど確率の計算に使う
  • アンケートの複数回答パターン数を求める

NOTE

COMBINA関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数があり、互換性は完全です。

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

基本構文

=COMBINA(n, r)

カッコの中に「n(種類の数)」と「r(選ぶ個数)」の2つを入れます。

引数の説明

引数必須/任意説明
n必須選択肢の種類の数。0以上の整数を指定する
r必須選ぶ個数。0以上の整数を指定する

COMBIN関数との大きな違いは、rがnより大きくてもエラーにならないことです。重複が許されるため、3種類から5つ選ぶことも可能です。

小数を指定した場合は、小数点以下が切り捨てられます。

COMBINA関数の計算式

数学的には「重複組み合わせ」と呼ばれる計算をしています。公式は次のとおりです。

nHr = (n + r - 1)! / (r! × (n - 1)!)

これをFACT関数で書くと次のようになります。

=FACT(n + r - 1) / (FACT(r) * FACT(n - 1))

COMBINA関数はこの面倒な計算を1つでやってくれるわけですね。

COMBINA関数の使い方と活用例

もっともシンプルな使い方

数値を直接指定するパターンです。

=COMBINA(5, 2)

結果は「15」です。5種類から2つを重複ありで選ぶ組み合わせは15通りあります。

=COMBINA(3, 3)

結果は「10」です。3種類から3つを重複ありで選ぶ組み合わせですね。

=COMBINA(4, 1)

結果は「4」です。1つだけ選ぶなら、重複ありでも種類の数と同じになります。

セル参照を使う

A1に種類の数「6」、B1に選ぶ個数「2」が入っているとします。

=COMBINA(A1, B1)

結果は「21」です。6種類から2つを重複ありで選ぶ組み合わせは21通りあります。

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

特殊なケース

選ぶ個数が0のとき、結果は「1」です。

=COMBINA(10, 0)

何も選ばないパターンは1通りしかないという意味です。

種類の数が1のとき、結果も「1」です。

=COMBINA(1, 5)

1種類しかなければ、何個選んでも組み合わせは1通りですね。

rがnより大きい場合でも正常に計算できます。

=COMBINA(3, 5)

結果は「21」です。3種類から重複ありで5つ選ぶ組み合わせは21通りあります。COMBIN関数なら =COMBIN(3, 5) は #NUM! エラーになりますが、COMBINA関数ではエラーになりません。

サイコロの出目パターンを数える

サイコロを2個振ったとき、出目の組み合わせが何通りあるか調べてみましょう。「1と3」と「3と1」を同じ組み合わせとして数えます。

=COMBINA(6, 2)

結果は「21」です。サイコロ2個の出目の組み合わせは21通りあります。

サイコロ3個なら次のように計算できます。

=COMBINA(6, 3)

結果は「56」です。3個になると一気に増えますね。

TIP

「1と3」と「3と1」を別の出目として数えたい場合は、順列を考える必要があります。その場合は6^2 = 36通りです。

商品のセット選択パターンを数える

お弁当屋さんで10種類のおかずから3品選べるとします。同じおかずを複数選んでもOKのルールです。

=COMBINA(10, 3)

結果は「220」です。220パターンの組み合わせがあります。

重複を許さない場合と比べてみましょう。

=COMBIN(10, 3)

こちらは「120」です。重複ありのほうが約1.8倍多くなりますね。

アンケートの回答パターンを数える

5段階評価のアンケートで、3つの質問に回答するパターン数を求めます。各質問で1〜5の同じ評価を選べるので、重複組み合わせです。

=COMBINA(5, 3)

結果は「35」です。回答パターンの分析に使えます。

ドリンクの注文パターンを数える

カフェで8種類のドリンクメニューから2杯注文する場合です。同じドリンクを2杯頼んでもOKとします。

=COMBINA(8, 2)

結果は「36」です。36通りの注文パターンがありますよ。

よくあるエラーと対処法

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

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

COMBIN関数との重要な違い

COMBIN関数では r > n のときに #NUM! エラーが出ます。しかしCOMBINA関数では、rがnより大きくてもエラーになりません。

=COMBINA(3, 5)

この数式は正常に「21」を返します。重複を許すので、3種類から5つ選ぶことは可能ですよね。

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

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

=COMBINA(5.8, 2.3)

この数式は =COMBINA(5, 2) と同じ結果で「15」を返します。

COMBIN関数とCOMBINA関数の違い・使い分け

もっとも混同しやすい2つの関数を比較表で整理します。

比較項目COMBIN関数COMBINA関数
正式名称組み合わせ重複組み合わせ
重複許さない許す
r > n の場合#NUM! エラー正常に計算される
計算式n! / (r! × (n-r)!)(n+r-1)! / (r! × (n-1)!)
5種類から3つ選ぶ10通り35通り

使い分けのポイント

判断基準はシンプルです。同じものを複数回選べるかどうかで決まります。

  • COMBIN関数を使う場面: チーム分け(同じ人は2回選べない)、くじ引き(引いた番号は戻さない)
  • COMBINA関数を使う場面: ドリンク注文(同じメニューを何杯でもOK)、サイコロ(同じ目が出る)

迷ったときは「一度選んだものをもう一度選べるか?」と考えてみてください。選べるならCOMBINA関数、選べないならCOMBIN関数です。

FACT関数との関係

FACT関数は階乗(n!)を返す関数です。COMBINA関数の計算結果もFACT関数で再現できます。

重複組み合わせの公式は「(n+r-1)! / (r! x (n-1)!)」です。

=FACT(5+3-1) / (FACT(3) * FACT(5-1))

結果は「35」です。これは =COMBINA(5, 3) と同じ結果ですね。

COMBINA関数を使えばこの面倒な計算が1つの関数で済みます。

Excelとの互換性

COMBINA関数はExcelでも同じ構文・同じ動作で使えます。Excel 2013以降に対応しているので、ファイルのやり取りでも安心ですよ。

まとめ

COMBINA関数は、重複を許してn個の中からr個を選ぶ組み合わせの数を求める関数です。

ポイントを整理します。

  • 構文は =COMBINA(n, r) の2引数。重複組み合わせの数を返す
  • COMBIN関数との違いは、同じ要素を複数回選べるかどうか
  • r > n でもエラーにならないのが特徴(COMBIN関数は #NUM! エラー)
  • サイコロの出目やドリンク注文など、「同じものを選べる」場面で活躍する
  • 計算式は (n+r-1)! / (r! x (n-1)!) だが、COMBINA関数なら一発で計算できる
  • FACT関数の階乗で同じ計算が可能。ただしCOMBINA関数のほうがシンプル

まずは =COMBINA(6, 2) で「サイコロ2個の出目の組み合わせ = 21通り」から試してみてください。

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