Excelである範囲から適当に単語などを持ってくる

分かりにくいタイトルですが,やりたいことは,

1)Sheet1に問題文として「I have a (  ).」がある.

2)Sheet2のA1~A90に単語が適当においてあるので,A1~A10で1つ,A11~A20から1つ…と言うように,A1~A90から9つの単語を選びたい。

3)正解の単語は,Sheet1のA2に”pen”として入れてあり,A3~A12までに選んだ単語を入れる。

【方法】

・A3に以下を入れる。

=INDIRECT(“Sheet2!A”&INT(RAND()/0.1)+1)

  • INDIRECTは,セルの参照を返す
  • INTは整数を返す
  • RAND()で乱数を発生させて,0.1で割ると0~10の乱数が発生する。0だと困るので,+1をして,必ず1以上が出るようにする。

・A4には以下を入れる(注:10*RAND()の部分は,RAND()/0.1と同じ意味になる)

=INDIRECT(“Sheet!A”&INT(10+(10*RAND())+1)

・A5は20,A6は30を入れていけばよい。


7月5日追記

INTを使うと小数点以下が切り捨てられてしまうので,場合によっては,最大値が出ないことになるので,例えば,round関数を使って,小数点第1位を四捨五入すると良いかもしれない。

=INDIRECT(“選択肢プール!A”&ROUND(11+10*(RAND()),0))

とする