dポイントプレゼントキャンペーン実施中!

XPを使用しています。
ビンゴでよく使用する5×5のマス目で60までのランダムな数値が入っています。RAND関数=roundup(rand()*60,0)を使い挿入しています。
しかし、どうしても重複した数値が入ってしまいます。
重複しないためにはどうしたらよいか・・・(-_-;)
子ども会で100名ほどに印刷して切って使う予定にしています。どなたか、ご存知でしたら、教えてください。よろしくお願いします。

A 回答 (5件)

#3の方に似ているような、似てないような方法ですが、



(1)G1セル =RAND()
   と入力し、G60セルまでコピー
(2)A1セル =MATCH(SMALL($G$1:$G$60,(COLUMN()-1)*5+ROW()),$G$1:$G$60,0)
   と入力し、E5セルまでコピー

でF9(再計算)を押すたび1~60までがランダムに表示されます。

#4さんの考え方で、
A列:1~12
B列:13~24
C列:25~36
D列:37~48
E列:49~60
ならば
A1セルに =MATCH(SMALL(OFFSET($G$1,(COLUMN()-1)*12,0):OFFSET($G$12,(COLUMN()-1)*12,0),ROW()),$G$1:$G$60,0)
でE5セルまでコピーでできると思います。
    • good
    • 1

60までの数値という条件がつく事情がおありでしょうが、


以前同じようにPCでカードを作って大失敗したことがあります。

市販のカードは縦5マスを1セットに考えると
左から右へ以下の範囲で書かれているようです。
左端:1~20
左中:21~40
中央:41~60
右中:61~80
右端:81~100
これを考慮せずに作成したら、数値が結構偏ってまして、
BINGO!が当分でず、最後の方に集中してしまったことがあります。

というわけで、市販のカードの方がお手軽であると思います。
    • good
    • 0

こんにちは。

maruru01です。

作業列を2列使用する方法です。
5×5のマスをA1~E5として、G、H列を作業列とします。

G1~G60まで1、2、3・・・60と連番を振ります。
H1に、

=RAND()

と入力してH60までコピーします。
A1に、

=OFFSET($G$1,COLUMN(A1)-1+(ROW(A1)-1)*5,0,1,1)

と入力して、行・列方向それぞれへコピーします。
あとは、GH列を選択して、H列で並べ替える度に、1~60までの値が重複せずにランダムに表示されます。
(並べ替え操作をするとRAND関数が更新されるので。)
並べ替えごとに印刷するなり、値のみをコピーペーストすればいいでしょう。

ただ、No.1の方が言うように、100名程度なら、本物のビンゴ用紙を買ったほうがいいような・・・
    • good
    • 0

>百円ショップで、ビンゴの用紙を売っていますので、そちらの方が早いかと思います。



たしかに。

私もそう思います。
そうではなくて、趣味や知識のひとつとして、VBAでのランダムな数値を取得するテクニックを知りたいということでしたら、また補足してください。
    • good
    • 0

すみません。



回答ではありません。ご質問の事をするとしたら、VBAでプログラムを書く必要があります。大変な労力が必要になります。

百円ショップで、ビンゴの用紙を売っていますので、そちらの方が早いかと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!