〇 RAND関数/RANK.EQ関数:職場の席替え、Excelのクジで決めるには?
Q:新年度に席替えをします。従来はクジで席順を決めていました。代わりにExcelを使ってできないでしょうか。
A:できます。方法はいろいろ考えられますが、RAND関数とRANK.EQ関数を使うのがシンプルで便利ではないでしょうか。
席順や班分けは公平であることが大切です。そのためくじ引きなどで決めることも多いですよね。でも、せっかく手元にExcelがあるのですから、これを用いない手はありません。そもそもExcelは私情をはさみません。ですから確実に公平性を確保できます。
乱数に順番を付けて席順の代わりに。
しかしながら少し考えてみると、席順を決めるのも意外に難しいのが分かります。どうすべきでしょうか。ここでは、乱数を返すRAND関数と、値の順位を返すRANK.EQ関数で席順を決める方法を紹介します。
0 以上で 1 より小さい実数の乱数を返す。ワークシートが再計算されるたびに、新しい乱数が返る。
指定した数値が、指定した範囲の何番目に位置するかを返す。同じ値がある場合、それぞれに同じ順位を返す。
数値 順位を調べる数値を指定する。
参照 セル範囲を指定する。「数値」がこの範囲の中の何番目に位置するかを調べる。
順序 省略可能。セル範囲を降順か昇順で並べるのかを指定する。降順は「0」か省略、昇順は「0」以外の数値を指定する。
まず、五十音順に並んだ名前がA列に入力してある名簿を用意します。B列にはRAND関数で乱数を発生させ、C列にはRANK.EQ関数を用いてその乱数を大きい順に順位付けします。これを席順の代わりにします。まずは、RAND関数の入力からです。
続いてこの数式をB9までオートフィルします。
C2にRANK.EQ関数の数式を入力します。引数「参照」は絶対参照にしておいてください。
あとは数式をC9までオートフィルすれば完成です。
結果を固定する「値のペースト」。
あっけなく席順が決まりました。[Shift]キーを押しながら[F9]キーを押し続けると、シートが繰り返し再計算されます。キーから指を離すと計算が止まり、新たな席順が返ります。
しかし、一旦決めた席順が、シートの再計算により変化したら都合が悪いですよね。「形式を選択して貼り付け」の「値」で乱数を値として固定しましょう。
まず、B2:B9を選んでコピーします。
B2:B9を選んだまま右クリックし、「形式を選択して貼り付け」から「値」を選びます。
数式が値に置き換わりました。これで再計算しても席順は変わりません。