No.6ベストアンサー
- 回答日時:
>1から9までの数を順不同に毎回取り出せる関数はどうしたらいいのでしょう
◆補助列を使いますが
.....................A.....................B
1..........0.443929945..........7
2..........0.673226283..........4
3..........0.606785989..........5
4..........0.684520785..........3
5..........0.282434013..........9
6..........0.892145097..........1
7..........0.844990705..........2
8..........0.443858791..........8
9..........0.471973758..........6
A1=RAND()
★A9まで下にコピー
B1=RANK(A1,$A$1:$A$9)
★B9まで下にコピー
★F9を押すと数字が変更します
No.7
- 回答日時:
文字列のまま入れ替えをすると遅いので、数値配列の入れ替えに変更してみた。
Function rand123() As String
Dim ans As String
Dim sa(9), st, i, e, a, b As Integer
For i = 0 To 8
sa(i) = i + 1
Next
e = Int(Rnd() * 50) + 50
For i = 1 To e
a = Int(Rnd() * 9)
b = Int(Rnd() * 9)
st = sa(a)
sa(a) = sa(b)
sa(b) = st
Next
ans = ""
For i = 0 To 8
ans = ans & Mid("123456789", sa(i), 1)
Next
rand123 = ans
End Function
No.5
- 回答日時:
次のいずれかの方法でできます。
その1
まず、Aの列に乱数を9こ並べます。
つまり、A1からA9のセル全部に =rand() を入れることになります。
次に、B1のセルに =RANK(A1,$A$1:$A$10) と入れて、これを
オートフィルで9個並べます。
この結果、B1には =RANK(A1,$A$1:$A$10) 、B2には =RANK(A2,$A$1:$A$10)
・・・B9には =RANK(A9,$A$1:$A$10) となります。
こうすれば、1~9の数字が重複しないランダム順で取り出せます
その2
まず、A1からA9まで =rand() を入れるのは同じです。
次に、B1からB9のセルに、1~9までの数字を入れます。
最後に、A1からB9までを選択して、ツールバーから「データ」->「並び替え」を選び、
「最優先されるキー」でA列を選んでOKすれば1~9がランダム順で並べ変わります
工夫次第で色々できますので、これでは思っていたものと違うという場合には
またご質問ください
No.4
- 回答日時:
標準モジュールに以下の関数を作る。
Function rand123() As String
Dim str As String
Dim i, e, s, l As Integer
e = Int(Rnd() * 50) + 50
str = "123456789"
For i = 1 To e
s = Int(Rnd() * 8) + 1
l = Int(Rnd() * (8 - s)) + 1
str = Mid(str, s, l) & Left(str, s - 1) & Mid(str, s + l, 9)
str = Mid(str, s + l, 9) & Mid(str, s, l) & Left(str, s - 1)
str = Mid(str, s, l) & Mid(str, s + l, 9) & Left(str, s - 1)
Next
rand123 = str
End Function
セルに
=rand123()
と書けばOK。
そのまま単純に考えると「1~9を1桁づつ重複しないように乱数で出せばよい」と思うが、重複チェックは遅いし難しい。
しかし「1~9が重複しないように並んでいる時に、乱数で順番を入れ替える」のは簡単。
元が「重複してない」なら、どう並び替えた所で「重複してない」のは変わらない。
発想の転換が重要。
他の回答者さんも質問文を良く読んで。質問者さんは、単に「1~9の乱数が欲しい」と言っている訳じゃない。
No.1
- 回答日時:
RNAD関数を使います。
以下RAND関数のHelpです。0 以上で 1 より小さい乱数を発生させます。ワークシートが再計算されるたびに、新しい乱数が返されます。
書式
RAND()
解説
a と b の範囲で乱数を発生させるには、次の数式を使います。
RAND()*(b-a)+a
RAND 関数で乱数を発生させた後、ワークシートが再計算されるたびに乱数の値が変更されないようにするには、数式バーに「=RAND()」という数式を入力して F9 キーを押し、数式を計算結果の乱数に置き換えます。
1から9の乱数であれば
RAND()*(9-1)+1 でよろしいかと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 1から9の数字を書いたカードが一枚ずつある。これらの9枚のカードから同時に2枚を取り出し、数字の大き 5 2022/04/25 15:38
- PHP 【スプレッドシート】順位のつけ方 2 2022/08/17 13:27
- Excel(エクセル) エクセル、日々の集計整理方法。(再送です。) 5 2022/10/02 00:19
- Excel(エクセル) エクセルの自動更新のタイミングについて 1 2022/07/20 16:12
- C言語・C++・C# C++で割り算の結果を昇順に出力するプログラムを作りたいのですが、例えば(double)100000 3 2022/07/15 17:46
- 会計ソフト・業務用ソフト エクセルです 2 2022/09/17 12:14
- Excel(エクセル) Excel 郵便番号順に並び変えたい 同じ番号が複数あるとき 4 2022/04/28 18:35
- Excel(エクセル) エクセルについての質問です A1に入力した数字をB1に入力した数字に+して C1に出した時に、B2に 4 2022/12/09 21:57
- Excel(エクセル) DATEDIFで作成した勤務年数の並べ替えがうまくいかない 3 2023/07/31 17:09
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel関数の式の作り方を教えて...
-
【ExcelVBA】最終行の取得で困...
-
Excelのセル値に基づいて図形の...
-
EXCELのページを、枠線を維持し...
-
Excel 数式バーの情報を、別シ...
-
Excelで、時間の引き算でマイナ...
-
Excel 最小二乗法 二次関数
-
Excelで数式を用いて番号を順に...
-
エクセルで現場ごとに機材の移...
-
他部署からもらう データで、 ...
-
とびとびの大量セルを選択した...
-
Excel 1の位の数字で処理を分岐...
-
-1234 を (1234) と表記する由...
-
エクセルの数式バーのフォント...
-
MACにおけるエクセルの入力トラ...
-
Excelのセルの色を変えた行(す...
-
エクセルの数式について教えて...
-
Lookup関数
-
Excelでの記号と特殊文字につい...
-
EXCELの散布図で日付が1900年に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報