- 締切済み
Excel2003のRAND関数のバグは再現する?
Excel2003のRAND関数には(本来返ってくるはずのない)負の乱数をまれに返してくるというバグがあることが知られています(下記のMS社サイトをご参照ください)。 http://support.microsoft.com/default.aspx?kbid=834520 私が使っていたExcel2003はパッチ適用済みのSP-1のため、この不具合は起きなかったのですが、先日、たまたまハード的なトラブルがあり、PCを OS(Windows XP)から再インストールする必要が生じたため、Office2003(無印の初期出荷バージョンです)をインストールした直後にこのRAND関数の不具合を確かめてみようと思い、画面いっぱいにRAND関数の数式を500個ぐらい作成して、200回以上再計算を実行させてみたのですが、1つもこの不具合が再現しません。 この不具合については、英語で書かれたサイトをGoogleしてみると、画面図入りでこの不具合を説明しているページがいくつか見つかりますが、日本語のサイトでは「~らしい」とか「~によると」といった伝聞形で紹介しているページばかりで、実際に不具合が出ている画面を掲載しているページは見あたりません。 それゆえ、ひょっとしたら、この不具合は(上記のMS社サイトには何も書かれていませんが)英語環境 あるいは英語版Officeに限って発生するものかな?と思っていますが、実際にこの不具合に出合った方 あるいは今でも再現できる方がいましたら、ぜひ、どんな環境で再現するのか、ご教示ください。よろしくお願いします。 ちなみに、別にこの不具合で困っているワケではありませんので、対応策についての回答は不要です。たまに人にExcelなどを教える機会があるため、知識として知っておきたいという趣旨です。 ※この質問、2週間ほど前に一度投稿しましたが、回答がありませんでしたので、再投稿するものです。マルチレスではありませんので、ご了解ください。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- tokpy
- ベストアンサー率47% (1313/2783)
すみません。式が間違っていました~。1行目を セルA1:=SUM(B1:IV1) セルB1=SUM(B2:B65536) セルD1=SUM(D2:D65536) ・・・ にしてください。
- tokpy
- ベストアンサー率47% (1313/2783)
入力規則は式には使えないんですか~。それは盲点でした。どうもありがとうございます。勉強になりました。こうなったら,力業でこんなのはどうでしょう? セルA1:=SUM(A2:AIV) セルB1=SUM(B2:B65536) セルD1=SUM(D2:D65536) ・・・ セルA3:=RAND() セルB3:=IF(A3<0,A3,0)・・・ セルA4:=RAND() セルB4:=IF(A4<0,A4,0)・・・ ・・・ このようにエクセルの表全部を式で埋め,マイナスの値があれば,セルA1に表示させる,というものです。これなら「F9」押しっぱなしでマイナスが出るかどうかわかるかもしれません。 しかし,答えが分かったところでしょうがないんだけど,どうして確かめたくなるのかな?そこにBUGがあるからだ!(意味不明)
- tokpy
- ベストアンサー率47% (1313/2783)
「F9」は押しっぱなしでもいいみたいですね。すみません。 この方法なら200回と言わず,10000回でも楽勝かもしれませんね!
- tokpy
- ベストアンサー率47% (1313/2783)
知っていたらごめんなさい。 画面いっぱいにRAND関数の数式を500個ぐらい作成している,とのことですが, 『メニューの「データ」→「入力規則」で,「設定」の条件を「0」より大きい数字にして,負の数になったら「エラーメッセージ」で停止するようにしておき,ひたすら「F9」を連射』 してみれば,もしかしたら再現できるかもしれません。(私はExcel2000ユーザーなので実験できませんけど) 発生する確率がかなり低い現象の場合,それなりの回数を稼がないと再現できないと思いますが,この方法であれば,回数を稼ぎやすいのでは?
お礼
tokpyさん、書き込みありがとうございます。 実際には条件付き書式を使ってマイナス値になったら赤字になるように設定して実験をやっています。 最初、そこら辺も詳しく質問に書き込んだのですが、文字数制限に引っかかったため、すべて省略したものです。ご理解ください。 500個×200回ですから、ざっと10万回は再計算を行った計算ですが、1回も再現していません。 米国サイトでの書き込みではもっと高い頻度で起きているような印象でしたので、今のところはやはり日本語版では起きないのかな?と思っています。 もし、なにかわかりましたら、続報をお願いします。
お礼
せっかく、ご提案戴いた「入力規則」を用いる方法ですが、これは(その名前の通り)あくまでキー入力する値に適用されるものであって、数式が返す値には適用されませんので、このケースでは使えないかと思います。