- ベストアンサー
Excelで重複しない数字を表示する方法
ka_na_deの回答
- ka_na_de
- ベストアンサー率56% (162/286)
こんにちは。 マクロでサンプルコードを記述してみました。 新しいブックの標準モジュールに登録して実行してみてください。 もし、関数で実現したいということであれば、この回答は無視してくださいね。 Sub test() Dim i As Integer Dim j As Integer Dim k As Integer Dim flg As Integer Dim Lt_Row_Num As Integer Dim Rt_Row_Num As Integer Dim Try_Val As Integer Dim Rnd_Num As Integer Lt_Row_Num = 5 '左のA列の行数 Rt_Row_Num = 2 '右のB列の行数 Rnd_Num = 100 'ランダムな数字の値の範囲(最大値) '不適切な初期値の判定 If Lt_Row_Num > Rnd_Num Then GoTo ErrorTrap If Rt_Row_Num > Rnd_Num - Lt_Row_Num Then GoTo ErrorTrap '左のA列 Range("A:A").ClearContents Cells(1, "A").Value = Int(Rnd() * Rnd_Num + 1) For i = 2 To Lt_Row_Num flg = 0 Do Try_Val = Int(Rnd() * Rnd_Num + 1) For k = 1 To i - 1 If Cells(k, "A").Value = Try_Val Then Exit For If k = i - 1 Then flg = 1 Next k Loop Until flg = 1 Cells(i, "A").Value = Try_Val Next i '右のB列 Range("B:B").ClearContents For j = 1 To Rt_Row_Num flg = 0 Do Try_Val = Int(Rnd() * Rnd_Num + 1) For i = 1 To Lt_Row_Num If Cells(i, "A").Value = Try_Val Then Exit For If i = Lt_Row_Num Then flg = 1 Next i For k = 1 To j - 1 If flg = 0 Or j = 1 Then Exit For If Cells(k, "B").Value = Try_Val Then flg = 0 Exit For End If Next k Loop Until flg = 1 Cells(j, "B").Value = Try_Val Next j Exit Sub ErrorTrap: MsgBox "初期値が不正です。" Exit Sub End Sub
関連するQ&A
- エクセル 任意の数字から始まる重複しない乱数
お世話になります。 エクセル2003/XP 使用です。 RANK関数またはそれに似た利用方法でご教授願いします。 下記ページを参考に、"重複しない乱数”を作成しました。 http://www.relief.jp/itnote/archives/001798.php (ページ中程、▼操作手順:重複しない乱数を作成する 以下の部分) 乱数の最初の数字が1から始まる分には問題なくできるのですが、 乱数の数字を、「任意の数字から始めて」、 「任意の数字で終わる」ようにすることは可能でしょうか? 例えば、下記の例でいうと、 6から始まり10で終わる乱数です。 A列 B列 1行目 / =RAND() / 1-5の範囲でランダムな重複しない乱数 2行目 / =RAND() / 同上 3行目 / =RAND() / 同上 4行目 / =RAND() / 同上 5行目 / =RAND() / 同上 ------------------------------------------------------------ 6行目 / =RAND() / 6-10の範囲でランダムな重複しない乱数 7行目 / =RAND() / 同上 8行目 / =RAND() / 同上 9行目 / =RAND() / 同上 10行目 / =RAND() /同上 (11以下、繰り返し 略) よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- EXCEL2003 条件付き書式の設定
A列に数字が入力されてます、A列各セルに入力されてる数が1~7の範囲でランダムに変わります、A列に入力した数字に応じて行単位に色を付けたいです。教えて下さい (例)A2=1が入った場合、B2:AK2 赤、A2の数字はランダムに1~7の範囲で変化し、それぞれ違う色に切り替わるようにしたい、A列の範囲はA1:A500まであります、色付けの範囲は行単位でB1:AK500まであります
- 締切済み
- その他MS Office製品
- 【エクセル】ランダムで重複しない整数を出したい。
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とか。 関数の組み合わせでできないでしょうか? また、マクロは分からないので、詳しく解説して頂けると助かります! 情報が不足する点がありましたら指摘して下さい。 追加します。
- ベストアンサー
- その他MS Office製品
- 重複数字を除いて数字の数をカウントする方法。
どなたかご存じでしたらご回答をよろしくお願いします。 【質問】 A列~U列に数字が左から右に昇順で入っています。(数字は重複があります) V列に重複した数字を除いた数字の数のカウント合計を表示する。 ●実行前 1 1 4 6 10 10 16 19 21 24 25 27 29 30 33 33 35 38 38 39 42 2 3 5 6 7 9 10 13 14 18 21 23 27 27 28 31 32 33 39 41 42 3 4 5 6 9 11 12 17 18 19 20 24 25 26 28 34 36 37 38 38 39 : : ●実行結果(A~Uの重複した数字を除いた数字の数のカウント合計をV列に表示する。) 1 1 4 6 10 10 16 19 21 24 25 27 29 30 33 33 35 38 38 39 42 17<-17個の数字 2 3 5 6 7 9 10 13 14 18 21 23 27 27 28 31 32 33 39 41 42 20<-20個の数字 3 4 5 6 9 11 12 17 18 19 20 24 25 26 28 34 36 37 38 38 39 20<-20個の数字 : : ●注意事項 ・使用するエクセルは2010です。 ・A~U列に入る数字は、1~43です。 以上、よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- ランダム関数で任意の桁数のランダム数字を作りたい
エクセル2000ユーザーです。ランダム関数を使い、重複を許さない5桁のランダム数字を1000個作りたいと思っています。randbetween関数を使おうと思ったのですが、2000では使えないのか、NAMEといったエラー表示がでます。5桁の中は同じ数字がでてきても構いません。例:11295、43634、70676・・・etc。 が、1000個の中では同じ数字が重複しないようにしたいです。 =RIGHT(RAND(),5) のように考えたのですが、他にいい方法はありますでしょうか? マクロやVBAは苦手なので、できれば関数でいいやり方があれば教えてください。
- ベストアンサー
- オフィス系ソフト
- 同一数字の重複を”1”としてカウントする方法。
どなたかご存じでしたらご回答よろしくお願いします。 【質問】 エクセルのA列~E列に0~9迄の任意の数字が1つだけ入っています。 これをF列で「同一数字はいくつ重複しても”1”として数字の数をカウントする方法」 が知りたいです。具体的に下記のエクセルシートのとおりです。 ●エクセルシート A B C D E F 3 3 1 7 8 4 ←"3"は同一数字で2個重複するが"1個"とみなして、3178の4となる。 7 7 7 7 7 1 ←"7"は同一数字で5個重複するが "1個"とみなして、7の1となる。 4 4 4 4 2 2 ←"4"は同一数字で4個重複するが "1個"とみなして、42の2となる。 6 6 6 3 1 3 ←"6"は同一数字で3個重複するが "1個"とみなして、631の2となる。 1 1 8 8 8 2 ←"1"は同一数字で2個重複、"8"は同一数字で3個重複するがそれぞれ "1個"とみなして、18の2となる。 3 3 2 2 5 3 ←"3"と"2"は同一数字で2個ずつ重複するがそれぞれ"1個”とみなして 325の3となる。 3 4 5 6 7 5 ← 同一数字の重複は存在しないため、34567の5となる。 ●注意事項 ・使用するエクセルは2010です。 以上、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルで重複しないランダムな1桁の数
似たような質問はたくさんあるのですが,どれも今ひとつしっくりこないのであらためて質問します。 エクセルでA1:I1の範囲に1から9の数を重複なしでランダムに表示させたいのですが,よい方法を教えてください。(九九の練習プリント作成のためです。) 現在の知識で=TRUNC(RAND()*9)+1 とすることによって1から9までの整数値をランダムに表示することはできているのですが,これだけだと重複してしまいます。これを修正していただけると助かりますが,別の方法でもかまいません。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 重複数字を「登場回数 × 重複数」で纏める方法
いつもお世話になっております。 ご回答頂けたらありがたいです。 添付図のように「2個重複」、「3個重複」、「4個重複」の 5×10のセルの中に1~37までの数字が重複してランダムに入っています。 これを、B1~AL1の1~37までの数字の中で「2個重複」、「3個重複」、 「4個重複」が何個含まれるかカウントして、 そして重複数字の数を掛けて纏めるにはどうすればよいですか? 例1)1の場合(2個重複の説明) 1は「2個重複」のA7~J11の中に2回登場します。 「2個重複」なので、登場回数 × 重複数 なので、 2 × 2 = 4 として、B2に4が入ります。 例2)4の場合(3個重複の説明) 4は「3個重複」A13~J17の中に2回登場します。 「3個重複」なので、登場回数 × 重複数 なので、 2 × 3 = 6 として、E3に6が入ります。 例3)12の場合 (4個重複の説明) 12は「4個重複」A19~J23の中に1回登場します。 「4個重複」なので、登場回数 × 重複数 なので 1 × 4 = 4 として、 M4に4が入ります。 〇注意事項 ・「2個重複」、「3個重複」、「4個重複」には 1つも数字が入らない場合があります。 ・使用するエクセルは2010です。 以上、よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- 重複数字と空白を除いた数字の数をカウントする方法。
どなたかご存じでしたらご回答をよろしくお願いします。 【質問】 A列~U列に数字が左から右に昇順で入っています。 (数字は重複がありますし、U列まで数字が入っていない場合があります。) V列に重複した数字と空白を除いた数字の数のカウント合計を表示する方法が知りたいです。 ●実行前 1 1 4 6 10 10 16 19 21 24 25 27 29 30 33 33 35 38 2 3 5 6 7 9 10 13 14 18 21 23 27 27 28 31 32 33 39 41 42 3 4 5 6 9 11 12 17 18 19 20 24 25 26 28 34 36 37 38 : : ●実行結果(A~Uの重複した数字と空白を除いた数字の数のカウント合計をV列に表示する。) 1 1 4 6 10 10 16 19 21 24 25 27 29 30 33 33 35 38 15<-15個の数字 2 3 5 6 7 9 10 13 14 18 21 23 27 27 28 31 32 33 39 41 42 20<-20個の数字 3 4 5 6 9 11 12 17 18 19 20 24 25 26 28 34 36 37 38 19<-19個の数字 : : ●注意事項 ・使用するエクセルは2010です。 ・A~U列に入る数字は、1~43です。 ・空白はA~U列の途中にはありません。 以上、よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- エクセルで重複しない乱数の発生
今エクセルで正負の数の足し算の100ます計算を作っていたのですが、 どうしても乱数表示をさせている所のどこかで数字が重複してしまい困っています。 なにかいい式はありませんでしょうか? ちなみに乱数の数字の範囲は-10~10にする為に、 =INT(RAND()*(10+10)-10) という式でやっています。 素人質問ですがよろしくお願いします<(_ _)>
- ベストアンサー
- オフィス系ソフト