「エクセルの乱数関数を用いて、0~1の乱数を100個発生させなさい」という問題があるんですが、どうしてもわかりません。RANDをつかうらしいですが。ぜひとも教えてください。

A 回答 (1件)

適当なセルに =RAND() と代入して


それを100個コピーするとかじゃだめなんですか?

それともVB使って書けってことかな?
    • good
    • 0
この回答へのお礼

あは、できました。どうもありがとうございます。

お礼日時:2000/12/18 21:52

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

このQ&Aと関連する良く見られている質問

Qエクセル関数。RAND。乱数の出し方。

今日会社で聞かれました。
乱数の整数を出したいのですが、
この=RANDBETWEEN(a,b)( aとbは任意の整数を入れてました。)
だと、少数ででてきてしまって、整数だけの乱数でないために、数値で、桁数を0にして表示させると
同じ整数がでてくることになってしまうのです。
整数だけの、乱数を出す方法はないでしょうか????切実に急いでます。誰か助けてください!!

Aベストアンサー

1から10までなら、
=int(rand()*10+1)
となりますし、1から100までなら、
=int(rand()*100+1)
とすると、可能かと思います。

QEXCELで乱数 -RAND関数について

Excelの乱数 Rand()について教えて下さい。
入力セルの数値変更をする度に各Rnad()のセルの
値が更新されますがこれを固定する方法を教えて下さい。
また「更新」と「更新の禁止」を切り替えるにはどうすればいいか
御願いします。

Aベストアンサー

こんにちは

[ツール]→[オプション]→[計算方法]にて計算方法を手動にします。
必要であれば、保存前に再計算のチェックを外します。

手動になれば、[F9]を押すたびに再計算されますので、これが更新になると思われます。
更新の禁止は[F9]を押さないという事で良いでしょうか?
明示的に更新されないというのはRAND()を含むセルを更新しないように数値化してしまうとかを考えなくてはなりません。

QExcel で、乱数時のでてくる数字、0から9の数の比率をほぼ同じにする方法

Excel で、乱数時のでてくる数字(けた数が多い時も含め)、0から9のでてきた数字の比率を計算する方法と、その比率をほぼ同じにする方法はありますでしょうか。

Aベストアンサー

#5です。

前期の方法は、各桁中の数字の比率も同じに・・・、と誤解して書いていました。ので、訂正します。

ただ、乱数を出しながら比率を合わせていくよりも、最初から希望する比率分の数字を決めた方が効率的だと思います。たとえば、よくきったトランプを4枚ずつ並べると4桁の乱数みたいになります。この方式でマクロを書きました。

セル範囲A1:A10に、0から9を入れます。
セル範囲をオートフィルで右へ必要な桁数だけコピーします。例えばH列までコピーすると8桁の数字が出来ます。下記のマクロを実行するとシャッフルされた表と、表を変換した数字が出来上がります。

このマクロはA1にかかる表を、その列数の桁の数字に変換します。左端に0がでた場合は、乱数を元に位置を変えますので、出来上がる数字の桁は必ず揃います。8桁の数字が100個欲しい場合は、上記の例のものを9個下へコピーしてからマクロを実行すればいいわけです。

# 元になる表中に空白のセルがあると、そのセルの値は0とみなされます。表の周囲のセルには何も記入しないでください。同じ数字が複数できたかどうかのチェックはしていません。

# ご質問の趣旨を逸脱した内容ですみません。余計なお世話かな~と思いながら、ボケ防止のために書いております。

Sub Shuffle2()
Dim myRange As Range, c As Range, rC As Integer, cC As Byte
Dim Rv As Byte, i As Integer, n As Integer, lC As Currency
Dim k() As Byte, d As Currency

With Range("A1").CurrentRegion
rC = .Rows.Count
cC = .Columns.Count
lC = .Cells.Count
Set myRange = .Offset(0, cC + 1)
myRange.Value = .Value
End With
ReDim k(lC)
For Each c In myRange
i = i + 1
k(i) = c.Value
Next c
Do
i = Int((lC - 1 + 1) * Rnd + 1)
n = Int((lC - 1 + 1) * Rnd + 1)
Rv = k(i)
k(i) = k(n)
k(n) = Rv
d = d + 1
Loop Until d = lC * 300
i = 0
For Each c In myRange
i = i + 1
c.Value = k(i)
Next c
If cC = 1 Then Exit Sub
With Application.WorksheetFunction
Do While .CountIf(myRange.Columns(1), 0) > 0
i = .Match(0, myRange.Columns(1), 0)
If .CountIf(myRange.Rows(i), 0) = cC Then
MsgBox "0 が出来てしまいました、途中ですが終了します。"
Exit Sub
End If
Set c = .Index(myRange, i, Int((cC - 1 + 1) * Rnd + 1))
myRange.Columns(1).Rows(i).Value = c.Value
c.Value = 0
Loop
End With
i = 0
Do
n = cC
i = i + 1
d = 1
lC = 0
Do
lC = lC + myRange.Rows(i).Columns(n).Value * d
d = d * 10
n = n - 1
Loop Until n = 0
myRange.Rows(i).Columns(cC + 1).Value = lC
Loop Until i = rC
Columns(cC * 2 + 2).NumberFormatLocal = "_ * #,##0_ ;_ * -#,##0_ ;_ * ""-""_ ;_ @_ "
End Sub

#5です。

前期の方法は、各桁中の数字の比率も同じに・・・、と誤解して書いていました。ので、訂正します。

ただ、乱数を出しながら比率を合わせていくよりも、最初から希望する比率分の数字を決めた方が効率的だと思います。たとえば、よくきったトランプを4枚ずつ並べると4桁の乱数みたいになります。この方式でマクロを書きました。

セル範囲A1:A10に、0から9を入れます。
セル範囲をオートフィルで右へ必要な桁数だけコピーします。例えばH列までコピーすると8桁の数字が出来ます。下記のマク...続きを読む

Qエクセル データの抽出。延べ数を構成する個の数を求める。

エクセル初心者です。
エクセルでに下のように500人ほど人名(a b c d e f・・・)が無作為乱雑に列挙されています。

c d d c c b b a a d d d a a b b c c a a b b c c c c c c a c c c d e e e d d e e e・・・500人分

のべ500人のうち、一度でも出現していた人名を上手く抽出できますでしょうか?

最終的に求めているのは、一度でも出現していた人名の「数」ではなく、「一度でも出現していた人名それ自体」を新しいシートなりで利用したいのです。

ご教示願います。

Aベストアンサー

縦方向に氏名があるのなら
「データ」「フィルタ」「フィルタオプションの設定」で「重複するデータを無視する」にすれば
重複した行は非表示の状態になります。これをコピーして張り付けるなり
抽出先を指定した範囲(現在開いているシート上)にすれば抽出可能です。

QEXCEL 乱数発生の記録

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ベストアンサー

つぎの方法でできます。
反復計算を利用した方法です。

(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に戻すとリセットされる。


このカテゴリの人気Q&Aランキング

おすすめ情報