■サンプルデータ
PERMUT関数 とPERMUTATIONA関数のサンプルデータです。
動作の確認と検証に使用してください。ただし、関数によっては未完成のものもあります。
今後バージョンをアップしていきます。定期的にダウンロードしてみてください。
※未完成なので、ご了承ください。少しづつ完成させ、アップロードしていきます。
[wpdm_button_template id=14470 style=”instagram” align=”left”]
■順列とは何か
異なるn個の中から異なるr個を取り出して1列に並べる数のこと。
5人(A、B、C、D、E)の中から2人を並べる場合を考えましょう。
すると、並べ方はAB、BA、AC、CA、DE、ED…のようになります。全部数え上げれば分かるのですが、合計は20通りになります。ここで、ABとBAを違うものとして考えることがポイントです。
ちなみに順列は記号Pで表します。
※抜粋・参照・・・受験のミカタ
■重複しない順列(並べ方)を求める / =PERMUT()
【関数名】:PERMUT(パーミューテーション)
【用途】:PERMUT(パーミューテーション)関数は、[総数]個の項目の中から[抜き取り数]個を取り出して、並べた時、何通りの順列(並べ方)が可能であるかを求めます。
【書式】:=PERMUT(総数 , 抜き取り数)
【補足1】
- 総数:対象となる項目の総数を指定する。
- 抜き取り:取り出して並べる数を指定する。
- ※PERMUT関数は重複をカウントしない。
■重複した順列(並べ方)を求める / =PERMUTATIONA()
【関数名】:PERMUTATIONA(パーミューテーション・エー)
【用途】:PERMUTATIONA(パーミューテーション・エー)関数は、[総数]個の項目の中から重複した[抜き取り数]個を取り出して、並べた時、何通りの順列(並べ方)が可能であるかを求めます。
【書式】:=PERMUTATIONA(総数 , 抜き取り数)
【補足1】
- 総数:対象となる項目の総数を指定する。
- 抜き取り:取り出して並べる数を指定する。
- ※PERMUTATIONA関数は重複をカウントします。
■PERMUT関数とPERMUTATIONA関数の違い
PERMUT関数とPERMUTATIONA関数の違いは抜き出された順列が重複するかどうかです。
重複するかどうかで結果は大きく変わってくるので注意が必要です。
例1 5人の中から2人を選び、並ばせる場合
=PERMUT(A5,C5)
PERMUT関数の引数は、必ず2つ指定する必要があります。
例2 5人の中から3人を選び、並ばせる場合
=PERMUT(5,3)
引数はセルの参照だけではなく、直接数値を指定することも可能です。
※数値は半角にしましょう。
例3 5枚の絵柄の中から重複した順列を求める場合
=PERMUTATIONA(A35,C35)
PERMUT関数と同様の使い方になります。
第二引数が指定されていない場合は、1になります。
例4 6枚の絵柄の中から重複した順列を求める場合
=PERMUTATIONA(A36,3)
引数はセルの参照だけではなく、直接数値を指定することも可能です。
※数値は半角にしましょう。
■おさらい:重複しない順列を求めるなら
【例1】=PERMUT(A5,C5)
【書式】=PERMUT(総数 , 抜き取り数)
重複しない順列を求める場合は、PERMUT(パーミューテーション)関数を使用します。
引数は必ず2つ指定しなければいけません。
■おさらい:重複する順列を求めるなら
【例4】PERMUTATIONA(A35,C35)
【書式】=PERMUTATIONA(総数 , 抜き取り数)
基本的にはPERMUT関数と同じです。
こちらの関数は重複するので、PERMUT関数との使い分けが大事です。
■役立つカシオの計算サイト
カシオ計算機のサイトに順列や組み合わせが簡単に確認できるサイトがあります。
確認や検証などに利用できるでしょう。
■順列を求めるエクセルVBA
順列の抜き出しをプログラムで実現したい場合もあるかと思います。
下記に順列生成のアルゴリズムの参考サイトをまとめておきます。
集計や統計を求める
- 条件を指定して数値を合計したい
- 複数の条件を指定して数値を合計したい
- 集計方法を指定して集計値を求める
- 数値を丸める(桁の切り上げ、切り捨て、四捨五入など)
- 順列を求める
- 組み合わせの数を求める
- 乱数(ランダムな数値)を発生させる
- データの個数を求める
- 空白セルの個数を求める
- 条件に一致するデータの個数を求める
- 複数の条件に一致するデータの個数を求める
- 数値 or データの平均値を求める
- 条件を指定して数値の平均を求める
- 複数の条件を指定して数値の平均を求める
- 数値 or データの最大値を求める
- 数値 or データの最小値を求める
- 特定の範囲に含まれている値の個数を求める
- 数値の中央値を求める
- 数値の最頻値(最も多く表示されている最小の値)を求める
- 大きいほうから何番目かの値を求める
- 小さいほうから何番目かの値を求める
- 特定の範囲から順位(最上位 or 平均値など)を求める
- 四分位数を求める
日付・時刻を求める
- 日付や年、時刻を求める
- 日付から年、月、日、時間などを取り出す
- 日付が何週目かを求める
- 期限(数ヶ月前、数ヶ月後、期間)を求める
条件によって判定させる
- 条件を決めて判定する
- 複数のすべての条件が満たされているかを判定する
- いずれかの条件が満たされているかを判定する
- 条件が満たされていないことを判定する
- エラーだった場合に判定する
セルの内容を調べる
- セルが空白かどうかを調べる
- セルの値がエラーかどうかを調べる
- 文字列かどうか調べる
- 数値かどうか調べる
- 偶数か奇数かを調べる
- 数式かどうかを調べ、取り出す
- エラーの値やデータの種類を調べる
ある特定の値を探す
- 列または行方向に検索する
- 引数のリストから値を検索する
- 配列から特定の値を検索する
- 指定したセルの参照値を検索
- セルの列番号を調べる
- セルの行番号を調べる
- 列数を調べる
- 行数を調べる
- セルの参照を調べる
- 行と列の位置を入れ替える
- ハイパーリンクを作成する
- ピポットテーブルからデータを取り出す
文字列を操作する
- 文字数を求める
- 左端から指定した文字数だけ文字列を取り出す
- 右端から指定した文字数だけ文字列を取り出す
- 指定した位置から文字数だけ文字列を取り出す
- 文字列の位置を調べる
- 指定 or 検索した文字列に置換する
- 文字列を連結する
- 文字列の前後の空白を削除する
- 印刷できない文字を削除する
- ふりがなを取り出す
- 指定回数だけ文字列を繰り返す
- 全角文字 or 半角文字に変換する
- 英字を大文字 or 小文字に変換する
- 数値を表す文字列を数値に変換する
- 英単語の先頭文字を大文字に変換する
- 文字列が等しいかどうか調べる
データベースを制御する
- 条件を満たす数値の個数を求める
- 条件を満たす空白以外のセルの個数を求める
- 条件を満たすセルの合計を求める
- 条件を満たすセルの平均を求める
- 条件を満たす最大値 or 最小値を求める
- 条件を満たすデータを探す