「5種類のトッピングから3つ選べるけど、同じものを何回選んでもOK。全部で何通り?」
こういう計算を手作業でやろうとすると、けっこう面倒ですよね。普通の組み合わせ計算では同じものを繰り返し選べないので、公式が違ってきます。
ExcelのCOMBINA関数なら、重複を許した組み合わせの数を一発で計算できます。この記事では、基本の書き方から実務での活用例、COMBIN関数との違い、エラー対処法までまとめて解説しますね。
ExcelのCOMBINA関数とは
COMBINA関数(読み方: コンビナ)は、重複を許してn個の中からr個を選ぶ組み合わせの数を返す関数です。名前は英語の “combination with repetition”(重複組み合わせ)に由来します。
たとえば =COMBINA(5, 3) と書くと、5種類から3つを重複ありで選ぶ組み合わせ数「35」が返ります。
ここでいう「重複を許す」とは、同じ要素を何度でも選べるということです。りんご・みかん・ぶどうの3種類から2つ選ぶ場合で比べてみましょう。
- 重複なし(COMBIN関数): りんご+みかん、りんご+ぶどう、みかん+ぶどうの3通り
- 重複あり(COMBINA関数): 上の3つに加えて、りんご+りんご、みかん+みかん、ぶどう+ぶどうの6通り
COMBINA関数は、同じ商品を複数選べるセット企画や、サイコロの出目パターンなど「繰り返し選択OK」の場面で活躍します。対応バージョンはExcel 2013以降です。Microsoft 365やExcel 2021でも問題なく使えますよ。
COMBINA関数の書き方(構文と引数)
基本構文
=COMBINA(総数, 抜き取り数)
カッコの中に「総数(種類の数)」と「抜き取り数(選ぶ個数)」の2つを入れます。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 総数 | 必須 | 選択肢の種類の数。0以上の整数を指定する |
| 抜き取り数 | 必須 | 選ぶ個数。0以上の整数を指定する |
小数を指定した場合は、小数点以下が切り捨てられます。たとえば =COMBINA(5.8, 2.3) は =COMBINA(5, 2) と同じ結果になりますよ。
COMBIN関数との大きな違いは、抜き取り数が総数より大きくてもエラーにならないことです。重複が許されるので、3種類から5つ選ぶこともできます。
COMBINA関数の計算式
数学的には「重複組み合わせ(nHr)」と呼ばれる計算をしています。公式は次のとおりです。
nHr = (n + r - 1)! / (r! × (n - 1)!)
「!」は階乗(かいじょう)で、その数から1まで順に掛け合わせる計算です。FACT関数で書くと次のようになります。
=FACT(n + r - 1) / (FACT(r) * FACT(n - 1))
COMBINA関数を使えば、この面倒な計算が1つの数式で済みますね。
COMBINA関数の基本的な使い方
数値を直接指定する
結果を表示したいセルを選択して、数式を入力します。
=COMBINA(5, 3)
結果は 35 です。5種類から3つを重複ありで選ぶ組み合わせは35通りあります。
もう1つ試してみましょう。
=COMBINA(6, 2)
結果は 21 です。サイコロ2個の出目の組み合わせ数と同じですね。
セル参照を使う
セルA1に総数「10」、B1に抜き取り数「3」が入っている場合は、次のように書きます。
=COMBINA(A1, B1)
結果は 220 です。セル参照なら値を変えるだけで結果が自動更新されるので便利ですよ。
特殊なケース
覚えておくと便利な特殊ケースを紹介します。
=COMBINA(10, 0)→ 1(何も選ばないパターンは1通り)=COMBINA(1, 5)→ 1(1種類しかなければ何個選んでも1通り)=COMBINA(0, 0)→ 1(数学の定義どおり)=COMBINA(3, 5)→ 21(抜き取り数 > 総数でもエラーにならない)
4つ目のケースはCOMBIN関数なら #NUM! エラーになります。COMBINA関数では重複を許すため、種類より多く選ぶことが可能です。
COMBINA関数の実務活用例
ここからは仕事で使える場面を紹介します。
商品セットの組み合わせ数を調べる
ECサイトで「8種類のトッピングから3つ選べるセット」を企画する場面を考えます。同じトッピングを複数回選んでもOKのルールです。
=COMBINA(8, 3)
結果は 120 です。商品数を変えた場合の組み合わせ数を一覧にしてみましょう。
| 商品数 | 選ぶ個数 | 数式 | 組み合わせ数 |
|---|---|---|---|
| 5 | 2 | =COMBINA(5, 2) | 15 |
| 5 | 3 | =COMBINA(5, 3) | 35 |
| 8 | 3 | =COMBINA(8, 3) | 120 |
| 10 | 3 | =COMBINA(10, 3) | 220 |
| 10 | 5 | =COMBINA(10, 5) | 2,002 |
商品数が増えると組み合わせ数は一気に膨らみます。セット商品のバリエーション把握に活用してみてください。
サイコロの出目パターンを数える
サイコロを2個振ったときの出目の組み合わせを調べます。「1と3」と「3と1」は同じ組み合わせとして数えます。
=COMBINA(6, 2)
結果は 21 です。サイコロの個数を増やすとどうなるか見てみましょう。
| サイコロの個数 | 数式 | 組み合わせ数 |
|---|---|---|
| 2個 | =COMBINA(6, 2) | 21 |
| 3個 | =COMBINA(6, 3) | 56 |
| 4個 | =COMBINA(6, 4) | 126 |
3個で56通り、4個で126通りと急速に増えますね。確率の計算やシミュレーションに役立ちますよ。
FACT関数で計算結果を検算する
COMBINA関数の結果が正しいか確認したいときは、FACT関数(階乗を求める関数)で検算できます。
5種類から3つを重複ありで選ぶ場合で試してみましょう。
=FACT(5 + 3 - 1) / (FACT(3) * FACT(5 - 1))
結果は 35 です。=COMBINA(5, 3) と一致しますね。
| 計算方法 | 数式 | 結果 |
|---|---|---|
| COMBINA関数 | =COMBINA(5, 3) | 35 |
| FACT関数で検算 | =FACT(7)/(FACT(3)*FACT(4)) | 35 |
重要な資料に載せるときは、この方法で確認してみてください。
よくあるエラーと対処法
COMBINA関数で発生するエラーは主に2種類です。
#NUM! エラー
総数または抜き取り数に負の数を指定した場合に発生します。
=COMBINA(-5, 3) → #NUM! エラー
=COMBINA(5, -1) → #NUM! エラー
どちらの引数も0以上の整数で指定してください。なお、COMBINA関数では抜き取り数が総数より大きくても #NUM! にはなりません。これはCOMBIN関数との違いなので覚えておきましょう。
#VALUE! エラー
引数に文字列や空白セルなど、数値以外を指定した場合に発生します。
=COMBINA("五", 3) → #VALUE! エラー
=COMBINA(A1, B1) → A1やB1が空白だとエラー
セル参照を使っている場合は、参照先に数値が入っているか確認しましょう。全角数字も文字列扱いになるので注意が必要です。
エラーの種類や対処方法をもっと詳しく知りたい方は、Excelのエラー値まとめも参考にしてみてくださいね。
COMBIN関数との違い・使い分け
もっとも混同しやすいCOMBIN関数との違いを整理します。
比較表
| 比較項目 | COMBIN関数 | COMBINA関数 |
|---|---|---|
| 正式名称 | 組み合わせ | 重複組み合わせ |
| 重複 | 許さない | 許す |
| 抜き取り数 > 総数 | #NUM! エラー | 正常に計算される |
| 計算式 | n!/(r!(n-r)!) | (n+r-1)!/(r!(n-1)!) |
| 5種類から3つ | 10通り | 35通り |
使い分けのポイント
判断基準はシンプルです。同じものを複数回選べるかどうかで決まります。
- COMBIN関数: チーム分け(同じ人は2回選べない)、くじ引き(引いた番号は戻さない)
- COMBINA関数: ドリンク注文(同じメニューを何杯でもOK)、サイコロ(同じ目が出る)
迷ったときは「一度選んだものをもう一度選べるか?」と考えてみてください。選べるならCOMBINA関数、選べないならCOMBIN関数です。
4関数の使い分け(PERMUT・PERMUTATIONAも含む)
Excelには組み合わせ・順列に関する関数が4つあります。「順序を考えるか」「重複を許すか」の2軸で整理できます。
| 順序なし(組み合わせ) | 順序あり(順列) | |
|---|---|---|
| 重複なし | COMBIN | PERMUT |
| 重複あり | COMBINA | PERMUTATIONA |
5つから3つ選ぶ場合の結果を比べると、違いがよくわかります。
| 関数 | 数式 | 結果 |
|---|---|---|
| COMBIN | =COMBIN(5, 3) | 10 |
| COMBINA | =COMBINA(5, 3) | 35 |
| PERMUT | =PERMUT(5, 3) | 60 |
| PERMUTATIONA | =PERMUTATIONA(5, 3) | 125 |
重複や順序を考慮するほど、パターン数が増えていきますね。
まとめ
ExcelのCOMBINA関数は、重複を許した組み合わせの数を一発で計算できる関数です。この記事のポイントをおさらいしましょう。
- 構文:
=COMBINA(総数, 抜き取り数)の2つの引数で計算できる - 計算式: (n+r-1)! / (r! × (n-1)!) の重複組み合わせ公式と同じ結果が返る
- 独自の特徴: 抜き取り数が総数より大きくてもエラーにならない
- 検算: FACT関数で結果を確認できる
- 使い分け: 重複ありならCOMBINA、重複なしならCOMBIN、順序ありならPERMUT
- エラー対策: 引数は0以上の整数で指定する
商品セットのバリエーション把握やサイコロの確率計算など、「同じものを繰り返し選べる」場面で活用してみてくださいね。
