Excelのランダム選択:データセットからランダムなサンプルを取得する方法

  • これを共有
Michael Brown

このチュートリアルでは、名前、数字、その他のデータをランダムに選択するいくつかの簡単な方法を紹介します。 また、重複のないランダムなサンプルを得る方法や、マウスクリックでセル、行、列の指定した数または割合をランダムに選択する方法についても学びます。

新製品発売のための市場調査であれ、マーケティングキャンペーンの結果評価であれ、分析には偏りのないデータのサンプルを使用することが重要です。 そして、これを実現する最も簡単な方法は、Excelで無作為抽出をすることです。

    無作為抽出とは?

    サンプリング技術について説明する前に、無作為抽出について、どのような場合に使用するのか、少し背景を説明しましょう。

    確率論や統計学では かくりつひょうほん は、より大きなデータセットから選択されたデータの部分集合であり、別名 人口 ランダムサンプルの各要素は、完全に偶然に選ばれ、選ばれる確率は等しくなっています。 なぜ必要なのですか? 基本的には、全人口の偏りのない代表を得るためです。

    例えば、顧客に対してちょっとしたアンケートを実施したいとします。 もちろん、何万人というデータベースの中の一人一人にアンケートを送るのは賢明ではありません。 では、誰にアンケートするのか? 最新の顧客100人か、アルファベット順の顧客100人か、名前の短い100人か? これらのアプローチは、生来的にあなたのニーズに合っていないのですから、どれにも当てはまらないのです。公平なサンプルを得るために、以下のいずれかの方法で無作為に抽出します。

    数式を使ったExcelのランダム選択

    Excelにはセルをランダムに選ぶ機能が組み込まれていませんが、回避策として乱数を生成する関数の一つを使うことができます。 これらはおそらく単純な直感的な数式とは呼べないでしょうが、機能します。

    リストからランダムな値を選択する方法

    セルA2:A10に名前のリストがあり、その中からランダムに1人の名前を選びたいとします。 これは、次のいずれかの数式を使用することで可能です。

    =index($a$2:$a$10,randbetween(1,counta($a$2:$a$10)),1)である。

    または

    =index($a$2:$a$10,randbetween(1,rows($a$2:$a$10)),1)

    これで、Excel用のランダム名入れソフトの準備は完了です。

    注)RANDBETWEENは、ご注意ください。 揮発性 その結果、ランダムな選択範囲も変わってしまいます。 これを防ぐには、抽出した名前をコピーして、別のセルに値として貼り付けるとよいでしょう ( ペースト・スペシャル > 価値観 詳しい方法は、「数式を値に置き換える方法」をご覧ください。

    もちろん、これらの数式は、ランダムな名前を選ぶだけでなく、ランダムな数字や日付、その他のランダムなセルを選ぶことができます。

    これらの計算式の仕組み

    簡単に言うと、INDEX関数を使って、RANDBETWEENで返されたランダムな行番号に基づいて、リストから値を抽出するのです。

    具体的には、RANDBETWEEN 関数は指定した 2 つの値の間で乱数を生成します。 下位の値には数値を 1、上位の値には COUNTA または ROWS を使って総行数を取得します。 その結果、RANDBETWEEN は 1 とデータセットの総行数の間の乱数を返します。 この数値が、データセットにある 行番号 INDEX関数の引数で、どの行を選択するかを指定します。 列番号 引数には、最初の列から値を抽出したいので、1 を使用します。

    注)この方法は、選択する際に有効です。 一けたのセル サンプルに複数のセルが含まれる場合、RANDBETWEEN 関数は重複を排除できないため、上記の数式は同じ値を複数回返す可能性があります。 特に、比較的小さなリストから比較的大きなサンプルを選ぶ場合はそうです。 次の例は、Excel で重複のないランダム選択をする方法を示しています。

    Excelで重複を避けてランダムに選択する方法

    Excelで重複のないランダムなデータを選ぶには、いくつかの方法があります。 一般的には、RAND関数で各セルに乱数を割り当て、Index Rankの数式でいくつかのセルを選びます。

    セルA2:A16に名前のリストがある状態で、以下の手順でランダムな名前をいくつか抽出してみてください。

    1. B2にRandの数式を入力し、列の下にコピーします。

    =RAND()

  • C2に以下の数式を入れ、A列からランダムな値を抽出する。
  • =index($a$2:$a$16, rank(b2,$b$2:$b$16)), 1)

  • 上記の数式を、ランダムに選びたい値の数だけセルにコピーします。 この例では、数式をさらに4つのセル(C2:C6)にコピーしています。
  • 以上で、5つの名前が重複することなくランダムに抽出されました。

    この式の仕組み

    前の例と同様に、INDEX 関数を使って、ランダムな行座標に基づいて A 列から値を抽出します。 この場合、それを得るために 2 つの異なる関数が必要です。

    • RAND式は、B列に乱数を入力する。
    • RANK関数は、同じ行の乱数の順位を返します。 例えば、セルC2のRANK(B2,$B$2:$B$16)は、B2の数値の順位を取得します。 C3にコピーされると、相対参照のB2はB3に変わり、B3の数値の順位が返されます。
    • RANKで返された数値を 行番号 の引数で、その行から値を取得します。 列番号 引数で1を指定したのは、最初の列から値を取り出したいからである。

    注意点! 上のスクリーンショットにあるように、Excelの乱数にはユニークな値しか含まれていません。 しかし、理論的には、サンプルに重複が現れる可能性があります。 非常に大きなデータセットでは、RANDは重複した乱数を生成し、RANKはそれらの番号に対して同じランクを返すかもしれません。 個人的には、私のテストでは重複はありませんでしたが、理論的にはその確率は高いでしょう。は存在します。

    もし、ユニークな値だけを集めたランダムな選択式をお探しなら、RANKの代わりにRANK + COUNTIFまたはRANK.EQ + COUNTIFの組み合わせを使ってください。 ロジックに関する詳しい説明は、Unique ranking in Excelを参照してください。

    完全式は少し面倒ですが、100%重複なしです。

    =index($a$2:$a$16, rank.eq(b2, $b$2:$b$16) + countif($b$2:b2, b2) - 1, 1)

    注意事項

    • RANDBETWEEN と同様に、Excel の RAND 関数もワークシートの再計算のたびに新しい乱数を生成するため、無作為の選択範囲が変化します。 サンプルを変更しないようにするには、コピーして別の場所に値として貼り付けてください ( 貼り付け スペシャル > 価値観 ).
    • 元のデータセットに同じ名前(数値、日付、その他の値)が複数回出現している場合、ランダムサンプルにも同じ値が複数回含まれる可能性があります。

    Excel 365 - 2010で繰り返しのない無作為抽出を行うその他の方法については、こちらで紹介しています:Excelで重複のないランダムなサンプルを取得する方法。

    Excelでランダムな行を選択する方法

    ワークシートに複数の列のデータがある場合、この方法で無作為にサンプルを選択することができます。 各行に乱数を割り当て、それらの番号をソートし、必要な数の行を選択します。 詳しい手順は以下のとおりです。

    1. 表の右側または左側に新しい列を挿入します(この例ではD列)。
    2. 挿入された列の最初のセル(列見出しを除く)に、「RAND」式を入力します。 =RAND()
    3. 塗りつぶしハンドルをダブルクリックして、数式を列の下にコピーします。 その結果、各行にランダムな数字が割り当てられることになります。
    4. 乱数をソートする 最大から最小まで (昇順でソートすると、列のヘッダーがテーブルの一番下に移動してしまうので、必ず降順でソートしてください)。 そのためには、次のように データ tab> ソート&フィルター をクリックすると、Excel は自動的に選択範囲を広げ、行全体をランダムな順序で並べ替えます。

      もし、表の並べ方が気に入らない場合は、もう一度並べ替えボタンを押すと並べ替えができます。 詳しい方法は、「Excelでランダムに並べ替える方法」をご覧ください。

    5. 最後に、サンプルに必要な行数を選択し、コピーして好きな場所に貼り付けてください。

    このチュートリアルで説明する数式をより詳しく見るには、Excel Random Selectionのサンプルワークブックをダウンロードしてください。

    ExcelでRandomizeツールを使ってランダムに選択する方法

    Excelでランダムなサンプルを得るためのいくつかの公式を知ったところで、マウスクリックで同じ結果を得る方法を見てみましょう。

    Random Generator for Excelは、Ultimate Suiteに含まれており、以下のように使用できます。

    1. 表の中の任意のセルを選択します。
    2. に行ってみてください。 Ablebits Tools tab> ユーティリティ をクリックします。 ランダム化 > ランダム選択 :

  • アドインのペインで、ランダムな行、ランダムな列、ランダムなセルのうち、何を選択するかを選びます。
  • 希望するサンプルサイズの数または割合を指定します。
  • をクリックします。 選択 ボタンを押す 完了
  • 例えば、サンプルデータセットからランダムに5行を選択する方法は次のとおりです。

    そして、一瞬でランダムに選択されます。

    Ctrl + C でランダムサンプルをコピーし、Ctrl + V で同じシートまたは別のシートの場所に貼り付けることができます。

    もし、あなたのワークシートでランダム化ツールを試してみたいなら、以下のUltimate Suiteのトライアル版を入手してください。 Googleスプレッドシートをお使いの場合は、Google Sheets用のランダムジェネレータが便利でしょう。

    ダウンロード可能なもの

    ランダムサンプルの選択 - 計算式の例 (.xlsx ファイル)

    Ultimate Suite - 体験版 (.exeファイル)

    Michael Brown は、ソフトウェア ツールを使用して複雑なプロセスを簡素化することに情熱を注ぐ熱心なテクノロジー愛好家です。テクノロジー業界で 10 年以上の経験があり、Microsoft Excel と Outlook、さらに Google Sheets と Docs のスキルを磨いてきました。 Michael のブログは、彼の知識と専門知識を他の人と共有することに特化しており、生産性と効率を向上させるためのわかりやすいヒントとチュートリアルを提供しています。経験豊富なプロフェッショナルであろうと初心者であろうと、Michael のブログでは、これらの重要なソフトウェア ツールを最大限に活用するための貴重な洞察と実践的なアドバイスを提供しています。