エクセルでRAND関数を使ってるんですけど、シート1、セル5個にRAND関数を入れればセル5個とも数字が変わりますよね。それはそれでもいいけど、
シート2の方にもRAND関数をセル5個にいいれればこっちも変わってしまうんです。シート1をしてるときは、シート2は、変わらないんでほしいんです。
なにか方法はありますか?
ついでに、同じシートでセル1つ1つが単独で変われないですか?

このQ&Aに関連する最新のQ&A

A 回答 (3件)

先ほどのツール/オプション/計算方法を手動にする


の条件で「SHIFT」+「F9」で該当シートのみの計算となりますが、ファイルセーブして再度ファイルを空けるときに
自動計算されてしまいます。
=RAND()を数式バーにあるうちに「F9」を押すとその時点の
乱数がセルに数値として張り付きますが、それ以降は数値ですから乱数には戻りません。
貴方の使用方法が分かりませんので、試してみた結果を記載しますが、どうも仕様に合わないような気がします。
すいません!
    • good
    • 0
この回答へのお礼

やったー!でけた!!
“「SHIFT」+「F9」で該当シートのみの計算となりますが”
これが重要でした!
さすがに1つのセルだけとまではいかないけど、シート1と2を単独でできました。先ほどの説明でわからなくて、お手数かけました!
ありがとうございました。

お礼日時:2001/05/11 14:00

セルに算式を書き込むと、お望みの制御は難しいようですね。

別法を考えてみました。

乱数を発生させたい箇所をSheet1、Sheet2ともA1からA5としています。(変更可能です)
乱数を発生させた後はA1は再計算で乱数を発生させ、A2からA5は変更されないようにしています。
また、Sheet1のA1が変更されてもSheet2のA1からA5は変更されません。逆も同じです。
この方法は何枚のシートがあっても他のシートの変更に干渉されないはずです。

***設定方法***
まず、Sheet1、Sheet2のA1からA5には何も入力しません。
VBE画面でSheet1のモジュールとしてSheet1用のマクロ(Worksheet_Change)を貼り付けます。

'*** Sheet1用 ***
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If ActiveSheet.Name = "Sheet1" Then
If Target.Address = "$A$1" Then
If Range("A2") = 0 Then Range("A2") = Rnd()
If Range("A3") = 0 Then Range("A3") = Rnd()
If Range("A4") = 0 Then Range("A4") = Rnd()
If Range("A5") = 0 Then Range("A5") = Rnd()
End If
Application.EnableEvents = False
Range("A1") = Rnd()
Application.EnableEvents = True
End If
End Sub


同様にVBE画面でSheet2のモジュールとしてSheet2用のマクロを貼り付けます。
乱数発生セルを変更される場合は、マクロの番地を修正して下さい。

'*** Sheet2用 ***
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If ActiveSheet.Name = "Sheet2" Then
If Target.Address = "$A$1" Then
If Range("A2") = 0 Then Range("A2") = Rnd()
If Range("A3") = 0 Then Range("A3") = Rnd()
If Range("A4") = 0 Then Range("A4") = Rnd()
If Range("A5") = 0 Then Range("A5") = Rnd()
End If
Application.EnableEvents = False
Range("A1") = Rnd()
Application.EnableEvents = True
End If
End Sub

***乱数の発生***
シートに戻り、A1セルに何かを入力します。(スペースとか。そしてEnter)A1からA5に乱数がセットされます。
これ以降はシートに何か変更が起きるとA1だけが新たな乱数になります。A1でEnterしても変わります。
A2からA5を新たな乱数にしたい場合はこの範囲を消去してA1を選択してEnterです。

セルに算式をセットしてないので保存して再度開いても変更されないはずです。
実際にはA2からA5セルは連続な範囲ではないかもしれませんが、これらの範囲に範囲名を付けておけば簡単に消去できると思います。
お望みのものか試して見て下さい。(実用的か判断できないもので)
    • good
    • 0
この回答へのお礼

なんかマクロとか出てきたら頭から煙が出てきました。
だけどいい機会なので理解できるようにガンバッテチャレンジしてみます。
ありがとうございます。

お礼日時:2001/05/11 14:02

ツール/オプション/計算方法で


