EXCEL 365で、RANDARRAY関数が提供されましたので、使ってみました。
基本的に乱数の関数なので、ビジネスシーンでの登場よりゲームや無作為抽出でのシーンでの使用になるかと言えます。
引数
RANDARRAY(行,列,開始数,終了数,整数か否か)
整数か否か・・・True(整数)、False(小数点含む10進数)
3×3の配列で、1から10までの整数を発生させてみました。
9マスで均等に乱数が算出されれば問題ないですが、重複が発生することがあることでもあります。この重複がないのがいいのですが、、、
今回、2と3が3個発生ということになりました。
この関数・・・使い道(活用方法)を考えてみました。
今まで、RAND関数は、単一セルにしか使用できなかったのが、配列になることで、配列を活用することで、座席表くじができそうです。
36人(6行×6列)で座席表をくじにしてみました。
1.B3セルに0から1までの小数点以下を含む数値を発生させます。
=RANDARRAY(6,6,0,1,FALSE)
2.RANK関数で、このセルは配列の中で何番目かを求めます。小数点以下第5位まで発生しているので、ほぼ一意(重複していても適当にEXCELで対応)になると言えます。
各セルごとに設定します。
A11セルの例
=RANK(B3,$B$3:$G$8,1)
3.すべて指定すると、以下のような表示になります。
1から36まで、重複しないで採番できました。今回、行列がきっちりした数ですが、6行目が3列までしかない場合でも、空欄の扱いが面倒なのでこの方法で行い、無い座席に対して欠番か再抽選という方法がいいのでは。。。
ーーー
トーナメント表のくじ引きもできそうです。
EXCEL シートで以下の設定を行います。
今回は、1行で16列で0から1までの少数点以下を発生させています。
RANK関数でこの配列の中での順位を求めます。
RANDARRAYの行を非表示にして、図形を組み合わせると、以下のようなトーナメント表ができます。
ーーー
注意点
シートを更新する操作をすると、この数値は再計算(リセット)されるので、使用したいタイミングで、印刷もしくはPDF化する必要があります。
さっきの表が欲しい・・・発生数にもよりますが、2度と同じ状態で表示されないと言えます。