![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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ランキング
-
【マクロ】for next構文について
-
エクセルで表
-
PDFの請求明細をエクセルにしたい
-
職場の人から聞かれており、こ...
-
ユーザー定義関数をアドイン登...
-
下記マクロでMsgBox "空白です...
-
エクセルでバーコード作成し使...
-
在庫管理表に使うエクセルの関...
-
Excel関数-文字列で自動作成さ...
-
エクセルの関数について教えて...
-
Excelデータをコピペして、ペー...
-
Excelで50個のセルに同じ文字を...
-
Excel 2019 は、SPILL機能があ...
-
Microsoft Officeの中古は信用...
-
エクセルの表で1年間の曜日を...
-
エクセルで会社の従業員のデー...
-
スプレッドシート、Excelでの数...
-
[オートフィルタ]で抽出された...
-
エクセルでB列でフィルターをか...
-
エクセルの問題です。絶対値の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報