Excel関数 逆引き集 | 順列 → PERMUT

Excel
スポンサーリンク

概要

PERMUT 関数は、「n 個の中から r 個を選んで“順番をつけて並べる”とき、何通りの並べ方があるか」を求める関数です。
数学でいうところの「順列」(nP r) をそのまま Excel で計算してくれるイメージです。

「10人の中から3人を選んで、1位・2位・3位の順番を決める」
「8人の中から2人を選んで、発表順を決める」
こういう“順番が意味を持つ並べ方”の通り数を一発で出してくれます。


PERMUT 関数の基本

書式と意味

=PERMUT(標本数, 抜き取り数)

標本数:全体の個数(n、標本の総数)
抜き取り数:その中から「順番をつけて並べる」個数(r)

PERMUT は、「標本数 n 個の中から、抜き取り数 r 個を選んで並べる順列の数」を返します
数学的には次の式で表されます。

nPr=n!(nr)!

Excel では、この計算を自動でやってくれます。

例:

=PERMUT(3,2)   ' 3人から2人を選んで並べる → 6通り
=PERMUT(10,3)  ' 10人から3人を選んで並べる → 720通り
=PERMUT(A2,B2) ' A2 個から B2 個を選んで並べる順列の数

3人から2人を選ぶ場合、
「AB, BA, AC, CA, BC, CB」の 6 通りがあるので、PERMUT(3,2) の結果は 6 になります。


組み合わせ COMBIN との違い

COMBIN は「順番を区別しない“選び方”の数」、
PERMUT は「順番を区別する“並べ方”の数」です。

同じ「3人から2人」の例で比べてみます。

  • 組み合わせ(順番なし):AB, AC, BC → 3通り(COMBIN(3,2)=3)
  • 順列(順番あり):AB, BA, AC, CA, BC, CB → 6通り(PERMUT(3,2)=6)

Excel では、こう書き分けます。

=COMBIN(3,2)   ' 順番なし → 3
=PERMUT(3,2)   ' 順番あり → 6

「順番が意味を持つかどうか」で、COMBIN と PERMUT を使い分けるのがポイントです。


実務でのイメージと使いどころ

席順・発表順・役職決め

例えば、「10人の中から3人を選んで、会長・副会長・書記を決める」とします。
誰がどの役職になるかで意味が変わるので、これは“順列”です。

=PERMUT(10,3)

これで、「役職の割り当て方が何通りあるか」が一瞬で分かります。

同じように、
「8人の中から2人を選んで、発表順を決める」場合も順列です。

=PERMUT(8,2)

抽選・並び順のパターン数

「10人の中から3人を選んで、1位・2位・3位を決める抽選」
「商品を並べる順番のバリエーション」
こういった“並び順のパターン数”を知りたいときにも PERMUT が使えます。

=PERMUT(10,3)   ' 10人から3人を選んで順位をつける
=PERMUT(5,5)    ' 5個を全部並べる → 5! 通り

PERMUT(5,5) は「5個を全部並べる順列」、つまり 5!(120通り)になります。


PERMUT のルールとエラー

引数は整数として扱われる

標本数・抜き取り数は「0以上の整数」として扱われます。
小数を渡した場合は、小数点以下が切り捨てられます。

=PERMUT(5.9,2.3)   ' → PERMUT(5,2) として扱われる

数値以外(文字列など)を渡すと #VALUE! エラーになります。

不正な値のときのエラー

次のような場合は #NUM! エラーになります。

  • 標本数 <= 0
  • 抜き取り数 < 0
  • 標本数 < 抜き取り数

例えば:

=PERMUT(5,6)   ' 5個から6個は選べない → #NUM!
=PERMUT(0,3)   ' 標本数が 0 → #NUM!
=PERMUT(5,-1)  ' 抜き取り数が負 → #NUM!

コード例・テンプレート

基本形:n 個から r 個を選んで並べる順列の数

=PERMUT(n, r)

具体例:

=PERMUT(3,2)    ' 3人から2人 → 6通り
=PERMUT(10,3)   ' 10人から3人 → 720通り

セル参照で汎用的に書く

=PERMUT(A2,B2)

A2 に「全体の個数」、B2 に「並べる個数」を入れておけば、
いろいろなパターンを試しながら順列の数を確認できます。

「全部並べる」場合(nP n)

=PERMUT(A2,A2)

A2 個をすべて並べる場合の順列数、つまり A2!(階乗)になります。


例題

問題1

5人の中から 2人を選んで、1位・2位の順番を決めます。
このときの並べ方の通り数を PERMUT 関数で求める式を書いてください。

=PERMUT(5,2)

問題2

10人の中から 3人を選んで、1位・2位・3位の順位を決めます。
このときの順列の数を PERMUT 関数で求める式を書いてください。

=PERMUT(10,3)

問題3

A2 に「全体の人数」、B2 に「並べる人数」が入っています。
「A2 人の中から B2 人を選んで順番をつけて並べるときの通り数」を求める汎用的な式を書いてください。

=PERMUT(A2,B2)

問題4

3人(A,B,C)の中から 2人を選ぶとき、
「順番を区別する並べ方の数」を PERMUT で求める式を書いてください。
また、その結果が 6 になる理由を簡単に説明してみてください。

=PERMUT(3,2)

結果が 6 になるのは、AB, BA, AC, CA, BC, CB の 6 通りの並べ方があるからです。


問題5

=PERMUT(5,6) を計算するとどうなるか、エラーの種類と理由を答えてください。

5 個から 6 個を選んで並べることはできないため、=PERMUT(5,6)#NUM! エラーになります。

Excel
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました