- ベストアンサー
エクセルでランダム表示したい
エクセルのセルA1からセルA20までとか「MM/DD/YYYY hh:mm:ss」の形式でランダム表示させる関数なんてあるでしょうか? できれば、3月1日~5月31までとか期限を制限してランダムに表示できたらうれしいです。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
="3/1"+RAND()*91.9999 #1、#2、#3さんいずれの方法でもいいと思いますが、あなたがソートすると自動で再計算されてしまうので、元のデータとは変わってしまい、昇順、降順にならないのです。 ソートをするなら自動再計算を停止するか、関数ではなく、値でコピー/貼り付けしてからでないとだめです。 自動再計算を停止するには、(Excel2003なら)、ツール―オプション―計算方法で、 計算方法、「自動」を「手動」にする。(今ここにExcel2003より高いバージョンがないが、2007,2010ではオフィスボタンでオプションを選べたと思うが) 値でコピー/貼り付けするのは、範囲を選択コピーして同じ範囲に「形式を選択して貼り付け」で、「値」を選んで貼り付ける。
その他の回答 (6)
[No.2補足]へのコメント、 ランダム表示とはバラバラ表示のことですよね? ソートしてもバラバラなのはランダム表示だからです。お分かりかなぁ~? それはサテオキ、昇順あるいは降順にソートしたければ、[値の貼り付け]を実行してから行うべきです。 なぜならソートする過程で[再計算]が実行されるからです。=RAND()関数はそういう性格のものです。 お分かりかなぁ~?
お礼
回答ありがとうございます。 やっと意味が分かりました。 感謝します。
- mshr1962
- ベストアンサー率39% (7417/18945)
No.1です。 >回答ありがとうございます。今試してみたのですが >#NAME? >と表示されてしまいます。 すみません。記述するのを忘れてました。 「ツール」「アドイン」で「分析ツール」にチェックしてください。
- kagakusuki
- ベストアンサー率51% (2610/5101)
すいません間違えました。 正しくは ="3/1"+INT(RAND()*("5/31"-"3/1"))+1 です。
補足
度々すいません。 今試したのですが 2011/5/30 0:00 2011/5/27 0:00 2011/5/30 0:00 2011/5/31 0:00 2011/4/6 0:00 2011/3/21 0:00 2011/5/14 0:00 2011/5/9 0:00 2011/5/24 0:00 このように時間がすべて0:00になってしまいます。
- kagakusuki
- ベストアンサー率51% (2610/5101)
次の数式で良いと思います。 ="3/1"+RAND()*INT("5/31"-"3/1")+1
補足
回答ありがとうございます。 ランダム表示できたのですが、並べ替え(ソート)をしたら 2011/3/24 6:19 2011/3/8 19:14 2011/3/4 6:56 2011/3/17 21:20 2011/5/22 15:26 2011/5/15 18:16 2011/3/16 7:16 2011/4/17 1:15 2011/5/5 11:09 2011/5/28 10:49 2011/3/18 20:50 2011/4/22 10:54 このようにバラバラになってしまうのですが、日が若い順から並ばないものでしょうか?
="3/1"+("5/31"+1-"3/1")*RAND()
補足
回答ありがとうございます。 ランダム表示できたのですが、並べ替え(ソート)をしたら 2011/3/5 8:41 2011/4/13 15:19 2011/3/13 3:45 2011/3/22 18:44 2011/4/22 16:12 2011/5/5 16:52 2011/4/4 2:52 2011/3/10 7:54 2011/5/29 6:05 2011/3/27 0:32 このようにバラバラになってしまうのですが、日が若い順から並ばないものでしょうか?
- mshr1962
- ベストアンサー率39% (7417/18945)
A1に下記の数式を入力 =RANDBETWEEN("3/1","5/31")+RAND() でセルの書式設定を、「MM/DD/YYYY hh:mm:ss」にしてA20までコピーしてください。
補足
回答ありがとうございます。今試してみたのですが #NAME? と表示されてしまいます。
お礼
回答ありがとうございました。 解決いたしました。