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

A1~C1 に0~9の乱数を発生[=RANDBETWEEN(0,9)]させ
Dの列に再計算[F9を押す]の回数、E~Gの列に出た乱数の値を入れたいのですが、関数で可能でしょうか。

  D E F G
1  1 2 5 7・・・1回目は 2,5,7が出た。
2  2 8 1 0・・・2回目は 8,1,0が出た。
3  3 9 4 4・・・3回目は 9,4,4が出た。
4  4 0 3 2・・・4回目は 0,3,2が出た。

このように再計算を行うと下の行に追加していきたいのですが、可能でしょうか。
宜しくお願いします。

A 回答 (4件)

つぎの方法でできます。


反復計算を利用した方法です。

(1)ツール→オプション→計算方法 で、「自動」と「反復計算」にチェックを入れ、最大反復回数を1にする。
(2)E1に、=IF($H$1>=ROW(E1),IF(ISNUMBER(E1),E1,A$1),"")
(3)E1をF1,G1にコピー
(4)H1に、=IF(I1=0,0,H1+1)
(5)I1に、0
(6)E2に、=IF($H$1>ROW(E2),IF(ISNUMBER(E2),E2,A$1),"")
(7)E2を、E2~G100(など、必要なだけ)コピー
(8)D1に、=IF(ROW(D1)<$H$1,ROW(D1),"")
(9)D1を、D2~D100(など、必要なだけ)コピー
(10)ここで、I1を1に変える。
(11)F9を必要な回数押すと乱数が記録される。
(12)I1を0に戻すとリセットされる。
    • good
    • 0
この回答へのお礼

早々のご解答有難う御座います。
出来ました。私のやりたかった通りです。
ただ、1回目と2回目に同じ数字が入りますが
全然問題ありません。
自分で解決してみたいと思います。
ただ今、関数の勉強中ですので、また質問すると思いますが、よろしくお願いします。

有難う御座いました。

お礼日時:2005/03/18 08:54

>A1~C1 に0~9の乱数を発生[=RANDBETWEEN(0,9)]させ


マクロは以下のとおりなのですが、この乱数には、癖があったような気がします。
思ったよりも出方が決まっているということです。これは、PCのランダム発生のメカニズムで、そのつど初期化しないと、決まった型になってしまうのだったと思います。
出来れば、乱数発生を(初期化=Randomizeしながら)、マクロで行うほうが良いかもしれません。
とりあえず、様子をみてください。

シートタブのところで、右クリック-コードの表示で、クリック
後は、以下を貼り付けてください。

Private Sub Worksheet_Calculate()
 Dim ary
 Dim rng As Range
 Application.EnableEvents = False
 ary = Range("A1:C1").Value
 Set rng = Range("D65536").End(xlUp)
 If Not IsEmpty(rng) Then
  Set rng = rng.Offset(1)
  rng.Value = Application.CountA(Range("D:D")) + 1 & "回目"
  Else
  Range("D1").Value = 1 & "回目"
 End If
 rng.Offset(, 1).Resize(, 3).Value = ary
 Set rng = Nothing
 Erase ary
 Application.EnableEvents = True
End Sub
    • good
    • 0
この回答へのお礼

早々のご解答有難う御座います。
関数を十分理解した上で、マクロの勉強をしたいと
思っています。
ただ今、関数の勉強中です。
いただきましたコードもノートに記載しておき、
マクロの勉強の際に、役立てたいと思います。
有難う御座いました。

お礼日時:2005/03/18 08:48

マクロで例えば10回計算させるなら以下のようなコードでできます。




Sub Sample()
For i = 1 To 10
Range("A1:C1").Copy
Range("E50000").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
Calculate
Next i
End Sub
    • good
    • 0
この回答へのお礼

早々のご解答有難う御座います。
関数を十分理解した上で、マクロの勉強をしたいと
思っています。
いただきましたコードもノートに記載しておき、
マクロの勉強の際に、役立てたいと思います。
有難う御座いました。

お礼日時:2005/03/18 08:46

関数でやるなら、E1~G4などの範囲にすべ=RANDBETWEEN(0,9)を入力するのが良いと思うのですが、回数を分ける意味はあるのでしょうか?



回数を分ける場合はマクロ(A1:C1の値貼り付け)で対応するしかありません。
    • good
    • 0
この回答へのお礼

早々のご解答有難う御座います。
乱数で発生した3けたの数字を記録を残したかったので
E1~G4などの範囲にすべ=RANDBETWEEN(0,9)を入力する
では、記録を残せない為質問しました。
有難う御座いました。

お礼日時:2005/03/18 08:42

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