- 締切済み
excelで指定した範囲の時刻をランダム入力させたい!
excelで指定した範囲の時刻をランダム入力させたい! excelの関数で悩んでいます。。 具体的には 「午前10時30分00秒から午前10時45分00秒の時刻をランダム入力させたい」です。 表示形式は「h:mm:ss」です。 よろしくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
追記。 INT関数やMOD関数を使って変な事をしているのには理由があります。 一つは「RAND()関数では、0が滅多に出ない」からです。 実際、50000回RAND()関数を実行しても、0は1回も出ませんでした(0にかなり近い値はでますが) 同様に「1に限りなく近い1未満の値」の、なかなか出ません。 実は、擬似乱数は「出る数値に、けっこう偏りがある」のです。 なので「10倍の個数の乱数を作って、余りを使う」ことで乱数の偏りを軽減させているのです。
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
=MOD(INT(RAND()*9010),901)/86400+"10:30:00" 10:30:00から10:45:00までは「901個ある」ので、最初に0から900まで、901個の乱数を作ります(時間は900秒間だけど、時刻の個数は901個ある事に注意) RANDは「0以上1未満の小数」を返すので、9010倍して「0以上9010未満」にします。 それを「INT関数で小数点を切り捨て」して「0から9009までの9010個の整数」にします。 更にそれを「MOD関数で、901で割った余り」にして「0から900までの901個の整数」にします。 「1秒は、EXCELの中では1/86400で表わす」ので、0~900の整数を86400で割ります。 あとは「10:30:00を足す」だけです。 これで「10:30:00から10:45:00まで、1秒単位のランダムな時刻」が出ます(10:30:00も10:45:00も発生するのを確認済み) 秒でなく「分」でやる場合は「901個」の部分を「16個」に変えて「1分は1/1440」を考慮して書き替えれば可能です(やはり「時間は15分間だけど、時刻が16個ある」という点に注意すべし)
- KURUMITO
- ベストアンサー率42% (1835/4283)
次のようにしてはどうでしょう。 RANDBETWEEN関数は整数の間でランダムに数値を表示させる関数です。時刻は小数点以下の数値を含むシリアル数ですがこれらの値を整数にしてその間でランダムな数値を求めその値を再び元の数値の桁に戻すことで時間を表示させる事にします。 =RANDBETWEEN("10:30:00"*10^8,"10:45:00"*10^8)/10^8 表示形式はh:mm:ssで結構ですね。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 外していたらごめんなさい。 一例です。 ↓の画像のようにデータの表を作成しておきます。 C2セルに 10:30:00 C3セルに 10:30:01 と入力して、C2・C3セルを範囲指定し、C3セルのフィルハンドルで下へずぃ~~~!っとコピーします。 D2セルは =RAND() としてこれもオートフィルで下へコピー 画像では1秒単位でのデータにしていますが、もし1分単位でよいのであれば C3セルは 10:31:00 としてください。 そして、結果のA2セルに =INDEX(C:C,MATCH(MIN(D:D),D:D,0)) という数式を入れています。 これでF9キーを押すたびにランダムに時刻が表示されると思います。 以上、長々と書きましたが 参考になれば幸いです。m(__)m
完全なランダムではないけど、次式でお茶を濁せるかと ="10:30"+("10:45"-"10:30")*RAND()
- f272
- ベストアンサー率46% (8469/18131)
午前10時30分00秒=(10+30/60)/24=42/96 午前10時45分00秒=(10+45/60)/24=43/96 ですから =(RAND()+42)/96 としてください。 午前10時30分00秒以上で午前10時45分00秒未満の時刻が出てきます。 ちょうど午前10時45分00秒も出る可能性があるほうが良いですか?