- ベストアンサー
エクセル関数を使って、ランダム抽出をしたいです
エクセル関数を使って、ランダム抽出をしたいのですが どの関数を使用すればいいのかわからないのです。 現在、1つのシートにいろいろなデータが入っているのですが、 D列のデータを使い、そのデータをランダムに25件抽出したいのです。 よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
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)
D1:D100にデータがあり、E列に25個取り出すとします。 C1:D100に =RAND() と入れます。 E1:E25に =VLOOKUP(SMALL(C:C,ROW()),C:D,2,FALSE) これで重複の無い25個が取り出せます。
- merlionXX
- ベストアンサー率48% (1930/4007)
D1から下に100個のデータが連続してある場合、抽出したい列で =OFFSET($D$1,INT(RAND()*100),0) と入れたら、25行目までドラッグして式をコピーしてみてください。
(1)E1に「=RAND()」と入力し、D列の最後の行までコピー (2)F1に「=RANK(E1,E:E)」と入力し、D列の最後の行までコピー (3)G1に「=INDEX(D:D,F1,1)」と入力し、G25までコピー G列にD列のデータが、25個とりだされます。