• ベストアンサー

エクセルで100マスの乱数表を作るには

noname#223623の回答

noname#223623
noname#223623
回答No.10

なんだかVBAが盛り上がってきたみたいなので自分も書いちゃいます。考え方としては 1. 配列に1~100を順番に入れておく 順番に入れておくので重複はあり得ない。したがって重複チェックは必要ない。重複チェックをすると後にいくほどretryが増えるので時間がかかります。 2. 配列の2要素の値を入れ換える 配列のm番目とn番目の値を入れ換える。mとnはRnd関数で決める。たまたまmとnが同じでもエラーにはならない(同じ値を代入するだけなので)。 3. 配列の値をA1のセルから順番に入れていく 実際に書くとこんな感じ。でもExcel持ってないので確認できない。細かいところで間違ってるかも(考え方はいいと思う)。 Private Sub make_table()  Dim numbers(100) As Integer  Dim swapindex(2) As Integer  Dim tmpval As Integer  Dim i As Integer  Const SHUFFLE_TIME = 1000 ' シャッフルする回数(この値は適当に決める)  ' 配列numbersに1から100までの数値をいれる(この時点では順番どおり)  For i = 0 to 99   numbers(i) = i + 1  Next  ' 配列の値をSHUFFLE_TIMEの回数入れ換える  For i = 1 to SHUFFLE_TIME_time   swapindex(0) = numbers(Int(Rnd * 100))   swapindex(1) = numbers(Int(Rnd * 100))   tmpvalue = numbers(swapindex(0))   numbers(swapindex(0)) = numbers(swapindex(1))   numbers(swapindex(1)) = tmpvalue  Next  ' 配列の値を順番にセルに入れる(ここではA1から右に続くようにした)  For i = 0 to 99   Cells(((i \ 10) + 1), ((i mod 10) + 1)).Value = numbers(i)  Next End Sub

