質問: リストのデータを重複なしでランダムに抽出する シート1に下記のように14種類の名前リストがあります a 1 a 2 b 3 c 4 d 5 e 6 f 7 g 8 h 9 i 10 j 11 k 12 l 13 m 14 n 上記の名前を下記のように別シートの数列おきの列(行は同一)に重複なしに行毎にランダムに抽出する事が関数で出来るでしょうか?(エクセルは2010です) ちなみに下記は一列おきのセルに抽出した例です a b c d e f g h i j k l m n o p q r s t u v w x y z aa 1 d l k i a m n b h j c f e g 2 k j m h i g f e d a b n c l 3 e j a l b m k c n g f d h i どなたか教えていただける方がおりましたらよろしくお願いします。 という質問をさせていただき、mike gさんに下記のような回答をいただきました 1.sheet1 の例えばセル c1 に式 =rand() を入力して、此れを右に2列(注1参照)ドラッグ&ペースト 2.範囲 c1:e1 を下方にズズーッと(14行目まで)ドラッグ&ペースト 以下は別シート(sheet2)における操作です。 3.セル a1 に次式を入力して、此れを右方にズズーッと(セル aa1 まで)ドラッグ&ペースト(注2参照) =if(mod(column(),2)=1,index(sheet1!$a$1:$a$14,match(small(offset(sheet1!$c$1,,row()-1,14,),ceiling(column()/2,1)),offset(sheet1!$c$1,,row()-1,14,),0)),"") 4.1行目全体を下方にズズーッと(3行目まで)ドラッグ&ペースト 注1:「右に2列」は別シートの行数が3行の場合で、4行(5行)の場合は「右に3列(4列)」に読み替える。 注2:式中の 2 は「一列おき」の場合で、二列(三列)おきの場合は 2 を 3(4) に書き替える。 これで完璧に出来たのですが 実際にはsheet2のセルh6から15列おきに抽出したいのです。 15列おきは出来たのですが、セルh6から抽出を始めるにはどの部分を変更すれば良いのでしょうか? どなたか教えて頂ける方がおりましたらよろしくお願いします。
回答: h6: =if(mod(column(a1),16)=1,index(sheet1!$a$1:$a$14,match(small(offset(sheet1!$c$1,,row(a1)-1,14,),ceiling(column(a1)/16,1)),offset(sheet1!$c$1,,row(a1)-1,14,),0)),"")