範囲からさまざまな乱数を選択する(Microsoft Excel)
従業員(または製品、ウィジェットなど)のリストがあり、このリストからランダムに2つのアイテムを選択するとします。
RANDOMやRANDBETWEENなど、リストからアイテムを選択するために使用できるワークシート関数がいくつかあります。
RANDBETWEEN関数は非常に簡単で、範囲内の乱数を提供するため、多くの人がRANDBETWEEN関数を使用します。したがって、リストに25個のアイテムがある場合、RANDBETWEENは1から25までの数値を返すことができ、これはリスト内のアイテムに対応することができます。
たとえば、アイテムのリストがA2:A26の範囲にあり、この範囲にItemsという名前を付けたとします。次に、セルC2に次の数式を入力して、1からアイテムの数までの数値を返すことができます。
=RANDBETWEEN(1,ROWS(Items))
この数式をセルC3にコピーすると、リストの項目を表す2つの乱数ができます。セルD2とD3に、次のような数式を入力して、リストから実際の名前を取得できます。
=INDEX(Items,C2)
このアプローチの唯一の問題は、RANDBETWEENの両方のインスタンス(セルC2とC3)が同じ値を返す可能性があるため、リストから同じアイテムが2回選択されることです。
この潜在的な問題を回避する1つの方法は、リストから2つではなく3つの項目を実際に選択することです。最初の2つのアイテムが同じである場合、3番目のアイテムを「フォールバック」アイテムとして使用して、一意の2番目のアイテムを提供できます。この方法は絶対確実ではありません。3つすべてが同じになる可能性はありますが、ほとんどあり得ないからです。
リストからアイテムを選択する別の方法は、各アイテムに独自のランダム値を割り当ててから、シリーズの最大数に基づいて選択することです。 RANDOM関数は、0から1までのランダムな値を返します。列Bの各セルで、列Aの各項目のすぐ右側に、次の数式を入力します。
=RAND()
セルの範囲(B2:B26)を選択し、ItemNumsなどの名前を使用して範囲に名前を付けます。次に、次の配列数式を使用して、リストから最初のランダムな名前を決定できます。
=OFFSET(A$1,SUM((LARGE(ItemNums,1)=(ItemNums))*ROW(ItemNums))-1,0)
これが配列数式であることを示すには、Shift + Ctrl + Enterを押して入力します。数式は単一の名前を返す必要があります。次に、次の配列数式を使用して2番目の名前を返すことができます。
=OFFSET(A$1,SUM((LARGE(ItemNums,2)=(ItemNums))*ROW(ItemNums))-1,0)
RAND関数アプローチを使用する方がRANDBETWEENを使用するよりもうまく機能する理由は、RANDが2つの同一の値を返す可能性が非常に小さいのに対し、RANDBETWEENが返す可能性がはるかに高いためです。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(12082)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。
Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります:
link範囲から異なる乱数を選択する。