エクセルRAND関数で乱数をつくり、ランダム(無作為)に標本を抽出する方法




母集団から標本を取りだすときには、ランダム(無作為)に行うことが多々あります。その際には、どのようにランダム化したらいいでしょうか。

この記事では、その疑問に答えるために、エクセルの関数で発生させた乱数をつかって、ランダム化をする方法を書きました。

関数RAND で乱数を発生させた後に、その数字の大きい順に並べ替えて、選び出すという方法です。

100人からランダムに10人を選ぶ

従業員数が100人のある会社で、10人を選んでアンケート調査するときのことを考えてみましょう。

まず、その100人のリストをエクセルに入力して並べます。

そして、その隣の列に関数 RAND()をつかって、乱数を発生させます。

「=RAND() 」と入力します。

乱数が発生しました。

ドラッグをしてコピーし、100人分の乱数を発生させます。

その後、操作をして更新がなされると乱数が変わってしまうので、値貼り付けをして、入力データが「=RAND()」ではなくて、数値となるようにします。

フィルタ機能をつかって、発生させた乱数の大きい順に並べ替えます。これは当然、小さい順でもかまいません。

最後に、上から10人を選びます。

こうすれば、乱数を用いて10人を決めたわけなので、無作為抽出となります。

100人をランダムに50人と50人の2グループに分ける

上記したのは、100人から10人を選ぶというものでした。

では、100人を50人のグループ、50人のグループと、無作為にグループ分けする時にはどうしたらよいでしょうか。Aグループ、Bグループに分けるとします。

  • エクセルのリストがあって、隣の列に乱数を発生させる
  • その乱数の大きい順に並べ替える

ここまでは同じです。

その後、上から順番に、一人ずつAのグループ、Bのグループと順番に分けていきます。

「1人目はAグループ、2人目はBグループ、3人目はAグループ、4人目はBグループ…」

と順番にAグループとBグループに分けしていくのです。これでランダムなグループ分けが完了します。

注意点

従業員番号で順番に並べて、上から順番に10人を選び出すというやり方は、ランダムにはなっていませんから、ダメな方法です。従業員番号の並びになにか意味があるかもしれません。

仮に、従業員番号が入社順につけられているとしたらどうでしょう。選んだ10人は、入社してからの年数が経過している人たちであり、年齢が高い人ばかりになってしまう可能性があります。

ランダムにグループ分けをしないと、何らかの要因によって、AグループとBグループの特性に差が出てしまいそうです。