
子供の算数の問題を作成するために考えているのですが、Excel で10個のセルに、0から9を一つ一つランダムに表示したいのです。ただ、一度使用した数字は、二度と使用しないようにするためにいい方法はないでしょうか。
例1 2.5.8.6.3.9.7.4.1.0
例2 1.4.7.2.0.5.8.3.6.9
など、乱数等を使用した方がいいと思うのですが、if関数は、最大7つまでしか、判断だきないそうです。
ランダムであり、一度使用した数字は、使用せず、0から9をそれぞれ表示する方法は、ないでしょうか。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
例えばA1~A10にRAND()をいれ、
B1にRANK(A1,A$1:A$10)-1
と言うようにB10までいれれば、
0~9までの数値をランダムに表せます。
RANDで同じ数値が出た場合は、同じ数字が2つになりますが・・・
この回答への補足
上記を参考にさせていただきできました。
つまり、別シートに多き目の数値乱数を作成し、その乱数表から本来のシートに必要なRANK関数で指定しました。ただ、0がでず、10になってしまうので、全体にif関数を使用してRANKが10になる時のみ、0に指定しました。
本当にありがとうございました。
No.9
- 回答日時:
0から9までの数字を作るだけですが、VBAでやってみました。
A1から10行分を作ります。サイコロを振ってでた目で、一つ一つのセルを埋めていく方式です。
最後のほうの、
Loop Until p = 10
の、10を他の数字に変えれば、その数字分の行数を埋めることができます。32767まで指定できます。
Sub Saikoro()
Dim i As Byte, c As Range, myRange As Range
Dim b As Byte, p As Integer
Set myRange = Range("A1", "J1")
Do
myRange.Value = 10
i = 1
Do
b = Int((9 - 0 + 1) * Rnd + 0)
For Each c In myRange
If c.Value = b Then
Exit For
End If
If c.Column = i Then
c.Value = b
i = i + 1
Exit For
End If
Next c
Loop Until i = 11
Set myRange = myRange.Offset(1, 0)
p = p + 1
Loop Until p = 10
End Sub
No.7
- 回答日時:
#3です。
いろいろ考えてみましたが、なかなかしっくりくるのが思い浮かびませんでした・・・。
とりあえずrand()*rand()ぐらいで桁数を増やせば、
同じ数字がでることは確率的にはほとんどなくなりますが・・・。
1シートで利用するセルだけで0~9を振り分けるのはちょっと難しそうです。(VBAを使えばできそうですが・・・15パズルを作るのと同じ要領ですので。)
やはり別シートで乱数を発生させてrank()-1で計算させるのが楽そうです。
あ、rank()のあとの-1が重要ですよ。
これがないと1~10のランクになってしまうので、
-1で0~9の数値に変換しています。
ご希望に添えず、すいません。
No.6
- 回答日時:
#5さんのやり方はvbaで可能でしょうね。
ifで10の時って言うのもいいですけど、
-1でもいいですね
No.1
- 回答日時:
=INT(RAND()*10)
では
>二度と使用しないようにする
ことが出来ませんので、分析ツールを使います。
参考URLへ。
参考URL:http://deisuitei.pinky.ne.jp/excel/excel10a.htm
この回答への補足
早速のご返事誠にありがとうございます。
上記サイトを見て、自分で試してきました。
上記サイト通りに実施したのですが、「乱数発生離散確率の列の合計は、1になります。」とヘルプがでてしまいます。
上記、方法で、0から9の乱数がかならず、二回使用しないように、同時に表示できるのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】数式を入力したい。...
-
同じ名前(重複)かつ 日本 ア...
-
if関数の複数条件について
-
excel
-
エクセルでフィルターした値を...
-
エクセルシートの見出しの文字...
-
表計算ソフトでの様式の呼称
-
Dir関数のDo Whileステートメン...
-
エクセルに写真が貼れない(フ...
-
エクセルのライセンスが分かり...
-
【関数】3つのセルの中で最新...
-
【関数】=EXACT(a1,b1) a1とb1...
-
【Officer360?Officer365?の...
-
エクセルの文字数列関数と競馬...
-
LibreOffice Clalc(またはエク...
-
【マクロ】【画像あり】4つの...
-
【マクロ】【画像あり】4つの...
-
セルにぴったし写真を挿入
-
オートフィルターの絞込みをし...
-
エクセルの複雑なシフト表から...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】実行時エラー '424':...
-
エクセルのVBAで集計をしたい
-
Office2021のエクセルで米国株...
-
【画像あり】オートフィルター...
-
vba テキストボックスとリフト...
-
他のシートの検索
-
【マクロ】【相談】Excelブック...
-
【マクロ】【配列】3つのシー...
-
【マクロ】元データと同じお客...
-
【マクロ】数式を入力したい。...
-
【マクロ】左のブックと右のブ...
-
エクセルの関数について
-
エクセルのリストについて
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】excelファイルを開く...
-
【関数】3つのセルの中で最新...
-
エクセルの複雑なシフト表から...
-
【マクロ】【画像あり】❶ブック...
-
LibreOffice Clalc(またはエク...
おすすめ情報