ExcelのPERMUTATIONA関数の使い方|重複ありの順列を求める方法

スポンサーリンク

「4桁の暗証番号って、何パターンあるんだろう?」「同じ色のビーズを何回でも使える場合の並べ方を計算したい」――こんな場面、ありませんか。同じものを繰り返し選べる順列の計算を手作業でやるのは、けっこう大変ですよね。

ExcelのPERMUTATIONA関数を使えば、重複ありの順列をセルに数式を1つ入れるだけでサッと求められます。この記事では、PERMUTATIONA関数の基本的な使い方からエラー対処法、似た関数との違いまでまとめて解説しますね。

ExcelのPERMUTATIONA関数とは?

PERMUTATIONA関数は、同じものを繰り返し選べる場合の順列(重複順列)の数を求める関数です。読み方は「パーミュテーション エー」で、英語の “permutation”(順列)に “A”(All=すべて使える)を付けたものが語源です。

ここでいう「重複あり」とは、一度選んだものをもう一度選べるということです。たとえば、暗証番号では同じ数字を何度でも使えますよね。「1-1-1-1」も立派な1パターンとして数えます。

PERMUTATIONA関数の計算式は、次のとおりです。

重複順列 = 総数 ^ 抜き取り数(総数の抜き取り数乗)

たとえば、0〜9の10個の数字から4桁を選ぶ重複順列は 10^4 = 10,000 パターンになります。

NOTE

PERMUTATIONA関数は Excel 2013以降 および Microsoft 365 で利用できます。それ以前のバージョンでは使えないので注意してください。

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

基本構文

=PERMUTATIONA(総数, 抜き取り数)

引数の説明

引数必須/省略可説明
総数(number)必須選択肢の全体数を0以上の整数で指定します
抜き取り数(number_chosen)必須選び出す個数を0以上の整数で指定します

引数はどちらも必須で、省略すると数式エラーになります。小数を指定した場合は、小数点以下が切り捨てられて整数として処理されますよ。

たとえば =PERMUTATIONA(3.7, 2.9) は内部で =PERMUTATIONA(3, 2) として計算され、結果は 9 になります。意図しない切り捨てを防ぐために、引数には最初から整数を渡すのがおすすめです。

PERMUTATIONA関数の基本的な使い方

ここでは、具体的な数値を使ってPERMUTATIONA関数の動きを確認してみましょう。

数値を直接指定する方法

セルに次の数式を入力してみてください。

=PERMUTATIONA(3, 2)

結果は 9 になります。3つの選択肢から2つを選ぶ重複順列なので、3^2 = 9 パターンですね。

具体的にイメージすると、A・B・Cの3色のビーズから2個を選んで並べるケースです。同じ色を2回使えるので、AA・AB・AC・BA・BB・BC・CA・CB・CCの9通りになります。

セル参照を使う方法

セルB2に「5」、セルB3に「3」と入力した状態で、次の数式を使います。

=PERMUTATIONA(B2, B3)

結果は 125 です。5つの選択肢から3つを選ぶ重複順列(5^3 = 125)が求まります。セル参照を使えば、値を変えるだけで結果が自動更新されるので便利ですよ。

抜き取り数が0のとき

抜き取り数に0を指定すると、結果は 1 になります。

=PERMUTATIONA(5, 0)  → 1

「何も選ばない」というパターンが1通りある、という考え方です。数学的な定義に沿った挙動なので、覚えておくと混乱しません。

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

実際の業務やシーンで使える例を紹介します。

暗証番号・パスワードのパターン数を求める

4桁の暗証番号(0〜9の数字)のパターン数を求めてみましょう。

=PERMUTATIONA(10, 4)

結果は 10,000 です。0〜9の10個の数字から4桁を選ぶので、10^4 = 10,000 パターンあります。セキュリティの観点から「総当たりで何回試せば破れるか」を見積もるときに使えますね。

ちなみに、英小文字(26種類)と数字(10種類)を合わせた36種類で6桁のパスワードなら次のように求められます。

=PERMUTATIONA(36, 6)

結果は 2,176,782,336(約21億パターン)です。桁数や文字種を変えると、パターン数がどれだけ増えるかが一目でわかりますよ。

サイコロの出目パターンを計算する

サイコロを3回振ったときの出目の組み合わせ数を求めてみましょう。

=PERMUTATIONA(6, 3)

結果は 216 です。各回で1〜6のどれかが出るので、6^3 = 216 パターンになります。確率の計算で「全パターン数」を求める分母として便利ですね。

特定パターンが起きる確率を求める

PERMUTATIONA関数の結果を分母にすれば、「すべて異なる目が出る確率」のような計算もできます。サイコロ3回の例で確認してみましょう。

=PERMUT(6, 3) / PERMUTATIONA(6, 3)

PERMUT関数が「重複なしの順列」(=120)を返すので、それを重複ありの全パターン(=216)で割ると、約 0.556(55.6%) という確率になります。サイコロを3回振って3回とも違う目が出る確率、という具合です。