手動でシート再計算の釦クリックで表示している
シートの範囲のみRAND関数値は変わりませんでしたよ。
他に規制があるかもしれませんが、試してみて下さい。

この回答への補足

早速のアドバイスありがとうございます。
実際やってみましたが、ダメでした。
シート1は出来上がってそのままの表示された数字でいてほしいんですけど
シート2でF9ボタンを押すと、シート1まで変わってしまいます。
どうしたもんでしょうかね?

補足日時:2001/05/11 10:51
    • good
    • 0

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

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

Qエクセル関数/任意の桁数の数字1個1個を別々のセルに読み込む関数

こんにちは
例えば、あるセルに123456という6桁の数字が入っていたとして、1、2、3、4、5、6の6個の数字をそれぞれ別々の(6個の)セルにコピーしてくれるようなエクセル関数はあるでしょうか?

Aベストアンサー

G列に入力した最大6桁の「数値」の、一の位はF列に、十の位はE列
に…と桁毎に分離したいと。小数点以下を無視した基本は、

F1: =mod(int(G1/1),10)
E1: =mod(int(G1/10),10)
D1: =mod(int(G1/100),10)

以下、察して下さい。で、これはブランクでも全部の桁に0が入りま
すね。途中の桁の0は表示して、余分なヤツだけ見えないようにする
工夫が必要です。たとえば

F1: =if(int(G1/1),mod(int(G1/1),10),"")
E1: =if(int(G1/10),mod(int(G1/10),10),"")

みたいな感じはいかがでしょう。

QExcel で、別シートの5つのセルをもう一つのシートのあるセルにひとまとめにする方法?

Excel で、別シートの5つのセルをもう一つのシートのあるセルにひとまとめの値とする方法がありましたら、教えてください。

Aベストアンサー

#2です。補足ありがとうございました!

こんなかんじでも出来ますね。


Sheet1 A1 に1
Sheet2 A1 に2
Sheet3 A1 に3
Sheet4 A1 に4
Sheet5 A1 に5

が入力されているとし、集計結果を表示するシートの任意のセルに

=Sheet1!A1&Sheet2!A1&Sheet3!A1&Sheet4!A1&Sheet5!A1

と入力すると、そのセルの計算結果は12345になります。

Qエクセルでシート1のセルに入力すると別シートのセルに表示させるには

依頼されて会員証をエクセル2003で作っている最中です。
SHEET1に下記の様に会員証のベースを作ました。

[●●●の会]
会員番号 [SHEET2の会員番号列]
住所 [SHEET2の住所列]
氏名 [SHEET2の氏名列]
電話番号 [SHEET2の電話番号列]
[管理社名]

SHEET2にまだ空欄ですが、会員番号・住所・氏名・電話番号のリスト表を作りました。

ここからが課題でして、SHEET2に会員番号、住所とセルに打ち込んでいくと

SHEET1のそれぞれに対応したセルに表示させる為に

SHEET1のセルに、[=Sheet2!A3]と打ち込めば、

SHEET2のA3のセルが対応されますが、

これではそのセルしか対応しません。

SHEET2の1行目に会員番号、住所から打ち込んだものは、

単純にSHEET1の表示させたいセルに[=SHEET2!○○]を打ち込めば、

それが対応されます。

ただSHEET2の2行目は空白ですので、新たに打ち込んで対応させようとしても出来ません。

毎度毎度SHEET1の表示させたセルに[=SHEET2!○○]をしていくのは大変です。

新規にリストを打ち込むたびにSHEET1の会員証に

表示させる方法はどういったものがあげられるのでしょうか?

或いは、SHEET1の会員証ベースに打ち込んでいくとSHEET2のリストに

自動的に登録される仕組みの方がやりやすいのでしょうか?

数式も教えていただければ大変有難いです。

アクセスの方がやりやすいかもしれませんが、

依頼した方のPCにはアクセスは入っていないですし、

私自身もアクセスはイマイチの部分があります。

エクセルのマクロなるものを使えません。

年始早々に使用したいとの事ですので、
なんとか仕上げてあげたいとは思います。
宜しくお願い致します。

依頼されて会員証をエクセル2003で作っている最中です。
SHEET1に下記の様に会員証のベースを作ました。

