- 締切済み
エクセルの乱数発生についてお尋ねします。
rand()のような関数のファミリーを使うと乱数が発生できます。 そこで、ある程度広がりを持ったシート内に乱数を発生させました。 それは満足していますが、マウスで処理をしたり、何かをアクティブにしたり非アクティブにしたりする操作をすると、乱数が毎回発生してしまいます。シートの数字がパッと変わるのです。 乱数を発生させるタイミングがコントロールできていないわけですが、どのように考えたらいいでしょうか。1回乱数を発生させたら固定したままで、”では、ここで乱数を発生させる”というコマンドの出し方なのですが。エクセルではどうしたらいいでしょうか。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- Chiquilin
- ベストアンサー率30% (94/306)
数式を使っている以上 自動計算を手動にしない限り 揮発性関数 の結果は随時再計算されます。 > 1回乱数を発生させたら固定したままで ということなら数式ではできません。マクロでランダム値を発生 させて「値」として入力します。 VBAはさっぱりということであれば 手作業が必要です。 RANDを作成した列をコピーして それを横の列に「値貼り付け」
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
>どのように考えたらいいでしょうか。 RAND関数は「評価するたびに新しい乱数を発生する」ようになっています。 例えば、シートを「再表示する」とか「アクティブにする」とか「非アクティブにする」とか「F9キーで再計算する」とかの処理をすると、再評価され、乱数が再発生します。 ですので、乱数が入ったセルを「コピー」して、そのまま「形式を指定して貼り付け」⇒「値」で貼り付けして、値として貼り付けて固定する必要があります。 なお「値にして貼り付け」すると、乱数の再発生は出来なくなるので、新しい乱数を再発生させたい場合は「=RAND()」のように、数式にRAND関数を入力し直す必要があります。
- imogasi
- ベストアンサー率27% (4737/17069)
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q118875531 のベストアンサー 計算方法を手動にするか乱数発生後に コピー→形式を選択して貼り付けで「値」にするしか方法は無いのでは ※VBAで作成すれば数式がSheet上には存在しないので固定できます ーー WEBで、「エクセル 乱数 固定」などで、照会してみたか。
- Nobu-W
- ベストアンサー率39% (725/1832)
https://okwave.jp/qa/q5436554.html 過去に同じような・・・