• 締切済み

重複しない整数をランダム表示

taisuke555の回答

回答No.7

#5で回答した者です。   0shieteさん疑問です。   B1:=INT(RAND()*(B2-3))+2では例えばB2=20だった場合、   Int(Rand()*17)+2で2~18までの数字のランダムになると思うのですが、   B1:=INT(RAND()*(B2-2))+2ではありませんか?     (間違っていたらすみません) ------------------------- #5の考え方です。(といっても説明しにくいので1つずつの関数を見ていくだけですが) 関数の下の()内の数字はランダムで取得できる数字の範囲です。 (1)A1セル   =INT(RAND()*20)+1       (1~20) (2)B1セル(A1=12と仮定すると)    =INT(RAND()*19)       (0~18)    =INT(RAND()*19)+A1       (12~30)    =MOD(INT(RAND()*19)+A1,20)       (0~10、12~19)    =MOD(INT(RAND()*19)+A1,20)+1       (1~11、13~20)      で12を除いた1~20の数 (3)C1セル(B1=7だったと仮定すると ABS(A1-B1)=A1-B1の絶対値=5、           MIN(A1,B1)=A1とB1の小さい方=7)    =INT(RAND()*18)       (0~17)    =INT(RAND()*18)+(ABS(A1-B1))       (5~22)    =MOD(INT(RAND()*18)+(ABS(A1-B1)),19)       (0~3、5~18)    =MOD(INT(RAND()*18)+(ABS(A1-B1)),19)+MIN(A1,B1)       (7~10、12~25)    =MOD(MOD(INT(RAND()*18)+(ABS(A1-B1)),19)+MIN(A1,B1),20)       (0~5、7~10、12~19)    =MOD(MOD(INT(RAND()*18)+(ABS(A1-B1)),19)+MIN(A1,B1),20)+1       (1~6、8~11、13~20)       で7、12を除いた1~20の数 A1セルとB1セルは仮定で数字を入れましたが他の数字でも問題ないと思います。 試してみてください。