関連するQ&A

  • エクセルで「1~15」の乱数表を作りたい。

    エクセルで、「1」から「15」までの15種類の数字を使ってランダムの数列表を作りたいのですが、どのようにすればできますか? その際、各数字はそれぞれ1個ずつ、一つのセルに入れるものとします。重複しても構いません。 例えば「7」「2」「9」「13」「2」「4」「1」「9」・・・でもOKです。 また、同じ数字が連続するケースの発生もOKです。 例えば、「3」「8」「14」「6」「6」「5」「7」・・・でもOKです。2連続だけでなく、3連続もOKです。 要は「1~15の数字のランダムな出現による乱数表」が作成できればいいのです。 表の範囲は「A7~IV200」までです。 PCの初心者ですので、詳しく丁寧に教えて頂ければ有り難いです。 例えば次のように・・・。 1.・・・・・・・・・ 2.・・・・・・・・・・・・ 3.・・・・・・・・ 4.・・・・・・・・・・・・・・ 5.・・・・・・・・・ と、いう風に、順を追ってウィザード風に書いて頂ければ・・・と思います。 PCやエクセルや関数に詳しい方、宜しくお願いいたします。

  • エクセルの使い方

    エクセルで、いくつもの重複した数字(縦にずらーとある)を消して1つずつにして、上のマスにそろえたいのですが、 例えば、 12345 12345 23456 23456 24567 を 12345 23456 24567 のような感じにしたいのですが、できますか? 教えてください。

  • 9マスの計算問題

    縦3、横3マス(セルA1~C3)に1~9までの数字が1個ずつランダムに入っています。中心(セルB2)の数字は見ることが出来ますが、それ以外のマスはブラックボックスとなっていて何の数字が入っているか分かりません。 ただし、縦1列ずつの合計、及び横一列ずつの合計は 分かっています。その場合の隠された8マスにはどの様に数字が入るか?という問題です。 Excelの関数だけで(マクロを使用しないで)可能でしょうか? 問題例  A B C D 1 ○ ○ ○ 15 2 ○ 3 ○ 12 3 ○ ○ ○ 18 4 15 14 16 回答例  A B C D 1 9 4 2 15 2 1 3 8 12 3 5 7 6 18 4 15 14 16

  • エクセルで一つのマスに、12,000,000円 と記入したい

    エクセルで一つのマスに、12,000,000 と記入し(縦は中央の位置、横は右側)、その同じマスの右上に、円 を記入していのですが、どのようにしたらよいでしょうか?

  • マスの和の問題

    まずは添付のマスをお読みください。 この9マスにはすべて数字が入っています。分かっている3つの数字がマスの中に示されています。 このマスの縦、横、斜めの3つの数字の和が全て等しくなるとき、この値を求めなさい。 このような問題に取り組んでますが、解は66で答えに書いてあるのでわかるのですが解き方がわかりません。わかる方いらっしゃいましたらおねがいいたします。

  • 4つのセルを1つの塊り(マス)と捉えて塗潰す方法2

    どなたかご存知でしたら回答をよろしくお願いします。 【質問】 下図の様に、a~n、1~10の合計140個のセルに数字が1~99迄の重複有りで 入っています。a1,a2,b1,b2の4つのセルで1つのマスとみなすと、 140個のセルは縦:5マス、横:7マスの合計35マスとなります。 この条件で、検索値欄に1つ数字を入れたら、 一致した数字が入っているマス(4つのセルの集合)を塗潰すにはどうすればよいですか? 具体的には、1つのマスに一致した数字が2個以上重複している場合は、赤く塗り潰す。 1個の場合は黄色く塗り潰す事がしたいです。 〇例題  a b c d e f g h i j k l m n 1 02 05 08 09 14 13 15 16 17 28 22 32 33 37 2 03 03 05 14 13 28 99 31 23 32 31 36 32 37 3 05 01 07 06 15 07 20 08 26 12 27 19 32 37 4 04 03 08 10 10 14 12 17 24 18 30 22 37 24 5 08 01 13 02 16 04 25 09 28 15 34 24 36 34 6 01 06 05 12 18 14 22 19 23 30 26 35 28 36 7 02 03 04 11 06 16 20 21 25 26 29 27 31 29 8 07 07 08 10 09 14 17 15 18 21 19 26 20 34 9 01 02 10 04 11 05 18 13 27 20 28 33 30 34 10 12 11 16 14 19 24 24 25 27 26 33 32 35 35 検索値:07 【結果】 検索値に07を入れたら、下記の3マス(12セル)が塗潰される。 c3,d3,c4,d4 ・・・ 1個一致なので、黄色で塗潰される。 e3,f3,e4,f4 ・・・ 1個一致なので、黄色で塗潰される。 a7,b7,a8,b8  ・・・2個一致なので、赤色で塗潰される。 〇注意事項  ・使用するエクセルは2010です。  ・1マス=4セルです。※a1,a2,b1,b2で1マスです。  ・セルに入っている数字はランダムで、同じ数字の重複は35マス(140セル)全体で   4個迄です(1つのマスに4個入る事も有るし、4つのマスに1個ずつ入る事も   あります。)  ・検索値欄に入力できる数字は1~99迄の1つです。  ・セルの数字は表示上、2桁で表しています。(例:1ではなく01) 以上、よろしくお願いします。

  • 4つのセルを1つの塊り(マス)ととらえて塗潰す方法

    どなたかご存知でしたら回答をよろしくお願いします。 【質問】 下図の様に、a~n、1~10の合計140個のセルに数字が1~99迄の重複有りで 入っています。a1,a2,b1,b2の4つのセルで1つのマスとみなすと、 140個のセルは縦:5マス、横:7マスの合計35マスとなります。 この条件で、検索値欄に1つ数字を入れたら、 一致した数字が入っているマス(4つのセルの集合)を塗潰すにはどうすればよいですか? 〇例題  a b c d e f g h i j k l m n 1 02 05 08 09 14 13 15 16 17 28 22 32 33 37 2 03 03 05 14 13 28 99 31 23 32 31 36 32 37 3 05 01 07 06 15 07 20 08 26 12 27 19 32 37 4 04 03 08 10 10 14 12 17 24 18 30 22 37 24 5 08 01 13 02 16 04 25 09 28 15 34 24 36 34 6 01 06 05 12 18 14 22 19 23 30 26 35 28 36 7 02 03 04 11 06 16 20 21 25 26 29 27 31 29 8 07 07 08 10 09 14 17 15 18 21 19 26 20 34 9 01 02 10 04 11 05 18 13 27 20 28 33 30 34 10 12 11 16 14 19 24 24 25 27 26 33 32 35 35 検索値: 07 【結果】 検索値に07を入れたら、下記の3マス(12セル)が塗潰される。 c3,d3,c4,d4 e3,f3,e4,f4 a7,b7,a8,b8 〇注意事項  ・使用するエクセルは2010です。  ・1マス=4セルです。※a1,a2,b1,b2で1マスです。  ・セルに入っている数字はランダムで、同じ数字の重複は35マス(140セル)全体で   4個迄です(1つのマスに4個入る事も有るし、4つのマスに1個ずつ入る事も   あります。)  ・検索値欄に入力できる数字は1~99迄の1つです。  ・セルの数字は表示上、2桁で表しています。(例:1ではなく01) 以上、よろしくお願いします。

  • エクセルで作った表のマスを広げるには

    エクセルで作った表の1マスを2行分の大きさに広げるにはどうすればよいでしょうか? マスの中でエンターキーを押すと、カーソルが下のマスに移動してしまいます。

  • 重複しない乱数表を作る関数について

    重複しない乱数表を作成したいと思います。 「=RANDBETWEEN(0,50)」では、「0~50」の範囲内で、数字が重複する乱数表ができますが、数字が重複しない乱数表を作成するには、どういう関数を使えばよいですか? 縦方向(つまり「列」)では重複しても構いません。 横方向(つまり「行」)で重複しないようにしたいのです。 つまり、「横方向に0から50までの数字51個が一通り、必ず1個ずつ出現してから、次に同じく、0から50までの51個の数字による新たな数列を、各数字が重複しないように作りたい」のです。 51個の数字による一まとまりの数列内で数字が重複していなければ、これと同じ数値配列が全く別の場所に出現しても構いません。 表の範囲は任意ですが、仮に「B7~N106」とします。 過去の回答を検索しましたが、適切なものがなかったので質問しました。 宜しくお願い致します。

  • EXCELの乱数表

    以下の作業なんですがやり方がわからないんで教えてください!お願いいたします!! 乱数表を作って、乱数表を利用し2個の数字を取り出す。(AとB) ↓ その取り出した数字を取り出した順に並べ、一つの数値とする。(AB) ↓ それらをデータXに変換する。 乱数AB |00|01~06|07~30|31~68|69~92|93~98|99 データX |-3|  -2 |  -1 |   0  |  1  |  2  |  3 ↓ 上記を繰り返し、大きさN=4の標本を100個作製する。 よろしければ以上のやり方を教えていただけると幸いです。 当方EXCEL初心者で、さっぱり困ってます!(><) よろしく願いいたします!