• ベストアンサー

excelで参照するセルを 'rand()'を使って変更する

A1~A10に平仮名の「あ~こ」が1文字ずつ入力されています。 B1に式を入力して、A1~A10に入力した文字をランダムに1つ参照して表示させたいです。 とりあえずB1には 「=A&rand()*10」や「=A&INT(RAND()*10)」 等と入力してみましたが「#NAME!」と怒られます。 良い方法はありますでしょうか? 上手く出来るならrand()を使用する必要はありません。

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

  • ベストアンサー
  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.1

=INDEX($A$1:$A$10,RAND()*10+1) でいいと思いますが。

その他の回答 (3)

  • deecyan
  • ベストアンサー率38% (89/233)
回答No.4

#2です #3 さん 何が違うのだろうか? RANDの値がいくつになった時に違うか 教えてほしい RANDは0以上1未満ですよね 

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

=INDIRECT("A"&INT(RAND()*10+1)) #2さんとちょっと違う。+1すると1以上(かつ*10でRAND()*10が10未満)になるようです。

8manjinjin
質問者

お礼

ご教示ありがとうございます。 3名の方それぞれの方法を試行しまして、全て思い通りの結果が得られました。 また、#2のINT(RAND()*10)+1,#3さんのINT(RAND()*10+1)、共に1以上10以下の整数が得られますね。 ところで、この「INT()」周りの記述を含めて、私にはお三方の回答に優劣をつけられる知識がございません。 #1さんと#2&#3さんのやり方はどちらが私の質問の回答としてふさわしいのか?私には判断できません。 ご異存が無ければ先着順に上位のポイント発行したいのですがよろしいでしょうか? (こういった場合のポイント発行方法を質問したいぐらいです。。。)

  • deecyan
  • ベストアンサー率38% (89/233)
回答No.2

INDIRECTをつけないと それとA0になるかもしれないので =INDIRECT("A"&INT(RAND()*10)+1)

関連するQ&A