関連するQ&A

  • 【エクセル】ランダムで重複しない整数を出したい。

    Windows 7、エクセル2007です。 ランダムで重複しない整数を任意の範囲から一部のみ入力するにはどうしたら良いでしょうか? 1.任意の範囲「1~50」とか「1~100」とか「15~300」とかから、20個だけとか40個だけとか。 2.ランダムなので「2,6,3,4,8,1・・・」とかのn、n+1、n+2ではないランダムな整数。 3.重複しないこと。 上記1~3を満たしたやり方ってありますか? 出てこない数があっても良いんです。 例えば、1~10までの範囲でランダムに3個だけセルに入力したいとき。 A1に7、A2に4、A3に9というふうに。 それが1~300の範囲で50個の数字をランダムに重複しないように入力する。 A1に15、A2に163、A3に92、・・・A50に43。 残りの250個の数字は入力されないという感じです。 乱数だと重複します。 ランク(順位)と組み合わせると、連続(n、n+1、n+2)になってしまいます。 列はどこでも良いんですが、行は連続したいです。 A1~A50とか、A1~A300とか。 関数の組み合わせでできないでしょうか? また、マクロは分からないので、詳しく解説して頂けると助かります! 情報が不足する点がありましたら指摘して下さい。 追加します。

  • Excel で 10個のセルに、0から9を一つ一つランダムに表示したい

    子供の算数の問題を作成するために考えているのですが、Excel で10個のセルに、0から9を一つ一つランダムに表示したいのです。ただ、一度使用した数字は、二度と使用しないようにするためにいい方法はないでしょうか。 例1 2.5.8.6.3.9.7.4.1.0 例2 1.4.7.2.0.5.8.3.6.9 など、乱数等を使用した方がいいと思うのですが、if関数は、最大7つまでしか、判断だきないそうです。 ランダムであり、一度使用した数字は、使用せず、0から9をそれぞれ表示する方法は、ないでしょうか。 よろしくお願いします。

  • ランダム関数で任意の桁数のランダム数字を作りたい

    エクセル2000ユーザーです。ランダム関数を使い、重複を許さない5桁のランダム数字を1000個作りたいと思っています。randbetween関数を使おうと思ったのですが、2000では使えないのか、NAMEといったエラー表示がでます。5桁の中は同じ数字がでてきても構いません。例:11295、43634、70676・・・etc。 が、1000個の中では同じ数字が重複しないようにしたいです。 =RIGHT(RAND(),5) のように考えたのですが、他にいい方法はありますでしょうか? マクロやVBAは苦手なので、できれば関数でいいやり方があれば教えてください。

  • 重複数字を削除して表示させるには

    またまたお世話になります。 例えば下記のように左のセルから1つずつ数字が入っているとします。 1 2 3 3 4 5 これを下記のように重複数字を削除して並べたいと思っています。 1 2 3 4 5 できれば空白セルがないようにしたいです。 ×:1 2 3   4 5 ○:1 2 3 4 5 関数を使用してできますでしょうか? 空白セルがないようにするのがネックになっています。 アドバイスを御願い致します。

  • エクセルでランダム表示したい

    エクセルのセルA1からセルA20までとか「MM/DD/YYYY hh:mm:ss」の形式でランダム表示させる関数なんてあるでしょうか? できれば、3月1日~5月31までとか期限を制限してランダムに表示できたらうれしいです。

  • ランダムに6つの数字を選びその際、数字が重複しない様にする方法が知りたいです。

    6個の枠があり、ボタンを押すとそれぞれの枠に ランダムに1~43の数字が表示できるようにしたいです。 その際それぞれの数字が重複しない様にしたいです。 ランダムに数字を選ぶようには、何となく解りますが、 重複しない様にする方法が解りません。 よろしくお願いします。

  • Excelでのランダムな整数の出し方

    A1のセルに、ルーレットのようにランダムな整数を 表示させたい時は、 =INT(RAND()*10) という関数を使うのだと思いますが、 これだと0~9までが均等に出現しますよね。 A1には、0,1,2の3つのみを ランダムに出現させたい、という場合は どのように設定すればいいのでしょうか? 宜しくお願いします。

  • エクセル関数?でランダム入力について

    エクセルにて質問です。 一つのシートで横列(アルファベット)は同じで、縦列(数字)は二列ずつのセットで… もしセル R11に何もなければ(空欄なら)→ A11からBP12までのセルを薄い灰色で塗りつぶす もしセル R11に何かあれば→ Y11に15~22までのランダムの数字 Z11に0~59までのランダムの数字 BC11に8~11までのランダムの数字 BD11に0~59までのランダムの数字 ……… ……… ……… もしセル R39に何もなければ(空欄なら)→ A39からBP40までのセルを薄い灰色で塗りつぶす R39に何かあれば→ Y39に8 Z39に0~59までのランダムの数字 BC39に12~17までのランダムの数字 BD39に0~59までのランダムの数字 というものを作成したいのです。 尚、ランダム数字の値は上記の様に変更可能なものを希望です。 上記の内容になりますと、複数セルの塗りつぶしが含まれるので関数だけでは無理でしょうか? また、マクロ使用で可能ならコードを教えてもらえたら助かります。 エクセルに詳しい方おしえてください。 よろしくお願いします。

  • エクセルでランダムな座席表を作成したい

    excel 2003を使用しています。 エクセルで、100名程度の座席表を作成したいと思っています。 今、机の絵をレイアウトどおりに表示させて、該当する机に社員番号を入れれば、社員名が表示されるように設定しています。 席替えを毎日行うので、1-100の数字をランダムかつ重複せずに入れて、簡単に座席変更をしたいのですが、方法がわかりません。RANDBETWEENだと、ランダムに数字が入りますが、重複してしまい、困っております。 ランダムに数字を入力でき、かつ重複しない方法を教えてください。 どうぞよろしくお願いいたします。

  • Excel2002 ランダムに並べ替える関数

    Excel2002で掛算九九の100マス計算を作っています。 マクロを使って、ボタンにマクロを登録し、九九の問題を作成したいのです。 1~10の数字をランダムに重複しないように、A1:J1に表示したいです。 A B C D E 1 9 7 8 1 2・・・ 2 2 3 8 4 1 5 4 でA1:J1の1~10の数字ををランダムに並び替えたいのですが、そういった関数はありますか? RANDBETWEEN関数を使ってみたんですが、重複する数字が返ってきてしまいます。 何か良い方法はありますか?