• ベストアンサー

エクセル関数を使って、ランダム抽出をしたいです

エクセル関数を使って、ランダム抽出をしたいのですが どの関数を使用すればいいのかわからないのです。 現在、1つのシートにいろいろなデータが入っているのですが、 D列のデータを使い、そのデータをランダムに25件抽出したいのです。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

Sheet1にデータが入っているとして、そのD列のデータをSheet2のA列に取り出して操作をすることにします。 関数で取り出すのでしたらSheet2のA1セルに次の式を入力し下方にオートフィルドラッグします。 =Sheet1!D1 B1セルには次の式を入力し下方にオートフィルドラッグします。 =IF(A1="","",RAND()) C1セルには次の式を入力し下方にオートフィルドラッグします。 =IF(A1="","",RANK(B1,B:B)) D1セルには次の式を入力し下方にオートフィルドラッグします。 =IF(OR(COUNTIF(C:C,ROW(A1))=0,ROW(A1)>25),"",INDIRECT("A"&MATCH(ROW(A1),C:C,0))) これでSheet2のD列にはランダムに抽出されたデータが並ぶことになります。 なお、F9のキーを押すことで抽出操作を繰り返すことができます。

その他の回答 (3)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.4

D1:D100にデータがあり、E列に25個取り出すとします。 C1:D100に =RAND() と入れます。 E1:E25に =VLOOKUP(SMALL(C:C,ROW()),C:D,2,FALSE) これで重複の無い25個が取り出せます。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

D1から下に100個のデータが連続してある場合、抽出したい列で =OFFSET($D$1,INT(RAND()*100),0) と入れたら、25行目までドラッグして式をコピーしてみてください。

noname#99913
noname#99913
回答No.1

(1)E1に「=RAND()」と入力し、D列の最後の行までコピー (2)F1に「=RANK(E1,E:E)」と入力し、D列の最後の行までコピー (3)G1に「=INDEX(D:D,F1,1)」と入力し、G25までコピー G列にD列のデータが、25個とりだされます。

関連するQ&A

専門家に質問してみよう