「5人からリレーの走順を3人分決めたい。何通りあるんだろう?」
チーム内の発表順や座席の並び替えなど、順番を考えて何通りあるか調べたい場面って意外とありますよね。手で数えていると抜け漏れが出そうで不安です。
スプレッドシートのPERMUT関数を使えば、2つの数を入れるだけで順列の数がパッと出ます。
この記事では基本の書き方から実務で使える活用例まで紹介します。COMBIN関数やFACT関数との関係もあわせて解説しますね。
スプレッドシートのPERMUT関数とは?
PERMUT関数(読み方: パーミュテーション関数)は、n個の中からr個を選んで並べる順列の数を返す関数です。
名前は英語の「permutation(順列)」からきています。
数学の授業で習った「nPr」の計算をしてくれる関数ですね。
たとえば =PERMUT(5, 3) と書くと「5人から3人を選んで並べる順列」を計算します。結果は「60通り」です。
ここで大事なのが、順列とは選ぶ順番を区別する数え方だということです。
「AさんBさんCさん」と「CさんBさんAさん」は別の1通りとして数えます。
PERMUT関数にできることをまとめると、次のとおりです。
- 指定した総数から指定した個数を選んで並べる順列の数を計算する
- リレーの走順やプレゼンの発表順が何パターンあるか調べる
- 座席配置や並び替えのパターン数を求める
- パスワードの組み合わせ(桁の並び順)を数える
NOTE
PERMUT関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心ですよ。
PERMUT関数の書き方(構文と引数)
基本構文
=PERMUT(n, r)
カッコの中に「n(総数)」と「r(選ぶ個数)」の2つを入れます。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| n | 必須 | 全体の総数。0以上の整数を指定する |
| r | 必須 | 選択する個数。0以上かつn以下の整数を指定する |
5人から3人を選んで並べるなら、nが5、rが3です。
小数を指定した場合は小数点以下が切り捨てられます。
PERMUT関数の基本的な使い方
もっともシンプルな使い方
数値を直接指定するパターンです。
=PERMUT(5, 3)
結果は「60」です。5人から3人を選んで並べる順列は60通りですね。
=PERMUT(10, 2)
結果は「90」です。10個から2個を選んで並べる場合になります。
=PERMUT(4, 4)
結果は「24」です。4個すべてを並べ替える場合は4! = 24通りですね。
セル参照を使う
A1に総数「8」、B1に選ぶ個数「3」が入っているとします。
=PERMUT(A1, B1)
結果は「336」です。8人から3人を選んで順番に並べると336通りあります。
セル参照を使えば値を変えるだけで結果が自動更新されますよ。シミュレーションにも便利です。
特殊なケース
選ぶ個数が0のとき、結果は「1」です。何も選ばないパターンは1通りという意味ですね。
=PERMUT(10, 0)
選ぶ個数が1のとき、結果は総数と同じになります。
=PERMUT(10, 1)
結果は「10」です。10個から1個を選ぶ方法は10通りですね。
選ぶ個数が総数と同じとき、結果は階乗(n!)と同じです。
=PERMUT(5, 5)
結果は「120」です。これはFACT関数で =FACT(5) と書いた場合と同じ結果ですよ。
PERMUT関数の実践的な使い方・応用例
リレーの走順パターンを調べる
8人のチームから4人を選んでリレーを走る場面を考えてみましょう。
=PERMUT(8, 4)
結果は「1680」です。1,680通りもの走順パターンがあります。
「誰が走るか」だけでなく「誰が何走目か」も区別するので、順列で計算する必要がありますね。
TIP
「8人から4人を選ぶ組み合わせ」だけを知りたいなら、COMBIN関数を使います。
=COMBIN(8, 4)の結果は70通りです。走順の区別がなくなる分、数がぐっと減りますよ。
プレゼンの発表順を決める
6人がそれぞれ発表する順番は何通りあるか調べてみましょう。
=PERMUT(6, 6)
結果は「720」です。6人全員を並べ替えるパターンは720通りですね。
くじ引きで順番を決めるとき、「自分が1番目になる確率はどのくらいだろう?」と気になるかもしれません。次のように計算できます。
=1/PERMUT(6, 1)
結果は「0.1666…」、つまり約16.7%です。6人のうち1人が1番目を引く確率なので、1/6ですね。
暗証番号のパターン数を調べる
0〜9の10個の数字から4桁を選ぶ場合を考えます。ただし同じ数字は使えないとしましょう。
=PERMUT(10, 4)
結果は「5040」です。4桁の暗証番号は5,040通りのパターンがあります。
同じ数字を繰り返し使える場合は、PERMUT関数ではなくべき乗で計算します。
=10^4
結果は「10000」です。重複を許すと10,000通りに増えますね。
表彰の順位パターンを計算する
20人の中から1位・2位・3位を決める場合です。
=PERMUT(20, 3)
結果は「6840」です。1位・2位・3位の決まり方は6,840通りあります。
順位は並び順そのものなので、順列の計算がぴったりですね。
座席配置のパターンを比較する
会議室に10席あり、7人が座る場合を計算してみましょう。
=PERMUT(10, 7)
結果は「604800」です。座る席の組み合わせと座り順で約60万通りになります。
人数を変えてシミュレーションしてみると、パターン数の変化が分かりやすいですよ。
| 座席数 | 人数 | 数式 | パターン数 |
|---|---|---|---|
| 10 | 3 | =PERMUT(10, 3) | 720 |
| 10 | 5 | =PERMUT(10, 5) | 30,240 |
| 10 | 7 | =PERMUT(10, 7) | 604,800 |
人数が増えるほどパターン数が急激に増えますね。
よくあるエラーと対処法
PERMUT関数で発生しやすいエラーをまとめました。
| エラー | 原因 | 対処法 |
|---|---|---|
| #NUM! | rがnより大きい(例: PERMUT(3, 5)) | 選ぶ個数が総数以下か確認する |
| #NUM! | n または r に負の数を指定した | 0以上の整数を指定する |
| #VALUE! | 引数に文字列が入っている | セル参照先が数値かどうか確認する |
| #ERROR! | 構文ミス(カッコ忘れ・カンマ漏れ等) | 数式の入力内容を見直す |
選ぶ個数が総数を超えているとき
もっとも多いエラーです。3人しかいないのに5人選ぶことはできませんよね。
=PERMUT(3, 5)
この数式は#NUM!エラーになります。nとrの指定が逆になっていないか確認してみてください。
引数に小数を指定したとき
小数を指定してもエラーにはなりません。小数点以下が切り捨てられて計算されます。
=PERMUT(5.8, 2.3)
この数式は =PERMUT(5, 2) と同じ結果で「20」を返します。意図しない切り捨てには注意しましょう。
PERMUT関数と似た関数との違い・使い分け
順列や組み合わせに関連する関数を表で比較します。
| 関数 | 動作 | 順番の区別 | 重複 |
|---|---|---|---|
| PERMUT | 順列の数を返す | 区別する | なし |
| COMBIN | 組み合わせの数を返す | 区別しない | なし |
| PERMUTATIONA | 重複順列の数を返す | 区別する | あり |
| COMBINA | 重複組み合わせの数を返す | 区別しない | あり |
| FACT | 階乗(n!)を返す | – | – |
PERMUT関数とCOMBIN関数の違い(順列 vs 組み合わせ)
もっとも混同しやすいのがこの2つです。違いは選ぶ順番を区別するかどうかですね。
- PERMUT関数(順列): 順番を区別する。A,B,CとC,B,Aは別の1通り
- COMBIN関数(組み合わせ): 順番を区別しない。A,B,CとC,B,Aは同じ1通り
5人から3人を選ぶケースで比べてみましょう。
=PERMUT(5, 3)
結果は「60」です。順列は60通りですね。
=COMBIN(5, 3)
結果は「10」です。組み合わせは10通りになります。
順列(60)は組み合わせ(10)の6倍です。選んだ3人の並べ方が3! = 6通りあるためですね。
使い分けのポイントは次のとおりです。
- リレーの走順・座席の並び → PERMUT(順番も重要)
- チーム分け・委員選び → COMBIN(誰を選ぶかだけが重要)
PERMUT関数とPERMUTATIONA関数の違い(重複なし vs 重複あり)
PERMUTATIONA関数(読み方: パーミュテーションエー関数)は、同じ要素を複数回選べる順列(重複順列)を計算します。
=PERMUT(5, 3)
結果は「60」です。5種類から3つを選んで並べる(重複なし)パターンですね。
=PERMUTATIONA(5, 3)
結果は「125」です。5種類から3つを選んで並べる(重複あり)パターンになります。これは5の3乗(5^3 = 125)と同じです。
使い分けのポイントは次のとおりです。
- リレーの走順を決める → PERMUT(同じ人が2回走れない)
- 3桁のパスワードを作る → PERMUTATIONA(同じ文字を繰り返し使える)
PERMUT関数とFACT関数の関係
FACT関数は階乗(n!)を返す関数です。実はPERMUT関数の計算結果はFACT関数で再現できます。
順列の公式は「nPr = n! / (n-r)!」です。
これをFACT関数で書くと次のようになります。
=FACT(5) / FACT(5-3)
結果は「60」です。これは =PERMUT(5, 3) と同じ結果ですね。
PERMUT関数はこの面倒な計算を1つの関数で済ませてくれます。通常はPERMUT関数を使えば十分ですよ。
Excelとの違い
PERMUT関数はExcelとGoogleスプレッドシートで完全に同じ動作です。
| 項目 | Excel | Googleスプレッドシート |
|---|---|---|
| 構文 | =PERMUT(数値, 抜き取り数) | =PERMUT(n, r) |
| 動作 | 順列の数を返す | 順列の数を返す |
| 小数の扱い | 小数点以下を切り捨て | 小数点以下を切り捨て |
| エラー時 | #NUM! / #VALUE! | #NUM! / #VALUE! |
引数名の表記が若干異なるだけで、機能は完全に同じです。
ExcelのPERMUT関数について詳しくは「ExcelのPERMUT関数の使い方」をご覧ください。
まとめ
PERMUT関数は、n個の中からr個を選んで並べる順列の数を求める関数です。
ポイントを整理します。
- 構文は
=PERMUT(n, r)の2引数。順列の数(nPr)を返す - リレーの走順やプレゼンの発表順など、「並び順まで含めて何通りあるか」を調べるときに便利
- 暗証番号のパターン数や表彰の順位パターンなど、実務でも使える場面は多い
- COMBIN関数(組み合わせ)との違いは、選ぶ順番を区別するかどうか
- PERMUTATIONA関数は同じ要素を複数回選べる「重複順列」を計算する
- FACT関数の階乗で同じ計算ができるが、PERMUT関数のほうがシンプル
- ExcelのPERMUT関数と完全に同じ動作で、互換性も安心
まずは =PERMUT(5, 3) で「5人から3人を選んで並べる順列 = 60通り」から試してみてください。