[●●●の会]
会員番号 [SHEET2の会員番号列]
住所 [SHEET2の住所列]
氏名 [SHEET2の氏名列]
電話番号 [SHEET2の電話番号列]
[管理社名]

SHEET2にまだ空欄ですが、会員番号・住所・氏名・電話番号のリスト表を作りました。

ここからが課題でして、SHEET2に会員番号、住所とセルに打ち込んでいくと

SHEET1のそれぞれに対応したセルに表示させる為に

SHEET1のセルに、[=Sheet2!A3]と...続きを読む

Aベストアンサー

>次のA3に会員番号00002として打ち込み、会員種類を法人、以下違う人の名前や電話番号などを打ち込んでも、SHEET1では会員番号が変わるだけで、他は1行の情報のままです。。。。。。

=IF(B2="","",ROW())
こちらの式はA2セル入力の後下方向にコピーしてください、Sheet2の会員番号は会員種類に入力があると自動的に表示されます、直接入力はしないでください。
表示形式を00002としたいのであれば、Sheet2のA列とSheet1の会員番号セルをセルの書式設定のユーザー定義で00000としてください。

て入力で00002と入力してその表示になっているので有ればそれは文字列として設定されていると思います、文字列の場合はSheet1の会員番号の呼び出しのMAX関数が働きません。


>OFFSETは基準の端から端までを考えなくても良いという事で、会員番号の最大値と最終行は等しいから、C2でも良いし、D2でも良いのでしょうか?
>OFFSETの行数設定で(A:A)ではおかしい事になるのでしょうか?

OFFSETで求めているのはVLOOKUP関数の検索範囲の右下のセル番地です
http://officetanaka.net/excel/function/function/offset.htm
OFFSETの図解説明のサイトです。

>次のA3に会員番号00002として打ち込み、会員種類を法人、以下違う人の名前や電話番号などを打ち込んでも、SHEET1では会員番号が変わるだけで、他は1行の情報のままです。。。。。。

=IF(B2="","",ROW())
こちらの式はA2セル入力の後下方向にコピーしてください、Sheet2の会員番号は会員種類に入力があると自動的に表示されます、直接入力はしないでください。
表示形式を00002としたいのであれば、Sheet2のA列とSheet1の会員番号セルをセルの書式設定のユーザー定義で00000としてください。

て入力で000...続きを読む

Qエクセルでシート名をセルに入力しておき、そのセルの内容を使ってシートを参照したいのですが

タイトルのとおりです。

シートは1~31日で1ヶ月分作りました。
まとめ表は、32枚目のシートに作ります。

32枚目のシートのセルに
SUM('1日'!A1:A5)
SUM('2日'!A1:A5)



と入力するよりも、1日、2日というシート名の
部分を32枚目のシートのA1~A31までに見出し?としてセルに文字を入力しておき、
それを関数に利用したいのですが、どのようにしたらいいのでしょうか?

Aベストアンサー

INDIRECT関数を使います。

A1セルに”1日目”、
A2セルに”2日目”、
・・・・・・
と入力されていて、
B1セルに1日目のA1:A5の合計を出すとすると、B1せるに

=SUM(INDIRECT(A1&"!A1:A5"))

と入れます。この式をB31までコピーします。

注意としては、セルに入れた、○日目とシート名の○日目の
○の数字の部分の全角、半角を揃えておくこと。
違うとエラーになります。

Q別のワークシートやファイルから特定のセルの値を現在使用しているシートの特定のセルに転記する方法は?

同じファイルの中で、「報告用紙」というシートと「28.12.24」「28.12.12」という2種類のシートがあると仮定します。「報告用紙」のセルA2に、「シート28.12.24」のセルC12をコピーし、同じく「報告用紙」のセルB3に「シート28.12.12」のセルB12をコピーするにはどうすればいいでしょうか?

Aベストアンサー

「報告用紙」のセルA2に
 =28.12.24!C12
「報告用紙」のセルB3に
 =28.12.12!B12

他のシートのセルを参照するときは
 =シート名+!+セル番地
のようにして参照します。

これが異なるBookであれば、
 =[+ブック名+]+シート名+!+セル番地
のように指定します。

※「!」「 [ 」「 ] 」は半角文字です。


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

おすすめ情報