文字種数と桁数の早見表を作る

文字種数と桁数を行・列に並べて、重複順列パターン数の早見表を作ることもできます。

=PERMUTATIONA($A2, B$1)

A列に文字種数(10、26、36、62 など)、1行目に桁数(4、6、8 など)を並べておけば、$ で固定した複合参照で表全体に数式をコピーできます。パスワード強度の比較資料を作るときに重宝しますよ。

PERMUTATIONA関数のよくあるエラーと対処法

PERMUTATIONA関数で発生しやすいエラーと対処法をまとめました。

エラー主な原因対処法
#VALUE!引数に文字列や空白セルを指定引数が数値か確認。参照先に文字が混ざっていないかチェック
#NUM!引数に負の数を指定引数には0以上の整数を指定
#NAME?関数名のスペルミス数式オートコンプリートを利用して候補から選ぶ

#VALUE!エラー:引数が数値でない

引数にテキストや文字列が入ったセルを指定すると、#VALUE!エラーが発生します。

=PERMUTATIONA("三", 2)  → #VALUE!エラー

対処法: 引数が数値になっているか確認してください。セル参照を使う場合、参照先に文字列が入っていないかチェックしましょう。

#NUM!エラー:引数が負の数

総数または抜き取り数に負の値を指定すると、#NUM!エラーになります。

=PERMUTATIONA(-3, 2)  → #NUM!エラー
=PERMUTATIONA(5, -1)  → #NUM!エラー

対処法: 引数には0以上の整数を指定してください。元データにマイナスの値が混ざる可能性があるなら、IFERROR 関数でガードを入れるのも手です。

=IFERROR(PERMUTATIONA(B2, B3), "値を確認してください")

#NAME?エラー:関数名のスペルミス

「PERMUTATIONA」のスペルを間違えると、#NAME?エラーが出ます。関数名が長いのでタイプミスしやすいですよね。

対処法: 数式オートコンプリート機能を使って、候補から選択するのがおすすめです。「=PERM」と途中まで入力するとPERMUT・PERMUTATIONAの両方が候補に表示されるので、Tabキーで選びましょう。

PERMUTATIONAとPERMUT・COMBIN・COMBINAの違い

PERMUTATIONA関数とよく似た関数の違いを表で整理しました。

関数名計算内容重複順番計算式
PERMUTATIONA重複順列ありありn^r
PERMUT順列なしありn! / (n-r)!
COMBIN組み合わせなしなしn! / (r!(n-r)!)
COMBINA重複組み合わせありなし(n+r-1)! / (r!(n-1)!)

PERMUTとの違い

PERMUT関数は「重複なし」の順列です。一度選んだものは再度選べません。PERMUTATIONAは同じものを何度でも選べる点が異なります。

たとえば、3つから2つ選んで並べる場合を比較してみましょう。

  • =PERMUT(3, 2)6(AB, AC, BA, BC, CA, CB)
  • =PERMUTATIONA(3, 2)9(AA, AB, AC, BA, BB, BC, CA, CB, CC)

「同じものを繰り返し選べるか」がポイントです。暗証番号のように同じ数字を何度でも使えるならPERMUTATIONA、くじ引きのように一度引いたら戻さないならPERMUTを使いましょう。

順列と組み合わせの使い分け

「順番が結果に影響するか」も大事な判断基準です。順番が関係あるなら順列(PERMUT / PERMUTATIONA)、順番が関係ないなら組み合わせ(COMBIN / COMBINA)を使います。

迷ったときは、次の2つの質問で判断できますよ。

  1. 同じものを繰り返し選べる? → はい: 重複あり(PERMUTATIONA / COMBINA)/ いいえ: 重複なし(PERMUT / COMBIN)
  2. 選ぶ順番で結果が変わる? → はい: 順列(PERMUT / PERMUTATIONA)/ いいえ: 組み合わせ(COMBIN / COMBINA)

たとえば「3人から2人選んで委員長と副委員長を決める」なら順番が関係するのでPERMUT、「3人から2人選んでチームを作る」なら順番は関係ないのでCOMBIN、という具合に使い分けます。

まとめ

ExcelのPERMUTATIONA関数は、重複ありの順列を求めるための関数です。ポイントを整理しておきましょう。

  • 構文: =PERMUTATIONA(総数, 抜き取り数) で、結果は 総数 ^ 抜き取り数
  • 用途: 暗証番号のパターン数、サイコロの出目、パスワード強度の見積もりなど
  • PERMUTとの違い: PERMUTは重複なし、PERMUTATIONAは重複あり
  • エラー対策: 引数には0以上の整数を指定する

順列・組み合わせの関数を使い分けたい方は、PERMUT関数の解説COMBIN関数の解説COMBINA関数の解説もあわせて読んでみてくださいね。

また、階乗の計算が必要な場面ではFACT関数が役立ちます。こちらもチェックしておきましょう。

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