2016年5月20日金曜日

【Googleスプレッドシートでランダムに並び替え】

講習会で講師をしていると、発表順を決めたり、グループ分けをする時に、受講者名簿をランダムに並べ替えられたら便利だなと思うことがよくあります。それを一番手軽に行えるのは、乱数を発生させる RAND関数 を使う方法でしょう。以下のようなExcelの名簿があった場合、C列に以下の式を入力します。

C2セル:=RAND()


RAND関数は、0以上で1より小さい乱数を発生させます。C2セルをコピーして、C3セルからC5セルにペーストすれば、各セルで乱数が発生しているのが分かります。


C1セルを選択します。


メニューから「Home」→「並べ替えとフィルター」→「フィルター」と進んで、フィルターを設定します。


C1セルの▼をクリックして「昇順」を選択します。


すると、名簿が並び替わります。しかし、何か変です。乱数順に並ぶのであれば、社員番号が4→3→2→1の順に並ぶはずですが、そうなっていません。しかし、これは誤動作ではありません。乱数は、ワークシートが再計算されるたびに、新しい値が返されるため、乱数順に並び替えると、その直後には、もう新しい乱数が表示されているのです。


その証拠に、C1セルの▼をクリックして、もう一度「昇順」を選択してみます。


すると、社員番号が4→3→2→1の順に並びましたね。ただし、乱数も新しい値に更新されています。




Googleスプレッドシートでも同じ方法が使えます。C列に RAND関数 を使った式を入力します。

C2セル:=RAND()


RAND関数は、0以上で1より小さい乱数を発生させます。C2セルをコピーして、C3セルからC5セルにペーストすれば、各セルで乱数が発生しているのが分かります。


C1セルを選択します。


メニューから「データ」→「フィルタ」と進んで、フィルタを設定します。


C1セルの▼をクリックして「A→Zで並べ替え」を選択します。


すると、名簿が並び替わります。乱数順に並ぶのであれば、社員番号が3→4→1→2の順に並ぶはずです。しかし、Excelの時と同じように、シートが再計算されるたびに、乱数には新しい値が返されるため、乱数順に並び替えると、その直後には、もう新しい乱数が表示されているのです。


その証拠に、C1セルの▼をクリックして、もう一度「A→Zで並べ替え」を選択してみます。


すると、社員番号が3→4→1→2の順に並び、乱数も新しい値に更新されています。


ではでは。


0 件のコメント:

コメントを投稿